ProductExplore oddsPricingAPILearn
Log inGet the app
ProductExplore oddsPricingAPILearnLog in

Stay in the loop

Join our newsletter for the latest tools, new guides, and product updates.

By providing your email, you are consenting to receive communications from SmartStake. Visit our Privacy Policy for more info

Product

  • Tools
  • Pricing
  • Mobile app
  • Docs
  • Support

Guides

  • Positive EV
  • Arbitrage
  • Fantasy
  • Lineup Dropper

Socials

  • Discord
  • YouTube
  • Instagram
  • Twitter

SmartStake is an independent informational and analytical platform, not affiliated with any sportsbook. We do not accept, facilitate, or process any wagers. We are not a sportsbook, casino, or gambling operator. Our tools and articles provide data analysis, odds comparison, and mathematical calculations for informational and educational purposes only, and are not financial, investment, or betting advice. All sports betting involves risk of loss. Past performance does not guarantee future results. Individual results will vary. Only stake what you can afford to lose. Users are solely responsible for their own betting decisions.

If you or someone you know has a gambling problem, call 1-800-MY-RESET (US), 1-877-8-HOPENY or text HOPENY (NY), 1-800-522-4700 (NCPG), 1-866-531-2600 (ON), or 1-888-795-6111 (BC). Visit www.ncpgambling.org for more resources. Adults only (19+ in Canada, 21+ in the US).

© 2026 SmartStake. All Rights Reserved.

Privacy PolicyTerms of UseResponsible Gambling
  1. Learn
  2. Analysis

Does FanDuel Have an API? How to Get FanDuel Odds

FanDuel has no public odds API. The SmartStake Odds API serves FanDuel odds, props, closing lines and state bet links in one schema, in real time.

SmartStake Team·November 8, 2026·8 min read
A central locked panel shaped like a sealed gate floats as the largest mass, barred by crossing wires, while one figure reclines along a curving line-graph ribbon arcing away from it, another sits inside an open browser window reaching toward a donut chart, a third drifts weightless carrying a bar-chart slice; coins and basketballs scatter through gaps, node diagrams and circuit-board platforms orbiting, all threaded together over soft rounded negative-space shapes.

FanDuel does not have a public odds API. There is no developer portal, no API key and no documentation for its sportsbook prices, and its Terms of Use bar the scrapers people build instead.

The SmartStake Odds API is the cleanest way to get FanDuel odds as of November 2026: main lines, alternate lines and player props, under the book key fanduel, in one schema with 85+ sportsbooks, exchanges and prediction markets, with bet links that open FanDuel's site in your user's state or its app.

Here is what one request returns. Pick a market, a state and a platform, and change either price.

FanDuel odds and bet links from one request

Request
curl --compressed \
  -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/odds?event_id=evt_01KZCTK5WDFG6R6TWYDZV61GV2&book=fanduel&book=draftkings&market=football_points_handicap&state=NJ&platform=mobile"
Response
{
  "data": [
    {
      "quote_id": "m~evt_01KZCTK5WDFG6R6TWYDZV61GV2~football_points_handicap~none~none~-2.5~hometeam~fanduel",
      "book": "fanduel",
      "market_key": "football_points_handicap",
      "label": "Tampa Bay Buccaneers -2.5",
      "side": "hometeam",
      "line": -2.5,
      "odds": -108
    },
    {
      "quote_id": "m~evt_01KZCTK5WDFG6R6TWYDZV61GV2~football_points_handicap~none~none~-2.5~hometeam~draftkings",
      "book": "draftkings",
      "market_key": "football_points_handicap",
      "label": "Tampa Bay Buccaneers -2.5",
      "side": "hometeam",
      "line": -2.5,
      "odds": -112
    }
  ]
}
Line id both books share
m~evt_01KZCTK5WDFG6R6TWYDZV61GV2~football_points_handicap~none~none~-2.5
FanDuel-108
DraftKings-112
Better price on Tampa Bay Buccaneers -2.5FanDuel
FanDuel bet_urlFanDuel app link
DraftKings bet_urlDraftKings app link

Illustrative, not a live quote. The request is the documented /v1/odds call, and the response is abridged to a few fields of the documented quote object, with each bet_url left out. Removing the last two segments of a quote_id (side and book) gives the id every book shares for the same line.

One call returns FanDuel next to DraftKings on the same line, and the shared line id tells you which quotes to compare. At −108 against −112, FanDuel pays more on the Buccaneers. The same call hands back a link that opens the bet in the FanDuel app, which is the other half of most FanDuel API searches.

