You own the pipeline forever
A scraper is not a script you write once and forget. Rendered markup is not a contract, and nobody agreed to keep it stable: the page changes shape, the transport under it changes, the defences in front of it change.
FanDuel odds scraping is possible in principle. What matters is what you own afterwards — a pipeline you maintain forever, against a surface that changes without telling you. FanLine Wire is not a scraper: it subscribes to FanDuel's own market feed over a WebSocket.
FanDuel publishes no public odds API: no developer portal, no self-serve key, no documented odds endpoint with a signup form behind it. The prices live in the app and on the site, so a scraper looks like the only door — and it is the one most people try first. The FanDuel API page and the odds API overview cover the routes that exist; this page covers building one versus subscribing to one.
A scraper is not a script you write once and forget. Rendered markup is not a contract, and nobody agreed to keep it stable: the page changes shape, the transport under it changes, the defences in front of it change.
A scraper that errors is merely annoying. One that returns the previous price in the previous shape is worse: nothing tells you the line you hold has gone stale.
What you may do with FanDuel's data is set by FanDuel's terms, and enforcing them is FanDuel's decision, not ours. We do not advise on it: read the platform's terms first, then decide between an owned scraper and a feed.
| Scraper you own | Feed you subscribe to | |
|---|---|---|
| Who maintains the parser | You, for as long as it runs | Nobody — there is no page to parse |
| What breaks it | A layout, a defence or a channel change | The book's feed, which is what we watch |
| How a price reaches you | On your next successful fetch | As an event, when the book moves |
| Live & pre-match | Two surfaces, two schedules | One connection, both |
| Status changes | Inferred from diffs | OPEN ↔ SUSPENDED pushed as events |
| Cost shape | Your servers, your proxies, your time | Free, $29/mo or $149/mo |
The feed subscribes to FanDuel's own market feed over an AWS AppSync GraphQL WebSocket. Prices arrive as events — no rendered page is parsed, no polling loop runs, and no HTML that changes shape sits between the book and your code. Market discovery is REST; the stream is a subscription. The push payload carries the runner-level detail (marketStatus, selectionId, handicap, runnerStatus, decimalDisplayOdds), and that detail is push-only. Median gap between updates inside a burst on the reference run: 0.35 s. Mechanics: the WebSocket page.
Coverage measured 2026-09-15: 6 live and 1,258 pre-match markets. American odds arrive as signed integers, null when a selection is unpriced, and only OPEN is tradeable.
None of this needs to be taken on trust, and the snapshot needs neither a key nor a signup:
curl https://fanlinewire.com/odds.json
It returns generated_at, a monotonic sequence, a 20-row tape of fixtures[] with sport, fixture, market, status, inplay and prices[], the live.total and prematch.total counts, per-sport breakdowns, and drops[] — recent moves against the bettor, capped at 12, with pct in implied-probability terms. Poll no faster than every 10 seconds: a politeness floor on a shared endpoint, not a plan quota.
Start with the platform's terms — the only honest answer about what you may collect, and FanDuel's question rather than ours. After that, who maintains the thing is the whole decision. A scraper is a pipeline you own; a subscribed feed is a client you point at a socket, with live and pre-match prices arriving as events over one connection. Plan limits and what each tier buys are on the pricing section.
Sibling pages answer the other halves: live odds without a key, and what each plan buys. This is not legal advice, and not a statement about what the platform permits — that is a terms question FanDuel owns and enforces. The maintenance and latency difference is what a build decision turns on.
That is FanDuel's call, not ours. What you may do with the book's data is set by the platform's terms, and enforcing them is the platform's decision. Read those terms first, then choose between an owned scraper and a feed.
No. FanDuel offers no public sportsbook odds API, no developer portal and no self-serve key. The programmatic routes to the book's own prices are its private market feed, an enterprise data agreement, or a third-party feed.
No. The feed subscribes to FanDuel's own market feed over an AWS AppSync GraphQL WebSocket, so prices arrive as events: no rendered page is parsed and no markup change can break delivery.
Faster than a fetch-and-parse pipeline can serve them: on the reference push run the median gap between price updates inside a burst was 0.35 s, and a cycle that reaches a page cannot be trusted to show the price that is live now.
Free covers 100 requests a day, Basic is $29/mo for 1,000 a day, and Full is $149/mo at 30 requests per second with the push WebSocket included. REST market discovery is on every plan.