API · /dota-api

Dota 2 API

healthy 3,587 Subscribers

Live Dota 2 data as an API, powered by OpenDota — clean JSON, no key. List all heroes with their attributes, roles and pick/win statistics; open any player by account id for their profile, rank and overall win/loss; pull a player's recent matches and most-played heroes (hero ids enriched to names); follow the professional scene with recent pro matches, pro players and pro teams; and open any match for its full detail — both line-ups with each player's hero, kills, deaths, assists, GPM/XPM and net worth. Live data sourced continuously from OpenDota. One of the biggest esports titles — ideal for match trackers, stat overlays, MMR and leaderboard tools, fantasy and Discord bots. 8 data endpoints. Authenticated with an x-oanor-key; fair-use rate limits per plan.

api.oanor.com/dota-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/dota-api/openapi.json
/api/dota-api/llms.txt

Discovery: GET /api/index.json lists every API.

Dota 2 API — live data on the oanor API marketplace

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
1319 ms
Server probes · 24h
Subscribers
3,587
active
Total calls
171
last 7 days
status Full status page → · 18 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 3,600 calls / month
  • 5 requests / second
  • Hard cap (429 above quota, no overage)
  • 3,600 calls/month
  • 5 req/sec
  • All 8 data endpoints
  • Hero names enriched
  • No credit card
Sign in to subscribe

Starter

€7.20 /month

  • 53,000 calls / month
  • 15 requests / second
  • Hard cap (429 above quota, no overage)
  • 53,000 calls/month
  • 15 req/sec
  • Players, matches & pro scene
  • Email support
Sign in to subscribe

Pro

€29.50 /month

  • 290,000 calls / month
  • 30 requests / second
  • Hard cap (429 above quota, no overage)
  • 290,000 calls/month
  • 30 req/sec
  • Stat overlays & trackers
  • Priority support
Sign in to subscribe

Mega

€93.00 /month

  • 1,250,000 calls / month
  • 80 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,250,000 calls/month
  • 80 req/sec
  • Platform & tournament scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Steam Charts API — oanor API marketplace

Steam Charts API

Live Steam concurrent-player counts and the most-played-games charts, with no key. This reads Valve's own public Steam charts and player-count endpoints and returns clean JSON: how many people are playing any game on Steam right now (by app id, with the game name resolved from the Steam store), the live leaderboard of the most-played games ranked by current concurrent players with today's peaks, and the most-played chart with week-over-week movement (current rank, last week's rank and the change). The live-engagement / player-activity layer for gaming dashboards, analytics, esports and games-market tools. Distinct from the Steam store reader, the SteamSpy ownership reader, the review-sentiment reader and the Steam Market price reader — this is the live "who is playing what right now" data. Live from Steam; short cache only.

api.oanor.com/steamcharts-api

CHZZK Live Streaming API — oanor API marketplace

CHZZK Live Streaming API

Live data from CHZZK (chzzk.naver.com), the Korean live-streaming platform built and run by Naver, Korea's dominant web portal. CHZZK rose fast after Twitch withdrew from Korea and is now one of the country's two big streaming platforms alongside SOOP — gamers, just-chatting, sports and esports broadcasters streaming to large Korean audiences. The live endpoint lists the streams on air right now ranked by current viewers, each with its channel name, title, concurrent viewer count, this broadcast's accumulated viewers, category and how long it has been live. The categories endpoint aggregates the top live streams by category (the games and genres pulling the biggest audiences right now). The channel endpoint returns one channel's profile by its 32-character channel id: follower count, verified status, description and whether it is live now. The search endpoint finds CHZZK channels by keyword, each with follower count and live status. This is the CHZZK platform cut — a distinct social/streaming platform, separate from the SOOP, SHOWROOM, Niconico, Twitch, Kick, Bilibili and other feeds in the catalogue. Viewer and follower counts are live integers; broadcast start times are KST as the platform reports them. Keyless public source, nothing stored beyond a short cache.

api.oanor.com/chzzk-api

Quaver Rhythm Game API — oanor API marketplace

Quaver Rhythm Game API

Live player and ranking data from Quaver, the competitive vertical-scrolling rhythm game (VSRG, 4-key and 7-key), served from its public v2 API. The player endpoint resolves a user by id or username and returns the profile — country, clan, avatar, linked Twitch/Twitter and join date — together with the full per-mode competitive stats for both 4K and 7K: global and country rank, performance rating, overall accuracy, ranked and total score, play count and the grade distribution (SS/S/A/B/C/D). The search endpoint finds players by name. The leaderboard endpoint returns the global ranked ladder for a mode, with each player's rank, performance rating, accuracy and play count. This is a single-game competitive-community stats API — player profiles, ratings and ladders — distinct from the other rhythm-game and gaming-leaderboard APIs in the catalogue. Live, no key on the upstream, nothing stored.

api.oanor.com/quaver-api

ScoreSaber API — oanor API marketplace

ScoreSaber API

Live player, score and ranking data from ScoreSaber, the global leaderboard for Beat Saber, the VR rhythm game, via its public API. ScoreSaber ranks tens of thousands of players worldwide by performance points (pp). Get a player's full profile — their pp, their global and country rank, their country, and their score statistics: total score, ranked plays and average ranked accuracy. Pull a player's plays, each with the song and mapper, the map's difficulty and star rating, the pp earned, the accuracy, the full-combo flag and the headset used. Get the top players in the world, or filtered to one country. Read ScoreSaber's global numbers — the total ranked players and the current world number one. Live, no key, nothing stored. Distinct from other gaming and social-profile APIs — this is ScoreSaber's pp ranking and its players. Perfect for leaderboard, esports and gaming-community apps.

api.oanor.com/scoresaber-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Dota 2 API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Dota 2 API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Dota 2 API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Dota 2 API cost?
Dota 2 API has a free tier with 100 calls / month. Paid plans start at €7.20 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Dota 2 API GDPR-compliant?
All requests to Dota 2 API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/dota-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/dota-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/dota-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/dota-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.