Esports odds for developers

Esports API

Live and prematch odds for League of Legends, CS2, Dota 2 and Valorant, plus King of Glory, eFootball, eBasketball, eCricket, Rainbow Six and the CS2/Dota 2 duel boards — over REST and a realtime stream, with the provider's raw no-vig probability on every selection. Free key, no card.

Try it before signing up

A public demo key serves live data with no account. Paste this into a terminal:

curl "https://oddiwire.com/v1/fixtures?key=demo&limit=5"

The demo key is a shared illustration with a small rate limit — enough to see the shape of the data, not to build against. A free key of your own is instant and has its own daily allowance.

What you get back

Live and prematch

Both in the same shape, so a match moving from prematch to in-play does not change your parsing.

Raw probabilities

The provider's own no-vig probability beside every price. You do not derive it, and neither do we.

Stable market keys

Canonical keys and decimal prices, so a model trained on last week's payload still reads this week's.

Realtime stream

Server-Sent Events at /v1/stream on the Full plan — changes arrive as they happen.

Titles covered

League of Legends, CS2, Dota 2 and Valorant, plus King of Glory, eFootball, eBasketball, eCricket, Rainbow Six and the CS2/Dota 2 duel boards, sourced from the ODDIN.GG feed. Coverage follows the provider: when a match is priced upstream it appears here, and when the upstream suspends a market this API reports it suspended rather than serving a stale price.

Live counts per title are on /v1/counts, and Provider coverage in the docs is specific about what is and is not carried.

Query by game

Each title has its own sport code, so one request gets you a single game — or the whole esports board when you leave the filter off. The demo key works on all of them:

curl "https://oddiwire.com/v1/fixtures?key=demo&sport=LOL"
curl "https://oddiwire.com/v1/fixtures?key=demo&sport=CS2&event_type=live"
curl "https://oddiwire.com/v1/fixtures?key=demo&sport=DOTA2&canonical=match_winner,main_total"

Codes today: LOL, CS2, DOTA2, VALORANT, R6 — plus the 1v1 duel boards under CS2_DUELS and DOTA2_DUELS, and the simulations under their own codes. Markets arrive under the same canonical keys as every other sport (match_winner, main_total, map and period markets), decimal prices, with the provider's own no-vig probability attached.

Stream prices instead of polling

Polling a moving price on a timer is the wrong shape for in-play esports. The Full plan carries a Server-Sent Events stream, so changes arrive as they happen:

const es = new EventSource("https://oddiwire.com/v1/stream?key=YOUR_KEY");
es.onmessage = (e) => apply(JSON.parse(e.data));   // one event per price change

REST stays for the snapshot and backfill; the stream carries the moves. Both read the same board, and a market moving from prematch to live does not change your parsing.

Built for bots and models

The usual reason to want an esports API is a program, not a page: a pricing model, an arbitrage or value scanner, a Discord bot, a backtest. That shapes what this serves — JSON with cache-control: no-store, one canonical market vocabulary, and a stream so you are not polling a moving price on a timer.

If your agent is writing the integration, llms.txt is a plain-text reference built for exactly that, and the home page has a copy-paste prompt.

Plans

FreeBasicFull
REST100/day5,000/day30/sec
Realtime stream (SSE)NoneNoneUnlimited
DropsNoneNoneUnlimited

Card or crypto, cancel any time. Exact prices and checkout are on the pricing section.

Deciding between this and a direct ODDIN.GG contract? See the side-by-side comparison and the measured latency numbers.

Questions

Is there a free esports API?

Yes — the free plan is 100 REST calls per day against live data, no card.

Can I stream instead of polling?

Yes, on the Full plan: an SSE stream at /v1/stream pushes changes as they happen.

Where do the odds come from?

The ODDIN.GG feed. Oddiwire is an independent service, not affiliated with the provider.

Do you cover traditional sports too?

Not here — this feed is esports. Our sibling feed OddsRadarWire carries tennis, soccer, cricket, basketball and other traditional sports on the same API shape.