Does FanDuel Have an API?

No, not for odds. As of November 2026, FanDuel publishes no public API for its sportsbook, its daily fantasy contests or FanDuel Predicts, its event contract app on CME Group's exchange. No FanDuel page issues a developer key or documents a price feed.

What does exist is the plumbing behind FanDuel's own apps.

The sportsbook loads its prices from internal JSON endpoints, and that is what every "FanDuel API" tutorial on GitHub and Reddit points you at. Those endpoints are not an API in any useful sense:

  • Undocumented. No contract fixes the paths, parameters or response shape. When FanDuel changes its site, your parser breaks without warning.
  • Against the terms. FanDuel's Terms of Use prohibit using "any robot, spider, scraper, sniping software or other automated means to access the Service for any purpose" without its express written permission.1
  • Split by state. FanDuel runs its sportsbook state by state, and geolocation decides what a request sees. A scraper on a server outside a legal state often sees nothing at all.
  • One book. A FanDuel scraper gives you FanDuel. A price only means something next to other books, so you end up maintaining a scraper per book.

Three Ways to Get FanDuel Odds

RouteWhat you getThe catch
Scrape the siteFanDuel only, in FanDuel's own shapeBreaks the terms, breaks on site changes, blocked by geolocation
Scraper marketplacesA hosted scraper's output, often on a scheduleSame source and same terms problem, plus polling delay
An odds APIFanDuel with every other book, one schemaA monthly plan

For anything you plan to keep running, an odds API is the only route with a contract behind it. The rest of this guide uses the SmartStake Odds API.

Pulling FanDuel Odds with SmartStake

Every request needs your key as a bearer token and Accept-Encoding: gzip, which curl sends with --compressed. The API docs cover every endpoint and parameter.

1. Confirm FanDuel is on your key

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/books"

FanDuel is fanduel. The list is exactly what your key can see, so check it before you hard-code any other FanDuel product.

2. Find the event

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/events?league=nfl"

Each event has an id, starts_at, home, away and live. The same event_id holds every book's prices for that game.

3. Pull FanDuel next to DraftKings

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/odds?event_id=evt_01KZCTK5WDFG6R6TWYDZV61GV2&book=fanduel&book=draftkings&market=football_points_handicap"

Drop market to get every line FanDuel has posted for the game, props included. Add alternate=false for main lines only, live=true for in-play prices only, and format=decimal for decimal odds. A request takes up to 5 events and 5 books, so add book=pinnacle when you want a sharp reference line next to the two.

Comparing FanDuel to the market in Python

This script pulls every main line FanDuel and three other books post on the next NFL game, groups them by line, and prints where FanDuel has the best price and where it trails. It uses only the Python standard library.

import gzip, json, os, urllib.parse, urllib.request

API = "https://api.server.smartstake.ca"
HEADERS = {
    "Authorization": f"Bearer {os.environ['SMARTSTAKE_API_KEY']}",
    "Accept-Encoding": "gzip",
}
BOOKS = ["fanduel", "draftkings", "pinnacle", "betmgm"]

def get(path, params):
    url = f"{API}{path}?{urllib.parse.urlencode(params)}"
    with urllib.request.urlopen(urllib.request.Request(url, headers=HEADERS), timeout=30) as response:
        body = response.read()
        if response.headers.get("Content-Encoding") == "gzip":
            body = gzip.decompress(body)
    return json.loads(body)["data"]

event = get("/v1/events", {"league": "nfl"})[0]
quotes = get("/v1/odds", [("event_id", event["id"]), ("alternate", "false"), ("format", "decimal")] + [("book", book) for book in BOOKS])

lines = {}
for quote in quotes:
    line_id = quote["quote_id"].rsplit("~", 2)[0]
    lines.setdefault((line_id, quote["side"]), []).append(quote)

for prices in lines.values():
    fanduel = next((quote for quote in prices if quote["book"] == "fanduel"), None)
    if fanduel is None or len(prices) < 2:
        continue
    best = max(prices, key=lambda quote: float(quote["odds"]))
    gap = float(fanduel["odds"]) - float(best["odds"])
    verdict = "best" if gap == 0 else f'{gap:+.3f} vs {best["book"]}'
    print(f'{fanduel["label"]:<36} {float(fanduel["odds"]):.3f}  {verdict}')

The line id is the quote_id without its last two segments, side and book, so every book's quote on the same line shares it. That one string replaces the team, player and market name matching a scraper leaves you to write.

Keeping FanDuel prices live

