DOCS / GAMES / DOTA 2

Dota 2 coverage. TI to the open qualifiers.

Dota 2 ships in the Phase-1 Big Four alongside LoL, CS2 and Valorant. Fixtures, results, brackets and roster history sourced from Liquipedia (CC-BY-SA 3.0); match-stats depth landing as the per-game parsers mature. Tier-2 backfill covers the DPC and Riyadh Masters cycles; Tier-3 regional leagues land as the Liquipedia coverage allows.

Get an API key Read the quickstart

What you can call

GET /v1/tournaments?game=dota2

Active Dota 2 tournaments

The International, DPC tours, ESL One, Riyadh Masters, and the open qualifier circuits Liquipedia carries.

GET /v1/matches?game=dota2

Matches by game

Bo1, Bo3 and Bo5 with per-game scores. Cursor pagination, never offset. Up to 200 per page.

GET /v1/matches/:id

One match

Canonical record — teams, draft order when available, broadcast, scheduled time, final score.

GET /v1/teams/:slug

Team page

Roster, recent results, head-to-head, regional affiliation. Backfilled to the start of the DPC era.

Capability flags

Dota 2 carries the full Phase-1 MOBA feature set on /v1/games/dota2:

The capability middleware joins (tier-has-cap) AND (game-has-cap) at request time. A game without the flag returns 200 plus meta.note rather than a 402 paywall — so under-covered surface is visible without being breaking.

Try it

curl -H "Authorization: Bearer $STADAR_API_KEY" 
  "https://api.stadar.net/v1/matches?game=dota2&status=live&limit=20"
from stadar import Stadar

client = Stadar(api_key="esp_live_...")
for match in client.matches.list(game="dota2", status="live", limit=20):
    print(match.id, match.scheduled_at, match.teams)

Attribution

Dota 2 reference data is sourced from Liquipedia contributors. Every response includes a meta.sources array with article URLs and licence. Do not strip it — same hard rule as LoL and CS2, set out in our Attribution Policy.