Every round counts. The esports data API for Counter-Strike 2

Results, maps, rounds and player stats for 27,000+ pro Counter-Strike matches since 2020, plus a market odds line. REST, Python and MCP.

Start free with a sandbox keyRead the docs

Free sample of past matches, no card. Plans from $99 a month.

Esports World Cup 2026Playoffs, 23 August

Cache, round 10FUT
{
  "won": true,
  "equipment_value": 10300,
  "enemy_equipment_value": 31150,
  "clutches": 1
}
Cache–10
Cache, round 1: FUT won on the T side, eliminationCache, round 2: FUT won on the T side, bomb explodedCache, round 3: FUT won on the T side, bomb explodedCache, round 4: Spirit won on the CT side, eliminationCache, round 5: Spirit won on the CT side, bomb defusedCache, round 6: Spirit won on the CT side, eliminationCache, round 7: Spirit won on the CT side, eliminationCache, round 8: Spirit won on the CT side, eliminationCache, round 9: Spirit won on the CT side, eliminationCache, round 10: FUT won on the T side, eliminationCache, round 11: FUT won on the T side, eliminationCache, round 12: FUT won on the T side, eliminationCache, round 13: FUT won on the CT side, bomb defusedCache, round 14: FUT won on the CT side, eliminationCache, round 15: FUT won on the CT side, eliminationCache, round 16: FUT won on the CT side, eliminationCache, round 17: FUT won on the CT side, eliminationCache, round 18: FUT won on the CT side, eliminationCache, round 19: Spirit won on the T side, eliminationCache, round 20: Spirit won on the T side, eliminationCache, round 21: Spirit won on the T side, bomb explodedCache, round 22: Spirit won on the T side, bomb explodedCache, round 23: FUT won on the CT side, elimination
Anubis13–16
Anubis, round 1: FUT won on the T side, bomb explodedAnubis, round 2: FUT won on the T side, eliminationAnubis, round 3: FUT won on the T side, eliminationAnubis, round 4: Spirit won on the CT side, eliminationAnubis, round 5: FUT won on the T side, bomb explodedAnubis, round 6: Spirit won on the CT side, eliminationAnubis, round 7: Spirit won on the CT side, bomb defusedAnubis, round 8: Spirit won on the CT side, eliminationAnubis, round 9: Spirit won on the CT side, bomb defusedAnubis, round 10: Spirit won on the CT side, eliminationAnubis, round 11: Spirit won on the CT side, eliminationAnubis, round 12: FUT won on the T side, eliminationAnubis, round 13: Spirit won on the T side, eliminationAnubis, round 14: Spirit won on the T side, eliminationAnubis, round 15: Spirit won on the T side, bomb explodedAnubis, round 16: Spirit won on the T side, eliminationAnubis, round 17: FUT won on the CT side, time ran outAnubis, round 18: FUT won on the CT side, eliminationAnubis, round 19: FUT won on the CT side, eliminationAnubis, round 20: Spirit won on the T side, eliminationAnubis, round 21: FUT won on the CT side, eliminationAnubis, round 22: FUT won on the CT side, eliminationAnubis, round 23: FUT won on the CT side, time ran outAnubis, round 24: FUT won on the CT side, eliminationAnubis, round 25: Spirit won on the T side, eliminationAnubis, round 26: Spirit won on the T side, eliminationAnubis, round 27: Spirit won on the T side, eliminationAnubis, round 28: FUT won on the T side, eliminationAnubis, round 29: Spirit won on the CT side, bomb defused
Ancient14–16
Ancient, round 1: FUT won on the T side, eliminationAncient, round 2: FUT won on the T side, eliminationAncient, round 3: FUT won on the T side, eliminationAncient, round 4: Spirit won on the CT side, eliminationAncient, round 5: Spirit won on the CT side, bomb defusedAncient, round 6: FUT won on the T side, bomb explodedAncient, round 7: FUT won on the T side, bomb explodedAncient, round 8: Spirit won on the CT side, bomb defusedAncient, round 9: Spirit won on the CT side, eliminationAncient, round 10: Spirit won on the CT side, eliminationAncient, round 11: Spirit won on the CT side, bomb defusedAncient, round 12: FUT won on the T side, bomb explodedAncient, round 13: Spirit won on the T side, eliminationAncient, round 14: FUT won on the CT side, eliminationAncient, round 15: FUT won on the CT side, eliminationAncient, round 16: FUT won on the CT side, eliminationAncient, round 17: Spirit won on the T side, eliminationAncient, round 18: FUT won on the CT side, eliminationAncient, round 19: Spirit won on the T side, bomb explodedAncient, round 20: FUT won on the CT side, time ran outAncient, round 21: FUT won on the CT side, bomb defusedAncient, round 22: Spirit won on the T side, bomb explodedAncient, round 23: Spirit won on the T side, eliminationAncient, round 24: Spirit won on the T side, eliminationAncient, round 25: Spirit won on the T side, bomb explodedAncient, round 26: FUT won on the CT side, eliminationAncient, round 27: FUT won on the CT side, bomb defusedAncient, round 28: Spirit won on the CT side, eliminationAncient, round 29: Spirit won on the CT side, bomb defusedAncient, round 30: Spirit won on the CT side, bomb defused
Nuke5–13
Nuke, round 1: Spirit won on the T side, eliminationNuke, round 2: Spirit won on the T side, bomb explodedNuke, round 3: Spirit won on the T side, eliminationNuke, round 4: FUT won on the CT side, time ran outNuke, round 5: Spirit won on the T side, bomb explodedNuke, round 6: FUT won on the CT side, eliminationNuke, round 7: Spirit won on the T side, eliminationNuke, round 8: Spirit won on the T side, bomb explodedNuke, round 9: Spirit won on the T side, bomb explodedNuke, round 10: Spirit won on the T side, eliminationNuke, round 11: Spirit won on the T side, bomb explodedNuke, round 12: Spirit won on the T side, eliminationNuke, round 13: FUT won on the T side, eliminationNuke, round 14: FUT won on the T side, bomb explodedNuke, round 15: FUT won on the T side, bomb explodedNuke, round 16: Spirit won on the CT side, eliminationNuke, round 17: Spirit won on the CT side, eliminationNuke, round 18: Spirit won on the CT side, elimination
All 100 rounds: FUT’s on the top line, Spirit’s below.

