Live odds

FanDuel live odds, read as data.

Live odds are the prices that move while the game is running. This page is for the developer who needs them programmatically: what live means on a real-time feed, how the two states of the book are labelled, and how fast it moves.

A live odds screenA live odds feed
Updated whenSomeone refreshes itA collector tick
Pre-match marketsA separate pageSame document, same labels
Tradeable stateYou trust what's drawnstatus must be OPEN
FreshnessUnknown by designgenerated_at, sequence, X-Server-Ms

What "live" means on the feed

Live is a property of the market, not the page. Every row carries an inplay flag: true means priced during play, false means pre-match. On 2026-09-15 the board held 6 live markets against 1,258 pre-match ones — which is why a live feed mostly stays quiet until it doesn't.

Status is a separate axis: a market is tradeable only while its status is OPEN. Books suspend in a hurry — a goal, a review, a late line change — and that flip is the event worth alerting on: the price you cached a second earlier is no longer one anybody could have taken.

Core live markets are moneyline, spread and totals; futures and outrights appear too — Run Line, Spread, Total Runs, 1st Round Leader, World Series 2026 Winner — just on a slower clock.

Prices are American odds as signed integers, and null when a selection is unpriced — an answer, not a gap.

See live FanDuel odds in ten seconds, with no key

No signup stands in the way. The board is served keyless:

curl https://fanlinewire.com/odds.json

One JSON document, refreshed continuously, carrying generated_at, a sequence counter and the fixtures[] tape — newest ticks, capped at 20 rows, each with sport, fixture, market, status, inplay, updated_at and prices[] (selection_id, american).

Read live.total and prematch.total for the count on either side of the book, live.by_sport and prematch.by_sport for FanDuel's own sport names, and drops[] for moves that went against the bettor, newest first, capped at 12. drops[].pct is in implied-probability terms — not a subtraction of American numbers.

Keep to one fetch per 10 seconds — a politeness floor on a shared endpoint, not a plan quota. Per-key REST limits are separate and listed under pricing.

How fresh the live prices are

Freshness here is measurable, not claimed. sequence climbs once per collector tick, generated_at is stamped when the document is built, and the X-Server-Ms header carries build time — so your latency stays separable from the feed's work.

Fetch the snapshot twice a minute apart and diff it: the tape reorders, sequence advances, and live.total moves as games start and finish.

When live odds outpace a polling loop

Live prices are where polling degrades fastest: the book can move twice inside one request cycle, and most polls return the number you already had.

The push stream is an AWS AppSync GraphQL WebSocket subscription. Subscribe in chunks of roughly 30 markets and updates arrive as they happen — on the reference run, ticks came in bursts with a median 0.35 s gap inside a burst. The richer runner payload is push-only: marketStatus, selectionId, handicap, runnerStatus and decimalDisplayOdds come off the socket.

Silence on a push socket is not an outage — nothing moved. Judge health by subscription acks and status flips, never by message count. The snapshot is leaner: selection_id and american per price, no decimal, no handicap. The WebSocket guide covers the subscription shape.

What each plan can read

PlanLive & pre-match pricesPush stream
Free — 100 req/day, no cardRESTNot included
Basic — $29/mo, 1,000 req/dayRESTNot included
Full — $149/mo, 30 req/secRESTIncluded

Free and Basic are REST-only; push access comes with Full and is not metered per message, so a busy live slate cannot change your bill.

FanDuel itself publishes no public odds API, and a consumer search for live odds does not change that. What the wire offers is the book's prices as structured data, both states labelled and the tradeable state explicit. Sibling feeds cover Pinnacle, esports on ODDIN.GG and Betradar.

Questions people ask

Is there a FanDuel live odds API?

FanDuel publishes no public odds API of its own. FanLine Wire is an independent real-time odds data service carrying FanDuel Sportsbook prices, live & in-play and pre-match, over REST plus an AWS AppSync GraphQL WebSocket push stream. Not a bookmaker; not affiliated with or endorsed by FanDuel.

Can I see live FanDuel odds without an API key?

Yes. GET https://fanlinewire.com/odds.json is a public keyless snapshot, no signup — one JSON document, refreshed continuously. One fetch per 10 seconds is the politeness floor on a shared endpoint.

What does inplay true mean on the feed?

inplay marks a market priced during play; false means pre-match. It is separate from status — only OPEN is tradeable. live.total and prematch.total give the count on each side, and live.by_sport and prematch.by_sport break the board down by FanDuel's own sport names.

How often do live FanDuel odds change?

Faster than a comfortable polling cycle. On the push WebSocket, ticks arrive in bursts — median 0.35 s gap inside a burst on the reference run. On REST, sequence advances with every collector tick so you can measure freshness yourself. Push is Full plan only.

Do I get decimal odds and handicaps on live prices?

Not from REST. The snapshot carries selection_id and american per price. The richer runner payload — marketStatus, selectionId, handicap, runnerStatus, decimalDisplayOdds — is push-only.