INDEPENDENT DEVELOPER REFERENCE
NBA Pick6 props API
Query recorded NBA Pick6 rows, check capture age first, read More and Less selections and handle live, paused and alternative targets.
Editorial review: · Not a live coverage report
What the NBA board contains
On 2026-11-03, NBA Pick6 captures contained one stat: Points, abbreviated PTS. Other NBA categories may appear as collection rotates, but do not assume rebounds, assists or threes exist until a query returns them. Treat this list as a dated observation and read status for the current one.
At the same check, every retained NBA row was older than the 15-minute stale window. NBA rows are not always fresh, so test capture age before you build a board on them.
curl --fail-with-body "https://draftkingsapi.com/api/v1/pick6/projections?sport=NBA&stat=Points&limit=25" \
-H "Authorization: Bearer $DRAFTKINGS_API_KEY"Check capture age before anything else
Each row reports observed_at, age_seconds and stale. stale becomes true after 15 minutes without a fresh observation. A stale row is retained evidence, not a current offer. Decide in your application what to do with it: hide it, label it, or stop the job.
import json, os, urllib.request
url = "https://draftkingsapi.com/api/v1/pick6/projections?sport=NBA&limit=100"
request = urllib.request.Request(url, headers={
"Authorization": "Bearer " + os.environ["DRAFTKINGS_API_KEY"]
})
with urllib.request.urlopen(request, timeout=20) as response:
rows = json.load(response)["data"]
fresh = [r for r in rows if not r["stale"]]
print(len(fresh), "fresh of", len(rows), "rows on this page")
if not fresh:
raise SystemExit("No fresh NBA rows on this page. Check /status.")Read one market row
A row is one market at one target value, not one player. The shape below is illustrative: it shows real field names with made-up identifiers.
{
"sport": "NBA",
"stat": "Points",
"stat_abbreviation": "PTS",
"target_value": 24.5,
"period": null,
"is_live": false,
"is_paused": false,
"pick_group_id": "EXAMPLE_GROUP",
"pickable_id": "EXAMPLE_PICKABLE",
"pickable_market_id": "EXAMPLE_MARKET",
"selections": [
{ "side": "More", "standings_multiplier": 1, "formatted_standings_multiplier": "1x" },
{ "side": "Less", "standings_multiplier": 1, "formatted_standings_multiplier": "1x" }
],
"entities": [
{ "entity_id": "EXAMPLE_ENTITY", "full_name": "Example Athlete", "events": [] }
],
"observed_at": "CAPTURE_TIME",
"source_updated_at": null,
"age_seconds": 240,
"stale": false
}Alternative targets and one-sided rows
One athlete can hold several rows for Points at different target_values. On NBA captures we saw both-sided rows with More and Less, and many more rows listing More alone. Keep what the source sent. Do not create the missing side, and do not assume the two sides of a row carry equal multipliers.
Pick6 rows carry standings multipliers such as 1.5x. A standings multiplier is not decimal odds, a probability or an established entry payout. Read odds vs Pick6 multipliers vs DFS salaries before putting multipliers into a model.
To count athletes, count distinct entities[].entity_id. Row counts overstate them.
Live and paused rows
NBA is where you will see is_live and is_paused most clearly, because rows captured during games keep their flags. live_stat_value and live_stat_updated_at belong to the live statistic. They are not the clock of the offer, and source_updated_at stays null because the source market update time is unknown.
- Exclude
is_paused: truewhen you display anything that could read as available. - Treat
is_live: truerows as in-game context, and showlive_stat_valueonly with its own timestamp. - A row disappearing from a partial capture is not settlement. Retained rows can persist after their game has finished.
Page through the NBA board
limit accepts 1 to 100 and offset 0 to 10,000. Continue while pagination.has_more is true. There is no player filter, so filter on entities after you fetch, or use pickable_id with a value a response already returned. Each page costs one request, so set a page limit when you run this on a schedule.
python3 pick6-board.py --sport NBA --stat Points --limit 25 --max-pages 2For change history rather than the current board, use /api/v1/pick6/history. See line movement. 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.
Try it
Run one bounded request, then check stale on what came back.
curl --fail-with-body "https://draftkingsapi.com/api/v1/pick6/projections?sport=NBA&stat=Points&limit=10" \
-H "Authorization: Bearer $DRAFTKINGS_API_KEY"Check the recorded data
Questions
Which NBA stats does Pick6 data include?
On 2026-11-03 NBA captures contained Points only. Collection is selected and rotating, so query the stat you need and check the status page instead of relying on this list.
Are NBA Pick6 rows current offers?
Not necessarily. Check stale and age_seconds on each row. On the date above, every retained NBA row was past the 15-minute stale window at the time of the check. Presence does not prove a row is selectable.
Can I compare an NBA Pick6 target with a DraftKings sportsbook prop?
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.
Do the multipliers show my payout?
No. A standings multiplier is not decimal odds, a probability or an established entry payout. These observations do not establish what any entry pays.
Related resources
Pair NBA Points rows from Pick6 with ESPN player points from the statistics API, and see where the join and the history stop.
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.
DraftKings API freshness: clocks and stale rowsHow to read observed_at, source_updated_at, age_seconds and stale, what worker targets mean, and how to label data honestly.
DraftKings Pick6 observations APIInspect selected multi-sport Pick6 market rows, explicit selections, standings multipliers and actual changed observations.
Does the API have NBA player props?NBA Pick6 rows yes, native sportsbook NBA props no. Pick6 captures are selected and can be stale, so check rows before relying on them.
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.