More from the playoffs, in the free sample

CS2 match data, from the series to every player

One schema from the series down to each round, with IDs that stay stable.

  1. Match

    The veto

    • Dust2FUT ban
    • InfernoSpirit ban
    • CacheFUT pick
    • AnubisSpirit pick
    • AncientFUT pick
    • NukeSpirit pick
    • MirageDecider

    Results and map vetoes

    Fixtures, results and every ban and pick.

    CS2 match data in JSON
  2. Map

    Ancient, 14–16

    Team1st2ndOTMap
    FUT66214
    Spirit66416

    Map scores and overtime

    Halves, sides and overtime, on 91% of matches.

    CS2 overtime rates
  3. Round

    Ancient, round 6

    FUT $4,250
    Spirit $27,750

    FUT won it. One square is $1,000.

    Round-by-round data

    Economy, end reason and clutches, on top-tier events.

    Eco rounds in CS2, defined
  4. Player

    Matches with player stats

    86%

    CS2 player stats

    Every player, by map and by match.

    CS2 player stats API guide

A CS2 API you can call in a minute

REST with Bearer auth, a WebSocket stream, a Python client and an MCP server.

  1. Get a free sandbox key
  2. Make your first call
  3. Choose a plan for current data
Runs on a free sandbox key
from esportsodds import Client

client = Client()  # reads ESPORTSODDS_API_KEY

match = client.matches.get(
    "01a02b10-1fcc-7e63-a066-34f41169d1f2",
    include=["maps", "rounds"],
)

for row in match["rounds"]:
    if row["map_number"] == 1 and row["clutches"]:
        print(row["round_number"],
              row["team_side"], row["end_reason"])
