HLTV APIhltv.org ↗
Access HLTV.org CS2 data via API: match results, player/team stats, rankings, upcoming matches, fantasy league info, and CCT tournaments.
What is the HLTV API?
This API exposes 10 endpoints covering Counter-Strike esports data from HLTV.org, including match results, player and team statistics, world rankings, and fantasy league data. The get_player_stats endpoint returns per-player metrics such as rating, K/D, ADR, and maps played for a configurable day window, while get_match_details delivers per-map scores and individual player performance for any completed match by ID.
curl -X GET 'https://api.parse.bot/scraper/b3500f47-4f4d-4f28-b85d-7e73293b70d1/get_results?limit=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetch recent match results from HLTV in reverse chronological order. Each result includes the two teams, final score, event name, and a direct URL. No server-side pagination; limit caps the number of items returned from the single results page.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return. |
{
"type": "object",
"fields": {
"results": "array of match result objects with match_id, date, team1, team2, score, event, url, team1_logo, team2_logo"
},
"sample": {
"data": {
"results": [
{
"url": "https://www.hltv.org/matches/2395078/wingman-vs-eternal-premium-esea-advanced-season-57-europe",
"date": "Results for June 10th 2026",
"event": "ESEA Advanced Season 57 Europe",
"score": "2 - 1",
"team1": "Wingman",
"team2": "eternal premium",
"match_id": "2395078"
}
]
},
"status": "success"
}
}About the HLTV API
Match Data
get_results returns recent completed matches in reverse chronological order, each including match_id, date, team1, team2, score, event, and logo URLs for both teams. A limit parameter caps how many results come back. For a single match, get_match_details takes a numeric match_id and returns a maps array (map name + score), a teams array, and a nested stats array of per-map player rows with kd, adr, and rating.
Player and Team Statistics
get_player_stats accepts a days lookback window and optional filters: comma-separated player_id, team_id, player_name, or team_name values. Each row in the players array includes player_id, name, team, team_id, and the standard HLTV stat columns. HLTV's own minimum-maps threshold applies when min_maps is omitted; pass an explicit value to override it. get_team_stats works similarly, returning a teams array sorted by rating descending with team_id, name, maps, kd_diff, kd, rating, and logo.
Rankings, Rosters, and Schedules
get_team_rankings returns the current HLTV world ranking with rank, team name, points, and logo URL — updated weekly on HLTV's end. get_team_roster takes a team_id and returns each listed player's player_id, name, roster status (starter, benched, or substitute), and time_on_team. get_upcoming_matches lists all scheduled and live matches; pass filter_cct: true to narrow to CCT-series events only.
Fantasy League and CCT Tournaments
get_fantasy_info provides a full season overview: season_name, season_finished, and an events array with fantasy_id, name, month, state, winner, and participating teams. Feed a fantasy_id into get_fantasy_leaderboard to retrieve the top-10 public-league standings with point breakdowns across role_points, boost_points, player_points, and team_points. get_cct_tournaments lists CCT events from HLTV's events page with name, URL, and date.
The HLTV API is a managed, monitored endpoint for hltv.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hltv.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official hltv.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track live and upcoming CS2 match schedules filtered to CCT-series tournaments using
get_upcoming_matcheswithfilter_cct: true. - Build a player performance dashboard using
get_player_statsfiltered byteam_idand a rollingdayswindow. - Display current HLTV world team rankings with points and logos using
get_team_rankings. - Pull per-map K/D, ADR, and rating breakdowns for a completed match using
get_match_detailsbymatch_id. - Monitor fantasy league standings and point breakdowns per event using
get_fantasy_leaderboard. - Verify active roster members and substitutes for a team before a match using
get_team_roster. - Aggregate team win rates and rating trends over configurable time windows using
get_team_statswith thedaysparameter.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does HLTV.org have an official developer API?+
How does filtering work in `get_player_stats`?+
get_player_stats accepts comma-separated values for player_id, team_id, player_name, and team_name, allowing you to combine multiple players or teams in a single request. The days parameter sets the lookback window, and min_maps overrides HLTV's default minimum-maps threshold. Results are always sorted by rating descending.Does `get_match_details` return data for ongoing matches?+
get_match_details is designed for completed matches and returns map scores plus per-player stats (kd, adr, rating) for each map. If the match stats sub-page is unavailable, the endpoint falls back to the main match page, which may return partial data. In-progress match state is not a covered use case. You can fork this API on Parse and revise it to add a live-match status endpoint.Does the API expose individual match odds or betting lines?+
Are historical rankings or stat snapshots from past weeks available?+
get_team_rankings returns only the current weekly ranking — no historical snapshots are exposed. get_player_stats and get_team_stats support a days lookback window for aggregated stats but do not return point-in-time ranking history. You can fork the API on Parse and revise it to store and expose historical ranking snapshots.