A REST call is a snapshot. To hold a current FanDuel board, open the stream first, then pull, then apply each change by quote_id:

curl -N --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/stream/football?league=nfl&book=fanduel&book=draftkings"

Changes arrive over Server-Sent Events in 250 ms batches.

FanDuel is real-time pregame and live: a price change reaches the stream in under a second, as listed on the update frequency page. A scraper polling every 60 seconds waits 30 seconds on average to see the same change.

FanDuel closing lines

Closing odds are each book's last pregame price before the start. They are what you grade a model or a bet against, as the closing line value guide explains.

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/closing-odds?event_id=evt_01M0EAWVYT4JS0R7FVXMK3CT9D&book=fanduel&market=football_points_handicap&alternate=false"

They cover every event that started on or after August 7, 2026, for every market and line, player props included, and usually arrive within an hour of the start.

Keep the quotes with on_board_at_start: true when you measure against the close, since a book sometimes pulls a prop before kickoff.

Links to FanDuel in your user's state

FanDuel runs a separate site in each state it operates in, which is where FanDuel differs from DraftKings for a developer. Each quote can carry a bet_url that opens the selection, and two parameters point it at the right place:

curl --compressed -H "Authorization: Bearer $SMARTSTAKE_API_KEY" \
  "https://api.server.smartstake.ca/v1/odds?event_id=evt_01KZCTK5WDFG6R6TWYDZV61GV2&book=fanduel&state=NJ&platform=mobile"
  • state takes a two-letter code such as NJ, and FanDuel's bet_url points at its site for that state.
  • platform=mobile returns the FanDuel app link instead.

Both work on /v1/odds and on streams. Where FanDuel has no site in the state you pass, bet_url comes back unchanged, and an unrecognised value returns 400. A link opens the selection; whether the user can bet there is still up to FanDuel.

When Scraping FanDuel Still Comes Up

An odds API does not replace every scraper. Three jobs sit outside it:

  • Your own account. Bet history, balances and open bets belong to the account holder's session, not to any odds feed. SmartStake reads prices; it does not place bets.
  • FanDuel daily fantasy. Contest lobbies, salaries and lineups are a different product from the sportsbook, and the feed covers sportsbook prices, not salary contests.
  • Prices before August 7, 2026. Closing odds start there. For older history, you need another source.

If the job is FanDuel prices, next to the market, kept current, one key beats a scraper you rebuild every season.

The same answer holds for FanDuel's biggest rival, as the DraftKings API guide shows. For prediction markets, the prediction market odds API guide covers Kalshi and Polymarket, and the PrizePicks API guide covers pick'em lines. For what to do with the prices once you have them, see how to build a sports betting model and why line shopping across books matters.

FAQ

Does FanDuel have an API?

No. FanDuel does not have a public odds API: there is no developer portal, no API key and no documentation for its sportsbook prices. The SmartStake Odds API serves FanDuel odds under the book key fanduel, in the same schema as 85+ other books.

Is there a free FanDuel odds API?

No official one exists, free or paid. Scraping the sportsbook site costs nothing up front but breaks FanDuel's terms and breaks your code whenever the site changes. The SmartStake Odds API is a paid monthly plan, from $399 a month.

Can I scrape FanDuel odds?

FanDuel's Terms of Use prohibit using any robot, spider, scraper or other automated means to access its service without written permission. The endpoints the sportsbook loads its odds from are undocumented and differ by state, so a scraper also needs constant repair.

Does the SmartStake API include FanDuel player props?

Yes. FanDuel player props, alternate lines and main lines all come through /v1/odds and the stream under their market keys, such as football_player_receptions, the same keys every other book uses.

Can I get FanDuel closing lines?

Yes. /v1/closing-odds returns FanDuel's last pregame price on every market and line for events that started on or after August 7, 2026, usually within an hour of the start. Closing odds come with the Pregame + Live and Full Stream plans.

Can I link users to FanDuel in their state?

Yes. Pass state with a two-letter code, such as NJ, and each FanDuel bet_url points at FanDuel's site for that state. Pass platform=mobile and it comes back as a FanDuel app link instead.

Can I show FanDuel odds to users of my product?

The monthly plans are for personal and internal use. Showing prices to the members of your product needs an Enterprise licence, so write to SmartStake with what you are building.

Get an API Key

The SmartStake Odds API has monthly plans from $399: Pregame and Pregame + Live cover five leagues you pick, and Full Stream covers every league. Closing odds come with Pregame + Live and Full Stream.

Choose a plan, and your key appears under API keys in SmartStake as soon as payment goes through.