Output
5 ct BombDefused
10 t TerroristsWin
20 t TerroristsWin
21 t TargetBombed
GET/v1/cs2/matches
Results, maps and rounds
GET/v1/cs2/players
Player profiles and per-match stats
GET/v1/cs2/teams
Rosters and records
GET/v1/cs2/tournaments
Events and brackets
GET/v1/cs2/odds
The market odds line
POST/v1/cs2/ws-token
A ticket for the WebSocket stream

CS2 data coverage since 2020

27,000+ pro matches, 20,000+ of them on CS2. One square is 100 matches.

2020100+20211,000+20221,500+20234,900+20245,300+20255,500+2026 so far9,700+
2020100+20211,000+20221,500+20234,900+20245,300+20255,500+20269,700+
CS:GOCounter-Strike 2
Players
5,600+
Teams
1,800+
Tournaments
1,100+

Results in about 7 minutes

Median from the end of a match, last 30 days.

What’s in the data

Historical CS2 odds data

Every change is kept with its timestamp, so you can backtest against the line as it stood.

  • Captured about once a minute
  • Line history from July 2026
Match winnerMore markets on the roadmap
How the market line is built

FUT, market-implied win probability

FUT 1–3 Spirit, the series above

10%20%30%40%50%BeforeCache13–10Anubis13–16 OTAncient14–16 OTNuke5–1331% before the first map1.1% at the last capture
10%20%30%40%50%Cache13–10Anubis13–16 OTAncient14–16 OTNuke5–1331% before the first map
Rolling median of 15 captures. 1.1% at the last capture.

Who uses the esports data API

Esports data API pricing

Every endpoint on every plan. Yearly is two months free.

Sandbox key

$0

Free, no card

A fixed sample of past matches

  • 2,000 requests in total
  • Match, map, round and market-line endpoints
Start free with a sandbox key

Standard

$82.50 a month

Billed $990 a year, or $99 billed monthly

50,000 requests a month

  • Every endpoint and the update stream
  • Match and player-stat history back to 2020
Choose Standard

Pro

$249.17 a month

Billed $2,990 a year, or $299 billed monthly

150,000 requests a month

  • Unlimited bulk-export requests
  • A public display licence
  • Weekly bulk file, monthly coverage report
Choose Pro

One square is 10,000 requests a month. The outlined square is the fixed sample.

14-day money-back guarantee on your first payment, monthly or yearly (fewer than 1,000 requests and no more than 20 bulk-export requests). Cancel anytime. Need to supply the data to others? Talk to us. Compare the plans

Esports data API FAQ

More in the docs.

What CS2 data is there besides odds?

Fixtures and results; per-map scores and vetoes; per-player match stats (kills, assists, deaths, ADR, KAST, clutches, multi-kills) on most matches; per-round team economy and duels on top-tier events; teams, players and tournaments with head-to-head and recent form; and team and player rankings. That is 27,000+ professional Counter-Strike matches (20,000+ of them on Counter-Strike 2), with history back to 2020. The coverage page says what is thin.

Where does the odds data come from?

We publish a single market odds line built from many sources, with our own model line coming soon, once it clears validation. See our methodology.

How fresh is the data?

We poll matches and the market line about once a minute, so freshness is bounded by that cadence. Every line row carries the age of its inputs (input_oldest_at), and a WebSocket stream pushes you a row when it changes in our feed. It is a polled feed, not a real-time one.

Which games are supported?

CS2 is available today; League of Legends, Dota 2 and Valorant are on the roadmap.

Can an AI assistant use it?

Yes. The official Python client includes an MCP server, so Claude, Cursor and other AI assistants can look up teams, matches and player stats with your API key. Set-up is on the AI assistants page.

Is there a free plan?

For current data, no: plans start at $99/mo for 50,000 requests, paid up front. To try it first, a free sandbox key reads a fixed sample of past matches, and the demo needs no signup.

Make your first call today

A sandbox key reads a fixed sample of past matches, no card. Plans from $99 a month.

Start free with a sandbox keypip install esportsodds
Nuke, the last map: Spirit win 13–5 and take the series. FUT’s rounds are outlined.