Discover/HLTV API
live

HLTV APIhltv.org

Access HLTV.org CS esports data via API: match results, team/player stats, world rankings, upcoming matches, and fantasy league data across 9 endpoints.

Endpoint health
verified 5d ago
get_results
get_cct_tournaments
get_fantasy_info
get_player_stats
get_team_stats
9/9 passing latest checkself-healing
Endpoints
9
Updated
21d ago

What is the HLTV API?

The HLTV.org API provides access to Counter-Strike esports data across 9 endpoints, covering match results, player and team statistics, world rankings, upcoming match schedules, and fantasy league information. The get_match_details endpoint, for example, returns per-map scores alongside per-player ADR, K/D, and rating for every completed match. All data reflects the live HLTV.org rankings and result pages.

Try it
Maximum number of results to return.
api.parse.bot/scraper/b3500f47-4f4d-4f28-b85d-7e73293b70d1/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b3500f47-4f4d-4f28-b85d-7e73293b70d1/get_results?limit=10' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace hltv-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""HLTV.org SDK — browse CS esports data: results, rankings, stats, fantasy."""
from parse_apis.hltv_org_api import Hltv, MatchNotFound

client = Hltv()

# Recent match results — limit caps total items fetched.
for result in client.matchsummaries.list(limit=3):
    print(result.team1, result.score, result.team2, "|", result.event)

# Drill into the first result's full match details.
result = client.matchsummaries.list(limit=1).first()
if result:
    try:
        match = result.details()
        print(match.match_id, match.teams)
        for m in match.maps:
            print(f"  {m.name}: {m.score}")
    except MatchNotFound as exc:
        print(f"Match gone: {exc.match_id}")

# World team rankings — top 5.
for ranking in client.teamrankings.list(limit=5):
    print(ranking.rank, ranking.team, ranking.points)

# Player stats over the last 30 days.
for player in client.playerstats.list(days=30, limit=3):
    print(player.name, player.team, player.rating)

# Fantasy: get season overview, then fetch leaderboard for the first event.
season = client.fantasyseasons.overview()
print(season.season_name, season.season_finished)
if season.events:
    event = season.events[0]
    lb = event.leaderboard()
    print(lb.event_name, lb.total_teams)
    for entry in lb.leaderboard[:3]:
        print(f"  #{entry.rank} {entry.user} — {entry.total_points} pts")

print("exercised: matchsummaries.list / details / teamrankings.list / playerstats.list / fantasyseasons.overview / event.leaderboard")
All endpoints · 9 totalmissing one? ·

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.

