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.
| Input | Where | Limits |
|---|---|---|
| Pick6 target value | target_value on /api/v1/pick6/projections | Selected categories, retained rows can be stale |
| Pick6 multipliers | selections[].standings_multiplier | Not odds, not a probability |
| Pick6 target changes | /api/v1/pick6/history | Only since recording began |
| Player game stats | /api/v1/stats/player-games | NBA, NFL, NHL samples, not full seasons |
| Team game stats | /api/v1/stats/team-games | Same samples |
| Game mainlines | /api/v1/odds | Moneyline, spread and total only |
| DFS salary | data.salary on /api/v1/dfs/players | Selected 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.
python3 pick6-board.py --sport NHL --stat "Shots on Goal" --limit 25 --max-pages 2Reading 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.
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. Aseason-to-datevalue is not a game value and would leak later information. numericis null for compound values such as1-3or13:10. Parsedisplayyourself if you need them.- Filter on
categoryclient-side:boxscorefor NBA,receiving,rushingorpassingfor NFL,forwards,defensesorgoaliesfor NHL. - Pages are ordered by cursor, not by date. Sort by
game.starts_atbefore 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.
| Join | Keys | Status |
|---|---|---|
| Pick6 to DFS | entity_id to data.playerDkId | Observed in a sample. Verify it |
| Pick6 to ESPN stats | None supplied | Name matching only, and it is your own risk |
| Sportsbook to stats | Trailing number of event_id | Same ESPN event number |
| Pick6 event to sportsbook event | None supplied | DraftKings 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.
- Rolling mean of the target stat over the player's earlier games.
- Minutes or role proxies where they exist as
numericgame values. - Opponent and home or away from
game.teamsandopponent_id. - 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 3Check 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
Why there is no ready-made training set here, where point-in-time leakage comes from, and how to record your own as-of dataset from now on.
Build a baseline NBA points prop modelBuild a chronological NBA points baseline from recorded box scores, score it on later games and compare with Pick6 targets you recorded yourself.
NBA game logs API for player statisticsBuild an NBA player game log from retained ESPN box scores: season years, stat keys, cursor pagination and why you must sort rows yourself.
How do I match a player across Pick6, DFS and ESPN?Pick6 entity_id has matched DFS playerDkId in a bounded NFL check. ESPN athlete_id is separate, and no mapping is supplied, so verify your own.
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.