DotaScore
Honest, side-by-side comparison

The PandaScore alternative
built for Dota 2 — and only Dota 2.

DotaScore aggregates Steam, OpenDota, STRATZ, Liquipedia, and dota2.com into a single PandaScore-shaped JSON envelope — at a fraction of the price, with a free tier that actually lets you ship.

Why teams pick DotaScore

Other providers either charge €200+/month or hand you raw, fragmented endpoints. DotaScore is the only one that gives you both: clean shape and a real free tier.

Layered free-source aggregator
Steam Web API for the match-id spine, OpenDota for parsed stats, STRATZ as fallback, Liquipedia for fixtures, dota2.com/datafeed for constants. You get the union of every source — not a single point of failure.
PandaScore-compatible shape
Same opponents / results / serie / tournament JSON envelope PandaScore made famous. Migration is a base-URL swap and a token rename — most clients don't even need a code change.
₱0 → ₱499 entry price
PandaScore starts at €199/month. Abios is enterprise-only. DotaScore's Free plan calls every endpoint once, and the Starter plan is a fraction of the cost — billed in PHP via GCash, Maya, BPI, or BDO.
Reconciler that finalizes matches
A background worker cross-checks running games against Steam, OpenDota, and STRATZ, locks finalized scores, and ships webhooks the moment a match completes.
Etiquette-aware throttling
Per-host limits respect each upstream's policy (Liquipedia 1 req / 2s, Steam ~100k/day, OpenDota free tier). You never get banned because we never abuse them.
Full per-player boxscore
Every match returns all 10 players with KDA, GPM/XPM, last hits/denies, net worth, hero/tower damage, hero healing, stuns, APM, teamfight participation, lane efficiency, wards placed, item builds, and ability upgrades — the complete OpenDota stat surface, normalized.
Built for Dota 2 — only Dota 2
PandaScore and Abios cover 30+ games and dilute Dota-specific fields. DotaScore models facets, talents, item neutrals, and per-map odds as first-class citizens.

DotaScore vs the field

Every claim below is something you can verify against each provider's public docs. Where a provider technically supports a feature but only partially, we mark it amber.

Feature
DotaScore
You are here
PandaScore
Commercial
Abios
Commercial
OpenDota
Free / Community
STRATZ
Free / Freemium
Steam Web API
Official / Raw
Coverage
Live in-progress matches
Upcoming pro fixtures
Past matches & boxscores
Bookmaker odds (ML, spreads, totals, per-map)
All 127 heroes (bios, abilities, talents, facets)
Full item catalog
Players, teams, leagues
Per-player boxscore (KDA, GPM/XPM, last hits, net worth, hero/tower damage)
Extended stats (hero healing, stuns, APM, teamfight %, lane efficiency, wards placed, camps stacked, runes)
Item builds + ability upgrades + per-target damage breakdown
Tournament brackets & series
Twitch / stream discovery
Developer experience
One bearer token, one base URL
Stable PandaScore-shaped JSON envelope
OpenAPI / Swagger docs
Webhooks for match events
SDK (TypeScript)
Free tier with every endpoint
No credit card to evaluate
Reliability & freshness
Multi-source reconciliation (Steam + OpenDota + STRATZ + Liquipedia)
Live updates within seconds
Per-host upstream throttling (etiquette-aware)
Server-side cache with TTL tiers
Background reconciler for finalization
Pricing & access
Entry price₱0 free → ₱499/mo€199/mo+Custom (enterprise)Free / $Free / $Free
Pay in PHP (GCash, Maya, BPI, BDO)
Per-minute rate limit transparency
Monthly quota in dashboard
No vendor lock-in (PandaScore-compatible shape)
Supported Partial / requires extra work Not available

Head-to-head

vs PandaScore
The clean migration

Same envelope shape, same routes (/dota2/matches/running, /dota2/teams/{id}, …). DotaScore drops in as a base-URL swap, costs a fraction of €199/mo, and the free tier actually lets you build a prototype before paying.

  • ~95% lower entry price
  • Same JSON envelope
  • Real free tier
  • Dota-specific fields (facets, talents)
vs Abios
Without the enterprise sales call

Abios requires a sales conversation and enterprise commitment before you see a token. DotaScore is self-serve: sign up, get a key, ship today.

  • Self-serve signup
  • Transparent pricing
  • No minimum contract
  • PHP-friendly billing
vs OpenDota
OpenDota's data, productized

OpenDota is brilliant for parsed stats but doesn't give you fixtures, odds, or a live tournament feed. DotaScore wraps OpenDota and adds the rest — fixtures from Liquipedia, odds from Pinnacle, finalization from Steam.

  • Fixtures + odds OpenDota lacks
  • Rate-limit-aware caching
  • PandaScore-shaped envelope
  • SLAs and webhooks
vs STRATZ
STRATZ-grade stats, broader scope

STRATZ is one of our upstreams. We use it for fallback parsed data, but layer Steam, Liquipedia, and odds on top so you don't have to glue four APIs together yourself.

  • No GraphQL knowledge needed
  • REST + JSON envelope
  • Odds + fixtures included
  • Webhooks for events
vs Steam Web API
The raw spine, refined

Steam is the source of truth for match IDs but the responses are raw, undocumented, and fragile. DotaScore normalizes them, adds names, hero metadata, league context, and post-match boxscores.

  • No 64-bit ID juggling
  • League and team names included
  • Cached & rate-limited
  • Stable schema
vs rolling your own
Skip 2 months of plumbing

Building a multi-source Dota aggregator means writing throttlers, reconcilers, hero/league lookups, webhook delivery, and a cache. We already did it — and we maintain it.

  • Ship this week, not next quarter
  • Maintained as Valve changes things
  • No infra to run
  • Webhooks built-in
Drop-in migration

Migrate from PandaScore in 30 seconds

Same routes, same envelope. Most clients only need to change two lines.

- const BASE = "https://api.pandascore.co";
- const TOKEN = process.env.PANDASCORE_TOKEN;
+ const BASE = "https://api.dotascore.live";
+ const TOKEN = process.env.DOTASCORE_TOKEN;

  const r = await fetch(`${BASE}/dota2/matches/upcoming`, {
    headers: { Authorization: `Bearer ${TOKEN}` },
  });

Stop overpaying for Dota 2 data.

Try every endpoint once — completely free. No credit card.

Create your accountSee pricing

DotaScore is independent and not affiliated with PandaScore, Abios, OpenDota, STRATZ, or Valve. Trademarks belong to their respective owners. Comparison reflects publicly documented features at time of writing.