Looking for an HLTV API?
HLTV does not publish an official public API, so wrappers scrape its pages and break when the markup changes. This API serves the same kinds of CS2 data as documented, versioned REST endpoints.
- No scraping to maintain
- Stable IDs and slugs
- 500 free requests / month
{ "data": [ ... { "playerName": "ZywOo", "teamName": "Vitality", "maps": 32, "rating": 1.43, "adr": 96, "kast": 0.778, "kd": 1.42 } ], "meta": { "windowDays": 90, "minMaps": 20 }}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 serverWhat people use an HLTV scraper for
The data behind stat bots, prediction models and fan sites, without the scraper.
Match results
Series and map scores with every player's line.
Player ratings
Rating, ADR, KAST and K/D per map, career and form.
Rankings
The world ranking and Valve Regional Standings.
Live scores
Round-by-round live scores, polled or pushed.
Teams and transfers
Rosters, lineup history and player moves.
A contract, not markup
Documented JSON that does not change when a website redesigns.
HLTV scraping vs a CS2 API
Why teams move off scrapers once a project is real.
| Scraping HLTV | CS2 API (Cito) | |
|---|---|---|
| Official public API | None | Yes, REST with an OpenAPI spec |
| Access | Headless browsers, anti-bot challenges | One API key in a header |
| When the site changes | The scraper breaks | Same JSON contract |
| Live scores | Parse the scorebot page | /cs2/live, SSE and WebSocket |
| Player ratings | Parse stat tables | Per map, career and form endpoints |
| Skin prices | Not on HLTV | Per marketplace with daily history |
| Commercial use | Governed by the site's terms | Included on paid plans |
Moving an HLTV scraper to the API
Most HLTV scrapers pull four things: results, a player's stats, the ranking and live scores. Those map to /cs2/matches/recent, /cs2/players/{slug}/stats, /cs2/rankings/world and /cs2/live.
Players, teams and events use slugs you already know, such as zywoo or vitality, so the lookup code stays simple. Store the returned IDs for anything you persist.
CS2 API is independent and not affiliated with HLTV.
Endpoints you can ship with
The HLTV-style jobs: results, player stats, rankings and live.
Player stats
Rating, ADR, KAST and K/D for every map a player has played, rolled up into career, yearly and recent-form views.
- GET
/api/v1/cs2/players/{playerIdOrSlug}Nickname, real name, photo, country, team, role and headline stats.
- GET
/api/v1/cs2/players/{playerIdOrSlug}/statsCareer totals plus a stat line for every map played.
- GET
/api/v1/cs2/players/{playerIdOrSlug}/seasonsA player's stats by year.
- GET
/api/v1/cs2/players/{playerIdOrSlug}/formThe most recent maps with kills, deaths, ADR, KAST and rating.
- GET
/api/v1/cs2/leaderboards/{metric}Top players by rating, ADR, KAST, K/D, kills or opening kills.
- GET
/api/v1/cs2/players/search?q={name}Find a player by nickname or real name.
FAQs
HLTV, scraping and the alternative
Can't find what you're looking for? Contact our customer support team
Replace each scraper call
- CS2 player stats APIRating, ADR, KAST and K/D per map, career and form.
- CS2 match results APIFinal series scores, map scores and box scores.
- CS2 rankings APIWorld ranking and Valve Regional Standings with movement.
- CS2 live score APISeries, map and round score for every match in progress.
- CS2 API in PythonLive scores, results and player stats with requests.
- PandaScore CS2 alternativeA self-serve CS2 API with a free key and no sales call.
Stop scraping CS2Â results
Swap the scraper for one key. Free to test.