Footnotes

  1. FanDuel Terms of Use, section 6, Conduct, last updated July 16, 2026, read November 8, 2026. ↩

Get the next guide in your inbox

Practical betting guides, new tools, and product updates from the SmartStake team. Unsubscribe in one click, any time.

By providing your email, you are consenting to receive communications from SmartStake. Visit our Privacy Policy for more info

On this page

Does FanDuel Have an API?Three Ways to Get FanDuel OddsPulling FanDuel Odds with SmartStakeWhen Scraping FanDuel Still Comes UpFAQGet an API Key

Similar articles

A central curved grid-wall of player-card tiles wraps in perspective, a woman reclining across its top row and reaching into a glowing tile to lift it free; a man sits inside an open browser window threading a looping wire outward, while a third figure drifts weightless passing a donut-slice to a floating node-diagram, basketballs and coins scattering through gaps over soft negative-space blobs.
AnalysisOdds API

Does PrizePicks Have an API? How to Get PrizePicks Lines

PrizePicks publishes no developer API and its terms bar scrapers. This guide covers what developers use instead, how to pull PrizePicks lines next to sportsbook props with curl and Python, and how to price a pick against a slip's break even.

Nov 10, 2026 · 8 min read

A central node-diagram hub floats as a glowing sphere threaded by looping wires, one figure reclining along a curving connection ribbon tapping into it, another sitting inside an open browser window reaching toward a locked panel that stays sealed; a donut chart bursts into tilted slices, bar fragments and a drifting basketball orbit the cluster over soft negative-space blobs.
AnalysisOdds API

Does DraftKings Have an API? How to Get DraftKings Odds

DraftKings publishes no odds API, no developer portal and no keys, and its terms bar scraping. This guide covers what developers use instead and how to pull DraftKings odds, player props, closing lines and app links with curl and Python.

Nov 7, 2026 · 8 min read

A reclining figure stretches along a soaring probability-ribbon that arcs upward as the central mass, one hand merging contract-price slices into it; a second person sits inside an open browser window threading a looping wire toward a floating node-diagram, while a third drifts weightless balancing a bar-chart fragment, basketballs and coins scattering through the gaps over soft negative-space blobs.
AnalysisOdds API

Prediction Market Odds API: Kalshi and Polymarket Odds

Kalshi and Polymarket publish free APIs, but they return contract prices before fees, keyed to their own market ids. This guide shows the three jobs between those prices and a fair comparison with sportsbook odds, and how to pull all of it from one feed with curl and Python.

Oct 20, 2026 · 9 min read

A central curved grid-wall of player-card tiles wraps in perspective, a woman reclining across its top row and reaching into a glowing tile to lift it free; a man sits inside an open browser window threading a looping wire outward, while a third figure drifts weightless passing a donut-slice to a floating node-diagram, basketballs and coins scattering through gaps over soft negative-space blobs.
AnalysisOdds API

Does PrizePicks Have an API? How to Get PrizePicks Lines

PrizePicks publishes no developer API and its terms bar scrapers. This guide covers what developers use instead, how to pull PrizePicks lines next to sportsbook props with curl and Python, and how to price a pick against a slip's break even.

Nov 10, 2026 · 8 min read

A central node-diagram hub floats as a glowing sphere threaded by looping wires, one figure reclining along a curving connection ribbon tapping into it, another sitting inside an open browser window reaching toward a locked panel that stays sealed; a donut chart bursts into tilted slices, bar fragments and a drifting basketball orbit the cluster over soft negative-space blobs.
AnalysisOdds API

Does DraftKings Have an API? How to Get DraftKings Odds

DraftKings publishes no odds API, no developer portal and no keys, and its terms bar scraping. This guide covers what developers use instead and how to pull DraftKings odds, player props, closing lines and app links with curl and Python.

Nov 7, 2026 · 8 min read

A reclining figure stretches along a soaring probability-ribbon that arcs upward as the central mass, one hand merging contract-price slices into it; a second person sits inside an open browser window threading a looping wire toward a floating node-diagram, while a third drifts weightless balancing a bar-chart fragment, basketballs and coins scattering through the gaps over soft negative-space blobs.
AnalysisOdds API

Prediction Market Odds API: Kalshi and Polymarket Odds

Kalshi and Polymarket publish free APIs, but they return contract prices before fees, keyed to their own market ids. This guide shows the three jobs between those prices and a fair comparison with sportsbook odds, and how to pull all of it from one feed with curl and Python.

Oct 20, 2026 · 9 min read