HLTV has no official API. This is the CS2 API you build on.
22,000+ professional Counter-Strike matches tracked (16,000+ on CS2), player and team stats, 850+ tournaments, and one market odds line — all behind a single documented REST + WebSocket API.
What the CS2 API covers
Fixtures, results and map scores are effectively complete across all 22,000+ matches — 16,000+ of them CS2-era. Per-player stats (K/A/D, ADR, KAST, clutches, multi-kills) cover the large majority of completed matches, and per-round economy and duel data runs deeper on top-tier events.
Everything is normalized to one snake_case schema with stable IDs, so a team is the same team across tournaments, rosters and seasons — and a coverage gap is shown as a gap, never synthesized.
New to the metrics? The Learn hub explains ADR, KAST, ratings, the map meta and the market odds line. Ready to build? The developer guides walk through your first call, pagination and the WebSocket stream. Weighing up the field? See how we compare.
$ curl -H "Authorization: Bearer $EO_KEY" \ "api.esportsodds.gg/v1/cs2/matches?status=completed" { "data": [{ "tournament_name": "IEM Cologne 2026", "team_a_name": "Natus Vincere", "team_b_name": "FaZe Clan", "format": "bo3", "status": "completed", "score_a": 2, "score_b": 1 }, …] }
Why build on this CS2 API
The licensed, rights-holding data feeds are built for operators — sales calls, annual contracts, four- to five-figure minimums. Not something an individual developer can sign up for.
Everything here ships under the same flat $99/mo plan — every endpoint, the market line included, the same terms for every customer. No tier ladder, no usage carve-outs to discover after you have built.
Odds-only APIs give you a price with no context — no rosters, no stats, no history. We publish the market line and the underlying match data in one product, one schema.
CS2 API endpoints
Plain REST with Authorization: Bearer auth — no SDK required, any language. Every response is documented in the OpenAPI reference. Game-namespaced today under /v1/cs2; the schema is title-agnostic.
CS2 API FAQ
- What CS2 data does the API cover?
- Fixtures, live scores and results; per-map scores and vetoes; per-player match stats (K/A/D, ADR, KAST, clutches, multi-kills) on the large majority of matches; per-round team economy and duels; teams, players and tournaments with head-to-head and recent form; and proprietary team and player rankings — 22,000+ professional Counter-Strike matches (16,000+ of them on Counter-Strike 2), with history back to 2020.
- Is there an official HLTV or Valve API?
- No. Counter-Strike has no official public match-data API, and community scrapers get IP-blocked. EsportsOdds is a self-serve, documented alternative — normalized JSON, a versioned schema, and one Bearer token.
- How fresh is the CS2 data?
- Matches and the market line poll on a ≤90s cadence; teams, players, tournaments and rankings rebuild daily. Rather than poll us, mint a WebSocket ticket and we push you the row the moment it changes in our feed. It is a freshness guarantee, not a countdown — this is not in-play data.
- Does the CS2 API include odds?
- Yes — one market odds line on currently-active matches. Our own model line is coming soon, once it clears validation.
- Where does the data come from?
- It’s normalized into one consistent schema from public competitive-match records — we never expose per-book prices or any single upstream’s raw feed. See our methodology.
- Is the CS2 API free?
- No. One plan, $99/mo, 10,000 requests — every endpoint on this page included, no tier ladder and nothing held back. A 7-day free trial gets you the whole API against the real data (card required, cancel any time before it ends and you pay nothing).
CS2 API pricing
No tiers, no metering surprises, no sales calls. Every endpoint on this page is included — full pricing details.
Card required · cancel anytime · then $99/mo
The CS2 dataset you were searching for
Matches, stats, tournaments and a market line — one key, one schema, one flat price.