Input
ParamTypeDescription
limitintegerMaximum number of results to return.
Response
{
  "type": "object",
  "fields": {
    "results": "array of match result objects with match_id, date, team1, team2, score, event, url"
  },
  "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 Results and Schedules

The get_results endpoint returns recent completed matches in reverse chronological order. Each result object includes match_id, date, team1, team2, score, event, and a direct url. A limit parameter caps the number of results returned. For upcoming fixtures, get_upcoming_matches returns all scheduled and live matches with status, date, time, and event fields. It accepts a filter_cct boolean to restrict results to CCT-series tournaments only.

Player and Team Statistics

get_player_stats and get_team_stats both accept a days integer that defines a lookback window from today. Player objects include player_id, name, team, maps, rounds, kd_diff, kd, and rating, sorted by rating descending. Team objects mirror this structure with team_id, name, maps, kd_diff, kd, and rating. get_match_details goes deeper: for a given match_id it returns maps (name and score per map), a stats array of per-player kd, adr, and rating rows, and the two team names. The endpoint falls back to the main match page when the stats sub-page is unavailable.

Rankings and Tournaments

get_team_rankings returns all ranked teams with rank, team name, and points from HLTV's weekly world rankings — no input parameters required. get_cct_tournaments lists current and upcoming CCT-series events with name, url, and date. These two endpoints are useful for building ranking trackers or tournament calendars without additional filtering logic on your side.

Fantasy League Data

get_fantasy_info returns the active season name, a season_finished flag, and an events array where each entry carries fantasy_id, name, month, state (finished/live/upcoming), winner, enabled, description, and the list of participating teams. Pass a fantasy_id from that response into get_fantasy_leaderboard to retrieve the top-10 public league standings, including rank, user, team_name, total_points, and a breakdown into role_points, boost_points, player_points, and team_points.

Reliability & maintenanceVerified

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.

Last verified
5d ago
Latest check
9/9 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a live CS match tracker that polls get_upcoming_matches and surfaces live match status with event name and team names.
  • Generate weekly team performance reports using get_team_stats with a 7-day window and the kd_diff and rating fields.
  • Power a world-rankings widget by reading rank, team name, and points from get_team_rankings.
  • Display detailed post-match breakdowns by fetching get_match_details for a match_id and rendering per-player ADR and rating by map.
  • Build a fantasy CS assistant that reads get_fantasy_info for team rosters and event states, then checks get_fantasy_leaderboard for point breakdowns.
  • Filter and display only CCT tournament fixtures by calling get_upcoming_matches with filter_cct: true.
  • Track player rating trends over time by calling get_player_stats with different days values and comparing the sorted rating field.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does HLTV.org have an official developer API?+
HLTV.org does not publish an official public developer API. There is no documented REST or GraphQL API offered to third parties on the HLTV website.
What does `get_match_details` return, and what happens when stats are unavailable?+
get_match_details takes a numeric match_id string and returns the two team names, an array of map objects (each with name and score), and a stats array of per-player rows covering kd, adr, and rating. When the dedicated stats sub-page for a match is unavailable, the endpoint falls back to the main match page, which may return partial data.
How current are the team rankings from `get_team_rankings`?+
HLTV updates its world team rankings on a weekly basis, and get_team_rankings reflects whatever ranking is currently published on the HLTV rankings page. Intra-week changes are not reflected until the next HLTV update cycle.
Does the API cover individual player profiles, match histories per player, or head-to-head records?+
Not currently. The API covers aggregate player stats via get_player_stats and per-match player performance via get_match_details, but individual player profile pages, career match histories, and head-to-head records are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting those data surfaces.
Does `get_results` support pagination to retrieve older historical results?+
There is no server-side pagination. get_results reads from a single results page and the limit parameter caps how many items from that page are returned. Results older than what appears on that page are not accessible through this endpoint. You can fork the API on Parse and revise it to target HLTV's paginated results archive if you need deeper history.
Page content last updated . Spec covers 9 endpoints from hltv.org.
Related APIs in SportsSee all →
liquipedia.net API
Access comprehensive esports data from Liquipedia, the world's leading esports wiki. Retrieve match schedules, team rosters, player profiles, tournament results, and game-specific statistics across top titles including Valorant, Counter-Strike, League of Legends, and Dota 2.
csstats.gg API
Access Counter-Strike 2 player statistics, match history, and leaderboard rankings from csstats.gg. Search players by Steam ID or name, retrieve detailed performance metrics and recent match results, explore scoreboard data, view played-with history, and check global ban statistics.
csgostats.gg API
Track and analyze Counter-Strike 2 player performance with detailed statistics including weapon usage, match history, and head-to-head comparisons. Access global leaderboards, view recent matches, and discover which players you've competed against to benchmark your skills.
h2hggl.com API
Access live e-sports match data, daily schedules, upcoming games, and final results across H2H GG League eBasketball competitions. Retrieve real-time scores, player statistics, head-to-head comparisons, and detailed match timelines.
csstats.org API
Track Counter-Strike 2 player performance with detailed statistics, match history, and leaderboard rankings from csstats.gg. Search players, view their profiles, analyze individual matches, check ban records, and see who they've played with.
vlr.gg API
Track professional esports competition data by retrieving live events, match results, detailed performance statistics for players and agents, current rankings, and team information. Monitor player performance metrics and agent usage across matches to stay updated on the competitive scene.
api-public-docs.cs-prod.leetify.com API
Access CS2 player statistics, match history, and individual game performance data from Leetify's competitive database. Look up player profiles by Steam64 ID or Leetify user ID and retrieve comprehensive match details including per-round metrics and performance breakdowns.
opendota.com API
Access detailed Dota 2 match statistics, player performance metrics, hero win rates, and professional tournament data to analyze gameplay trends and competitive performance. Search for specific players, explore custom data queries through SQL, and retrieve comprehensive match histories to improve your understanding of the game.