No-vig esports odds,
over one HTTP call.

Live and prematch odds for League of Legends, CS2, Dota 2, Valorant, King of Glory, plus efootball and ebasketball simulations — every selection carrying a no-vig probability next to the price.

$ curl -H "x-api-key: $KEY" "https://oddiwire.com/v1/fixtures?tier=1&limit=1"

{ "market": "Total games", "canonical": "main_total", "tier": 1,
  "structure": "exclusive", "status": "OPEN",
  "selections": [
    { "side": "under", "line": 45.5, "price": 3.7,  "probability": 0.2350778601 },
    { "side": "over",  "line": 45.5, "price": 1.25, "probability": 0.7649221399 }
  ] }

What you get

What the feed does that a raw odds dump does not.

No-vig probabilities, not derived

Every selection carries the provider's own no-vig number beside the priced odds. We pass it through unmodified — no recomputation, no smoothing, no house method to reverse-engineer. The priced odds carry a median 8.4% overround; the probabilities do not.

One key per bet, across every sport

The feed carries 3,708 distinct market names for the same handful of bets. Every market gets a stable canonical key and a tier, so "the moneyline on every live event" is one query instead of a name-matching problem.

Over and under are labelled

Upstream ships both sides of a total under the same name. We recover line, line_type and side — measured against 840 monotonic ladders, not read off a spec sheet. Handicap sides we cannot map are null, never guessed.

Only what you can actually bet

Closed, suspended and settled markets are hidden by default. On a live board that is most of them, and a settled market priced like a live one is indistinguishable from the real thing. Ask for them explicitly and they arrive with status intact.

We count what we withhold

A market we cannot fully identify is not served — it might be a slice of a bigger market or twenty lines under one id. The number withheld is reported per fixture and on /v1/health, so the gap is never silent.

REST and SSE

Poll /v1/fixtures, or hold /v1/stream open and take one event per price push. The stream withholds exactly what REST withholds.

Get a free key

Free plan, no card. 100 calls a day, the full board.

We send the key to your inbox and never show it here — that is what ties it to you rather than to whoever typed your address.

Pricing VISA AMEX Pay with: Card $

If you need the odds the second they move, you need Full.

Free
REST
$0
free forever, no card
You ask for the odds

Your app asks, we answer. Like refreshing a page. Fine if you check every few minutes.

Included100 calls a day
Get a free key
Basic
REST
$19
per month
You ask for the odds

Your app asks, we answer. Like refreshing a page. Fine if you check every few minutes.

Included5,000 calls a day
Get notified when we open

Card at launch — Visa, Mastercard and Amex.

A “call” is one request to /v1/fixtures. /v1/health and /v1/me are free and never counted. See the docs for what happens when you go over.

What we do not claim

Numbers on this page come from measured snapshots of the live board. They are not guarantees, and the ones that move are published on /v1/health so you can read the current value rather than trust this page.