draftkings apiDashboard ↗

INDEPENDENT DEVELOPER REFERENCE

Data for a player prop model: what is available

Which inputs a prop model can read from this API, which it cannot, and how far player identity joins can be trusted across datasets.

Editorial review: · Not a live coverage report

Inputs by source

A prop model needs targets to compare against, player performance and context. This API has parts of each, from separate sources with separate identifiers. List what your model needs against this table before you write features.

InputWhereLimits
Pick6 target valuetarget_value on /api/v1/pick6/projectionsSelected categories, retained rows can be stale
Pick6 multipliersselections[].standings_multiplierNot odds, not a probability
Pick6 target changes/api/v1/pick6/historyOnly since recording began
Player game stats/api/v1/stats/player-gamesNBA, NFL, NHL samples, not full seasons
Team game stats/api/v1/stats/team-gamesSame samples
Game mainlines/api/v1/oddsMoneyline, spread and total only
DFS salarydata.salary on /api/v1/dfs/playersSelected slates, roster-slot records

What is not available

As of 2026-11-03, native sportsbook scopes cover New York NFL, NHL, college basketball and college football game lines and New York NHL Shots on Goal, points, assists, saves, goalscorers, power-play points and first-period shots. Read snapshots and streamed changes through the sportsbook endpoints. ESPN-attributed DraftKings moneyline, spread and total observations are also available across eight leagues. Current scope inventory is listed at /api/v1/sportsbook/scopes. That rules out features such as a sportsbook player-prop price or a consensus prop line from this API.

  • Graded results. There is no public grading endpoint, so you derive any label yourself.
  • Multi-season line history. Recording began around 2026-11-03. Retained history is short, and it is not a complete opening-to-close archive. It does not contain seasons of past lines, and there is no public graded-results endpoint.
  • Injury reports, lineups and tracking data. These are not in the documented datasets.
  • Canonical player IDs across all sources. See the join section below.

Reading Pick6 as an input

Pick6 rows carry standings multipliers such as 1.5x. A standings multiplier is not decimal odds, a probability or an established entry payout. That limits how you can use one as a feature. You can record it and test whether it helps a model, but do not relabel it as implied probability.

A player can have several rows for one stat at different targets, so pick a rule for the row you use and write it down. Skip rows where is_paused is true when you want an offer that could be selected. Skip stale rows for anything described as current. A target_value is a display target, not a forecast of the stat, so treat any such reading as your assumption.

Fresh rows for one stat
python3 pick6-board.py --sport NHL --stat "Shots on Goal" --limit 25 --max-pages 2

Reading game logs

/api/v1/stats/player-games returns rows as {data, game}. data has athlete_id, name, team_id, opponent_id, category, did_not_play and a stats list. Each stat has key, label, display, numeric and scope.

NFL uses its starting year
curl --fail-with-body "https://draftkingsapi.com/api/v1/stats/player-games?sport=NFL&season=2026&limit=50" \
  -H "Authorization: Bearer $DRAFTKINGS_API_KEY"
  • Use only scope: "game" values. A season-to-date value is not a game value and would leak later information.
  • numeric is null for compound values such as 1-3 or 13:10. Parse display yourself if you need them.
  • Filter on category client-side: boxscore for NBA, receiving, rushing or passing for NFL, forwards, defenses or goalies for NHL.
  • Pages are ordered by cursor, not by date. Sort by game.starts_at before computing any rolling feature.

Identity joins and their limits

Each source has its own IDs. Pick6 entity_id is a DraftKings identifier and athlete_id in statistics is an ESPN identifier. There is no verified mapping between them, and the API will not infer one. In a 2026-11-03 sample of same-named NFL players, Pick6 entity_id matched DFS playerDkId for 128 of 129. Treat that as an observation to verify for your sport, not a guarantee.

JoinKeysStatus
Pick6 to DFSentity_id to data.playerDkIdObserved in a sample. Verify it
Pick6 to ESPN statsNone suppliedName matching only, and it is your own risk
Sportsbook to statsTrailing number of event_idSame ESPN event number
Pick6 event to sportsbook eventNone suppliedDraftKings and ESPN IDs differ

A sportsbook event_id looks like espn-draftkings:espn:NBA:401909925, and the statistics event_id is the trailing 401909925. If you match players on name, normalize carefully, refuse ambiguous matches, record the method and report the unmatched count. See matching players across datasets.

A safe starting feature set

Start with what you can compute without leakage and without a shaky join. A baseline only needs one athlete's own earlier games. Add other inputs one at a time, once you have recorded them with timestamps.

  1. Rolling mean of the target stat over the player's earlier games.
  2. Minutes or role proxies where they exist as numeric game values.
  3. Opponent and home or away from game.teams and opponent_id.
  4. Recorded Pick6 target at a stored time, only after you have recorded it yourself.

The training data guide covers labels and splits, and the NBA model guide builds this baseline.

Try it

python3 player-game-log.py --sport NBA --season 2027 --stat points --max-pages 3

Check the recorded data

Questions

Can I get sportsbook player prop odds as a model feature here?

No. Sportsbook data is moneyline, spread and total only as of 2026-11-03. Pick6 targets are a separate dataset and are not sportsbook prop odds.

How do I link a Pick6 player to ESPN statistics?

No verified mapping is supplied. Name matching is possible but it is your own inference, so refuse ambiguous matches and report what stayed unmatched.

Can I use a standings multiplier as a feature?

You can record it and test it, but it is not a probability or odds. Label it as a standings multiplier so nobody later reads it as an implied chance.

Why not use season-to-date stats?

They were captured after the game and cover games beyond the one on the row. Using them as a game feature leaks later information into the model.

Related resources

Independent service operated by DD Inc., not affiliated with or endorsed by DraftKings. Technical access is not a redistribution license. No wagering: this service does not place, recommend or settle entries or bets. Check sources and status for actual capture context.