Opendota API

Get Opendota data as clean JSON with one key: 10 endpoints, 1 to 5 credits per call, the same response shape as every other platform.

What you get#

Onekey exposes Opendota as 10 endpoints behind one API key: 3 endpoints return one record (data is an object) and 7 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for Opendota also works for the rest of the gaming category.

Endpoints#

EndpointWhat it doesParametersCreditsStatus
hero_statsDota 2 hero stats: base stats and pro pick/win/ban counts.-5stable
heroesAll Dota 2 heroes.-5stable
matchSummary of a Dota 2 match.match_id*1stable
playerFetch a Dota 2 player's profile (OpenDota).account_id*1stable
player_heroesA Dota 2 player's per-hero games and wins.account_id*5stable
player_recent_matchesA Dota 2 player's last 20 matches.account_id*5stable
player_searchSearch Dota 2 players by name.q*5stable
player_winlossA Dota 2 player's win/loss totals.account_id*1stable
pro_matchesRecent professional Dota 2 matches.-5stable
public_matchesRecent public Dota 2 matches.-5stable

A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.

Make a request#

This calls opendota.match (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.

curl "https://api.onekey.dev/v1/opendota/match?match_id=8000000000" \
  -H "x-api-key: YOUR_API_KEY"

Fields you get back#

These unified fields come back from Opendota, with the same names as on every other platform. The count is how many of its 10 mapped endpoints return the field; a field the source lacks is null, never missing. 30 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.

FieldTypeEndpoints
content.createdAtISO 8601 date6
content.idstring4
media.durationSecondsnumber4
author.avatarUrlURL2
author.idstring2
author.usernamestring2
entity.idstring2
entity.namestring2
author.displayNamestring1
author.urlURL1
entity.slugstring1

The full schema is in Unified schema.

Pricing#

Opendota calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.