BlogSportsbook data

DraftKings API Routes for Prices, Props and State Markets

When developers search for a DraftKings API, they usually want one thing: DraftKings' sportsbook prices, including player props, inside their own program. There are two general routes to that. One is an official or partner programme run by the operator, if it offers one, and only DraftKings can tell you whether it does, who qualifies and on what terms. The other is an aggregator that reads the book's public prices and returns them in its own format alongside other books.

ZippyOddsAPI is the second kind. It's independent and isn't affiliated with, endorsed by or a partner of DraftKings or any other sportsbook. When DraftKings is feeding, its prices appear in ZippyOddsAPI as one bookmaker among many, with the time each price was read. The rest of this guide covers what to check with the operator, why state-by-state markets complicate the picture, and how those prices look in code.

What the search usually means

"DraftKings" covers several products, and the right route depends on which one you mean.

  • Sportsbook prices: moneylines, spreads, totals and props on upcoming and live games. This is the most common goal, for price comparison or a betting model.
  • Your own account: bet history, balances, open tickets. That's personal account data, and only the operator's own tools and terms govern access to it. A read-only odds service has none of it.
  • Placing bets from code: an odds service can't do this either. It reads prices and takes no bets.
  • Fantasy and pick'em: DraftKings also runs fantasy products. ZippyOddsAPI's docs treat DraftKings Pick6 as a pick'em app, priced by its payout table, separate from the sportsbook.

DraftKings API access and what only the operator can confirm

Whether DraftKings offers outside developers an API, for which products, at what cost and under what conditions is for DraftKings to say, and any of it can change. Look for a developer or partner page on the operator's own site, and treat anything else you read about DraftKings API access, including forum posts and old code samples, as unconfirmed until the operator says so.

If you find DraftKings API documentation, check that it comes from the operator, then read its terms alongside it. These are the questions to answer before you write any code:

  1. Does it allow automated access, and from where?
  2. May you store the prices, and for how long?
  3. May you show them in a product, and is commercial use allowed?
  4. Are there rate limits or a required attribution?
  5. Does the programme apply in every state you care about?

An aggregator doesn't remove those questions. It moves some of them to the aggregator's own terms, which you should read too.

State-by-state markets

DraftKings is licensed state by state in the US, and so is every regulated US sportsbook. What a book may offer depends on each state's rules, so a market available in one state can be missing in the next, and prices can differ. Some states limit betting on in-state college teams or on college player props, for example. Check the rules for the state you're building for.

For a developer, that means a DraftKings price is a price from a particular source, not a single national number. ZippyOddsAPI doesn't offer per-state pricing, bet links or deep links. Treat a DraftKings price from the API as a reading of the book's public board, and confirm with the operator what's on offer where your users are.

How DraftKings prices appear in ZippyOddsAPI

A book is asked for by id, name or alias with the books parameter. Here are DraftKings' receiving yards props for NFL games, if it's feeding:

curl -s "https://zippyoddsapi.com/v1/props?league=nfl&books=draftkings&markets=player_rec_yds" \
  -H "Authorization: Bearer $ZIPPYODDS_KEY"

Each game's bookmakers list holds the book's entry, with updated_at showing when its prices were read, and each market carries its player, line and two outcomes. Pass books=draftkings,fanduel and the same player at the same line gets the same outcome id at both books, so comparing them is a lookup, not a name match.

Whether DraftKings is feeding right now is on the coverage page, or without a key:

curl -s "https://zippyoddsapi.com/public/coverage" \
  | jq '.books[] | select(.id == "draftkings") | {state, last_seen, leagues}'

A state of feeding means its prices are on the board and were seen recently. Anything else, and the API has nothing current from it.

A worked example from a DraftKings price

The ZippyOddsAPI docs show an illustrative /v1/ev row for a DraftKings total: the over at -105, with a fair probability of 53.12% from the reference books. The numbers in that example aren't live data, but the arithmetic is the same on any row.

  • -105 in decimal is 1 + 100 / 105 = 1.9524.
  • Expected value is the fair probability times the decimal price, minus 1: 0.5312 × 1.9524 - 1 = 0.0371, or 3.71%.
  • The fair price for 53.12% is about -113, so -105 is 8 cents better than fair.

A positive figure is an estimate, not a result. A bet like that still loses close to half the time, and any one result says nothing about whether the estimate was right. DraftKings is also one of the references the docs list, at a lower weight than the sharpest books, so it helps set fair prices for other books while its own prices are scored against everyone else.

Other books, other angles

DraftKings is one stop in a wider comparison. The FanDuel API guide looks at matching markets across books and why same-game parlays don't compare cleanly. The Pinnacle API guide covers why a sharp book's lines are the usual reference for fair prices. And the sportsbook API guide covers the general question of reading any book's prices in code.

The docs list every parameter used here and explain how to get a key.