HLTVEvery HLTV API guide

The HLTV API alternatives, compared.

HLTV offers no API, and its terms of use forbid scraping the site. The practical alternatives are a documented CS2 API with a free key (results, HLTV-style ratings, rankings, live scores), enterprise feeds such as GRID and PandaScore, Valve's own ranking repository on GitHub, and Steam for your own matchmaking games.

  • 6 options
  • Facts dated 7 Oct 2026
  • We run the CS2 API
GET /cs2/leaderboards/rating?limit=2200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/leaderboards/rating?limit=2" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": [    {      "playerName": "donk",      "teamName": "Spirit",      "maps": 572,      "rating": 1.45,      "adr": 97    },    {      "playerName": "ZywOo",      "teamName": "Vitality",      "maps": 636,      "rating": 1.39,      "adr": 88    },    "__more__"  ]}

Seamless Integration with our MCP Server

Give Claude, Cursor, and ChatGPT the CS2 data. One command writes the MCP config; agents call live scoreboard, team map stat, opening duel, and transfer tools instead of inventing match IDs, and your key stays on your machine.

MCPInstall the Cito MCP server
Claude
Cursor
OpenAI
Python
Cito API
Next.js
Discord
Slack
GitHub

Who wrote this comparison?

Cito API, which runs the CS2 API, wrote it. We say where another option is the better fit, use only facts each project or vendor publishes (read on 7 October 2026), and write "not published" rather than guess. CS2 API is independent and not affiliated with HLTV.

How do the HLTV API alternatives compare?

The choice comes down to three questions: do you need live and per-map player data, can you sign a sales contract, and can you live with code that breaks when a website changes.

Scraper rows describe the hltv npm package and the Python HLTV libraries; HLTV's terms (clause 2.2) prohibit scraping its website.
CS2 APIScraper librariesPandaScoreGRIDValve VRS repoSteam Web API
Official / documentedYes, REST + OpenAPINo, parses HTMLYesYesYes (Valve)Yes (Valve)
Self-serve keyYes, free tierNo keyYes, free static tierNo, salesNo key neededYes
Results and scheduleYesWhile unblockedYesYesNoNo
Per-map player statsYes, HLTV-style ratingWhile unblockedNot publishedNot publishedNoOwn games via demos
Team rankingWorld + VRSWhile unblockedNot publishedNot publishedVRS onlyNo
Live scoresYes, REST, SSE, WebSocketScorebot, often blockedLive plans from €1,000/moYesNoNo
Main riskPlan limits (published)Cloudflare challenge, markup changesPriceSales processParsing Markdown filesOwn games only

1. A documented CS2 API (best for most developers)

Sign up, get a key, and call REST endpoints for the same jobs people scrape HLTV for: results, HLTV-style player ratings, the world ranking and VRS, live scores, teams and transfers. Free covers 500 requests a month; Pro at $59 a month adds real-time live data. It does not include odds.

Coverage counts from GET /cs2. Fetched from the production CS2 API on 12 Oct 2026, 13:15 UTC.
EntityCount
Matches15,315
Teams4,507
Players8,828
Tournaments1,534
Match demos tracked38,086
Roster changes150,825
Teams in the world ranking250
Teams in the VRS349

2. HLTV scraper libraries (free, but blocked and against the terms)

The hltv npm package and the Python HLTV libraries download hltv.org pages and parse them. hltv.org now answers scripted requests with a Cloudflare challenge (403, "Just a moment..."), and HLTV's terms of use, effective 27 January 2025, prohibit data mining or web scraping of the site in clause 2.2.

  • hltv (npm): latest release 3.5.0 on 20 September 2023, about 1,000 downloads a week; it throws "Access denied | www.hltv.org used Cloudflare to restrict access" when challenged.
  • hltv-async-api (PyPI): latest release 0.8.3 on 3 June 2024.
  • hltv-data (PyPI): latest release 0.4.0 on 9 March 2024.
  • Forks that drive a real browser to pass the challenge exist, but they add a browser to your stack and remain subject to the same terms.

Language guides without a scraper: HLTV API in Python and HLTV API in JavaScript.

3. PandaScore (best for many esports at once)

PandaScore covers many esports with a self-serve free tier for static and pre-match data. Historical plans start at €400 a month per game and live plans at €1,000; odds are sold separately through sales.

4. GRID (best for official licensed in-play data)

GRID distributes official CS2 data from tournament organisers including ESL, BLAST and CCT, over WebSocket or Kafka. It is sales-only with custom pricing, which suits operators and broadcasters more than individual developers.

5. Valve's Regional Standings repository (best free source for VRS only)

Valve publishes its Regional Standings on GitHub as Markdown files, with new snapshots on the first Monday of each month. It is official and free, but it is rankings only and you parse the files yourself; GET /cs2/rankings/vrs returns the same kind of table as JSON.

6. Steam Web API (only for your own matchmaking games)

Steam returns the share codes of one account's own matchmaking games, one at a time, with that player's game authentication code; stats then come from the replay demo. It has no professional match data.

How much CS2 data is behind it?

Measured on production, with the date each figure was taken.

  • The CS2 API indexes 15,315 Counter-Strike 2 matches, 4,507 teams and 8,828 players across 1,534 tournaments (as of 12 October 2026).
  • Live CS2 match data on the CS2 API refreshes every 15 seconds at the median, measured over 22,479 live sync runs in the 7 days to 3 October 2026.
  • The free CS2 API plan includes 500 requests a month, 10 requests a minute and live data on a 60-second delay, with no credit card.

Endpoints you can ship with

What the self-serve option covers: results, players, rankings and live.

Results

Finished matches with the series score and winner, every map and its score, and the player lines behind them.

View docs
  • GET/api/v1/cs2/matches/recent

    Finished matches with final series score and winner, newest first.

  • GET/api/v1/cs2/matches/{matchId}

    One match: event, teams, series score, and maps.

  • GET/api/v1/cs2/matches/{matchId}/maps

    Each map: name, score, winner, and the team that picked it.

  • GET/api/v1/cs2/matches/{matchId}/player-stats

    Per-player stats for each map: kills, deaths, ADR, KAST and rating.

  • GET/api/v1/cs2/teams/{teamIdOrSlug}/results

    One team's finished matches, newest first.

  • GET/api/v1/cs2/events/{eventIdOrSlug}/results

    Final placements and prize money of a tournament.

FAQs

Choosing an HLTV API alternative

Can't find what you're looking for? Contact our customer support team

Read the CS2 docs

Replace HLTV scraping with one API key

Free to test, no sales call.