
Best Dota 2 API for Developers: Cito API vs OpenDota and Other Options
≈ 9 min read
Why polling LoL live matches burns rate limits — and how Cito LoL webhooks deliver gold swings, objectives, and live state to your app.

A live match center that hits /lol/live every 3–5 seconds looks fine in demos. In production it:
Webhooks flip the model: Cito pushes events when something changes.
One Game Starter (and above) includes LoL-scoped live webhooks for events like:
lol.live.gold_swing)lol.live.objective)Always pre-check coverage before relying on live-state delivery:
Or inspect the matrix:
Example subscription shape:
Filters let you scope by league, match, game, or side so you don't process every event globally.
Use id / X-Cito-Event-Id as your dedupe key.
Confirm the exact signature header name in the webhook docs.
X-Cito-Delivery-Attempt on retries| Use case | Prefer |
|---|---|
| Scoreboard that must update on gold/objectives | Webhooks |
| One-off "is anything live?" check | GET /lol/live |
| Historical match stats | REST |
| Building a first prototype | Short poll OK, then migrate |

≈ 9 min read

≈ 14 min read

≈ 10 min read

≈ 8 min read
Free tier available. Same API shape across Call of Duty, Fortnite, LoL, Dota 2, and more.