Bottom line: no free CS2 API gives you the whole picture. PandaScore's free plan has schedules and results but no maps or player stats. Cito's has per-map stats and vetoes, but only 30 days of history and not for commercial products. BALLDONTLIE's covers teams, players and tournaments, and GGScore's allows 3 requests a day. Valve's Steam Web API has no pro matches at all. Our sandbox key takes the other trade: every endpoint at full depth, on a fixed sample of past matches.
The short version
"Free" means something different at each provider, so the useful question is which limit you can live with:
- Fewer fields: free schedules and results, with the stats behind a paid plan (PandaScore, BALLDONTLIE).
- Less history: recent matches only (Cito, 30 days).
- Fewer requests: enough to look, not to build (GGScore, 3 a day).
- Less scope: everything, but only for a sample (our sandbox key).
If you are evaluating which API to build on, the last one tells you the most, because you see real responses for every endpoint. If you need free data in production, PandaScore's free plan is the most generous, as long as results are enough.
Facts about each provider come from its own pricing, docs and terms pages, linked below, as read on 13 October 2026.
Free CS2 APIs at a glance
| API | Free limit | Free CS2 pro-match data | Card | Using it in a product | Paid plans from |
|---|---|---|---|---|---|
| PandaScore | 1,000 requests an hour | Schedules and results, teams, players, tournaments. No maps, player stats or rounds | No | Shown on your own site with "Source: PandaScore"; no raw resale; no odds | Stats from €400 per game a month |
| Cito | 500 a month (200 a day, 10 a minute) | Results, per-map player stats, vetoes; 30 days of history; CS2 in beta | No | Not for commercial products on the free plan | $15 a month |
| BALLDONTLIE | 5 requests a minute | Teams, players, tournaments. Matches and stats need the $39.99 plan | Not stated | Allowed; no reselling the raw data | $9.99 a month |
| GGScore | 3 requests a day | Matches, fixtures, map scores, player box scores (the pricing card is unclear on which free reaches) | No | Not stated | $11.99 for 3 months |
| Steam Web API (Valve) | 100,000 calls a day | None: no pro matches, only a player's own matchmaking games | Free key | Personal use by end users | Free |
| EsportsOdds sandbox | 2,000 requests in total | Every endpoint on 106 past matches: maps, vetoes, per-map stats, rounds, depth, lineups, market line | No | Evaluating and building only | $49 a month |
The free tiers, one by one
PandaScore: the most requests, the fewest fields. The free plan gives upcoming, past and running matches with teams, players and tournaments, at 1,000 requests an hour with no card. Games within a match, player and team stats, and rounds all start on paid plans, from €400 per game a month for stats. Its terms let you show the data on your own site with a "Source: PandaScore" credit, bar reselling the raw data, and include no odds. More in PandaScore vs EsportsOdds.
Cito: the most depth for free, for a month back. The free plan includes per-map player stats and vetoes, which few free tiers do, but only for the last 30 days, at 500 calls a month. Its pricing table excludes commercial products on the free plan, and its docs mark CS2 as beta. Fine for a prototype or a class project; a product needs Starter ($15) or Pro ($59, the full archive).
BALLDONTLIE: reference data for free. The free plan covers teams, players and tournaments at 5 requests a minute. Matches, maps, rounds and player stats sit on the $39.99 plan. Its terms allow commercial use, apart from reselling the raw data. More in BALLDONTLIE vs EsportsOdds.
GGScore: a look, not a build. Three requests a day, no card. Enough to see a response shape; paid plans start at $11.99 for three months.
Steam Web API: official, but not esports. Valve's CS2 interfaces cover a player's own matchmaking history (with their auth code), Major Pick'Em, server status and inventories. There is no endpoint for professional matches, results or player stats. Valve's regional standings are published as a data repository, not an API.
HLTV has no official API. It is the reference site for CS2 results, but publishes no API of its own; see the HLTV API alternative.
EsportsOdds: a free sandbox key on real past matches
Our free option is a sandbox key. It reads every completed match of two past events, 106 matches today: the Esports World Cup 2026 (top tier) and CCT Europe 2026 Series 7 (lower tier), so you see a full match and a thinner one. Inside that sample it calls the same endpoints as a paid key and gets the same responses: maps, vetoes, per-map player stats, round rows with the economy, lineups, player depth and the market line.
The limits are plain:
- 2,000 requests in total, for the life of the key. They do not reset.
- 5 requests a second, bursts of 20. No WebSocket.
- A request outside the sample answers
403 sandbox_scopeand is not counted. - It is for evaluating the API and building against it, not for a product you offer to others. Current data, and the right to build a product on it, come with the $49 plan.
Create one after sign-up (no card), then list the sample's matches:
curl -H "Authorization: Bearer $ESPORTSODDS_API_KEY" \
"https://api.esportsodds.gg/v1/cs2/matches?tournament=019f23d2-5a32-71d0-ac4b-dfc7eb5dd3f0&status=completed&limit=1"
{
"data": [
{
"id": "01a02b10-1fcc-7e63-a066-34f41169d1f2",
"format": "bo5",
"status": "completed",
"stage": "Esports World Cup 2026 Playoffs",
"score_a": 1,
"score_b": 3,
"team_a_name": "FUT",
"team_b_name": "Spirit",
"tournament_tier": "S",
"data_available": {
"maps": true, "stats": true, "map_stats": true, "vetoes": true,
"rounds": true, "depth": true, "lineups": true, "odds": true
}
}
]
}
Trimmed: the full row also carries team and tournament ids, times and changed_at. Every true in data_available is a sub-resource you can call next, such as /matches/{id}/vetoes or /matches/{id}/rounds. One real match in JSON, field by field walks through each of them, and the quickstart gets you from a key to a working script.
Which free option fits
- You need free results in production and can live without stats: PandaScore's free plan, with its credit line.
- You are prototyping with recent stats: Cito's free plan, then a paid plan before you ship.
- You are choosing an API to build on: our sandbox key, to see every endpoint's real output before you pay.
- You need history, stats and vetoes in a product: that is paid everywhere. Compare the paid plans in the best esports data APIs.
Frequently asked questions
Is there a free CS2 API?
Yes, several, each limited differently. PandaScore's free plan has schedules and results, Cito's has 30 days of stats, BALLDONTLIE's has teams, players and tournaments, and our sandbox key has every endpoint on a fixed sample of past matches.
Does Valve have an official CS2 esports API?
No. The Steam Web API covers a player's own matchmaking games, Pick'Em and inventories, not professional matches.
Which free CS2 API includes player stats?
Cito's free plan, for the last 30 days. Our sandbox key includes whole-match and per-map player stats for every match in its sample.
Do any free CS2 APIs include odds data?
None of the free tiers above does. Our sandbox key includes our de-vigged market line for the sample matches, as data for analysis.