draftkings apiDashboard ↗

Reference

Schema glossary and sample JSON

What every field means, what its null means, and a sample file for every resource. Types and null counts are measured from real stored rows.

Samples generated Nov 3, 2026, 20:47 UTC from a read-only copy that predates the 3 November database move, so sample values are dated. Shapes are checked against this page by a test.

Null semantics

  • null means unknown or not sent. It never means zero, false or empty.
  • A missing key means the row predates the field or the source did not include it. Treat it like null.
  • field_stats in each sample file records how often each field was present and null across the rows read.
  • Numeric columns stored as NUMERIC arrive as decimal strings, such as line and decimal on /api/v1/odds. Large sequence ids also arrive as strings.

Terms

Capture
One stored read of one source page or response. Identified by a receipt, with its own observed_at.
observed_at
When this service read the value. It is the only clock most rows have, and it says nothing about when the value changed at the source.
source_updated_at
A clock sent by the source. When it is null, which is usual, source-to-API lag cannot be measured for that row.
Current row
A stored row whose observed_at is at most 900 seconds old. Current does not mean offered right now.
Stale row
A stored row older than 900 seconds. The API keeps returning it with stale true, and the offer may have changed or ended.
Retained row
Any row still stored, current or stale. A retained count is not a board size or an athlete count.
Active scope
A scope the source still lists or discovery still sees. The exact test per dataset is on /reliability.
Complete capture
A matched, untruncated response that was stored in full. Complete applies to that one scope, not to the board.
Known target
A sport, group and category this service has discovered. Known targets are the denominator on the completeness report, and categories never discovered are not counted.
Capture interval
Seconds between two consecutive captures of the same scope. It bounds how long a change can go unseen. It is not latency.
Capture to commit
Seconds from a capture's observed_at to the close of the batch that stored it. Upper bound on capture-to-available.
Standings multiplier
The Pick6 multiplier on a selection. Not decimal odds, a probability or an entry payout.
p50, p95, p99
Percentiles of the stated samples. p95 needs 20 samples and p99 needs 100; below that the figure is withheld rather than interpolated.
No data yet
Nothing has been measured. It never stands in for zero, and a zero on these pages is a counted zero.

Pick6

Selected public Pick6 category captures. Market rows, not unique players, and not a full board.

Pick6 current observations

GET /api/v1/pick6/projections. Sample JSON. Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
pick_group_idstring0 of 400Source pick group, usually one slate of contests.not seen null
pickable_idstring0 of 400Source id of the pickable: one athlete or athlete group on one stat.not seen null
pickable_market_idstring0 of 400Source id of one target value on that pickable. A changed target is usually a different id.not seen null
market_idstring0 of 400Source id of the stat market.not seen null
productstring0 of 400Always pick6 on this dataset.not seen null
sportstring0 of 400Source sport code, such as NBA or SOCCER.not seen null
statstring0 of 400Stat name as the source labels it.not seen null
stat_abbreviationstring0 of 400Stat abbreviation as the source labels it.not seen null
target_valuenumber0 of 400The line for this row. Not a sportsbook line.not seen null
periodalways null400 of 400Period the stat applies to.The source named no period, which on observed rows means the whole game.
is_liveboolean0 of 400Source live flag at capture.not seen null
is_pausedboolean0 of 400Source paused flag at capture. A paused row was not selectable when captured.not seen null
promo_classstring399 of 400Source promotion class.Not a promotional row, as far as the source states.
promo_type_idstring0 of 400Source promotion type id.not seen null
live_stat_valuealways null400 of 400The athlete's in-game stat value, when the source sends one.No live stat was sent, normally because the game has not started. It does not mean the stat is zero.
live_stat_updated_atalways null400 of 400Clock on the live stat value. A stat clock, not a price clock.No live stat was sent.
source_updated_atalways null400 of 400Source clock for this row.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
observed_atstring0 of 400When this service captured the row. The freshness clock.not seen null
source_urlstring0 of 400Public source page the capture read.not seen null
capture_hashstring0 of 400Receipt id of the capture that last wrote this row.not seen null
age_secondsnumber0 of 400Seconds between observed_at and the API response. Computed per response.not seen null
staleboolean0 of 400True when observed_at is more than 900 seconds old at response time. A stale row may still be offered, or may be gone.not seen null
raw_source_statusobject0 of 400Source status object as received.not seen null
raw_source_status.isLiveboolean0 of 400Source live flag, unmodified.not seen null
raw_source_status.isPausedboolean0 of 400Source paused flag, unmodified.not seen null
selectionsarray0 of 400Sides offered on this target. Two entries is a two-sided quote, and one entry is usually a single rung of a ladder.not seen null
selections[].sidestring0 of 458More or Less, as the source labels it.not seen null
selections[].selection_idstring0 of 458Source selection id.not seen null
selections[].proposition_idstring0 of 458Source proposition id.not seen null
selections[].standings_multipliernumber0 of 458Pick6 standings multiplier. Not decimal odds, a probability or an entry payout.not seen null
selections[].formatted_standings_multiplierstring0 of 458The same multiplier as the source formats it, such as 1.5x.not seen null
selections[].is_correlation_eligibleboolean0 of 458Source flag, unmodified. Its meaning is not documented by the source.not seen null
entitiesarray0 of 400Athletes on the row.not seen null
entities[].entity_idstring0 of 400Source athlete id. Not linked to ESPN ids.not seen null
entities[].full_namestring0 of 400Athlete name as the source writes it.not seen null
entities[].display_namestring0 of 400Short athlete name as the source writes it.not seen null
entities[].eventsarray0 of 400Games this athlete's row refers to.not seen null
entities[].events[].event_idstring0 of 400Source event id. Not an ESPN id.not seen null
entities[].events[].namestring0 of 400Game label as the source writes it.not seen null
entities[].events[].league_idstring0 of 400Source league id.not seen null
entities[].events[].sport_idstring0 of 400Source sport id.not seen null
entities[].events[].start_timestring0 of 400Scheduled start from the source.not seen null
entities[].events[].team_idstring0 of 400Source team id.not seen null
entities[].events[].team_namestring0 of 400Team label as the source writes it.not seen null
entities[].events[].opponent_idstring0 of 400Source opponent id.not seen null
entities[].events[].opponent_namestring22 of 400Opponent label as the source writes it.The source named no opponent, as on some multi-team or futures rows.

Pick6 recorded changes

GET /api/v1/pick6/history (alias /api/v1/changes). Sample JSON. Counts from 400 stored rows.

Carries every field of pick6-projections, plus the fields below.

FieldObserved typeSeen nullMeaningWhen null
change_idstring0 of 400Sequence id of this change, as text. Use it as the resume cursor.not seen null
change_kindstring0 of 400offer_changed, or primary_line_changed for a source-designated default line.not seen null
economic_market_keyalways null400 of 400Stable key across provider offer ids for source-designated primary lines.The change is not tied to a source-designated primary line. Keys are forward-only and never backfilled.
previousobject0 of 400The row as stored before this change, in the same shape as the row itself.not seen null

previous.*: Same meaning as the field of the same name on the row. When null: Same meaning as the field of the same name on the row.

Sportsbook, ESPN-attributed mainlines

DraftKings moneyline, spread and total prices as ESPN reports them. Stored observations, not executable offers, and no player props.

ESPN-attributed sportsbook events

GET /api/v1/events. Sample JSON. Counts from 97 stored rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 97Service event id: source, league and ESPN event.not seen null
source_idstring0 of 97Source of the row, espn-draftkings.not seen null
sportstring0 of 97League code.not seen null
homestring0 of 97Home team.not seen null
awaystring0 of 97Away team.not seen null
starts_atstring0 of 97Scheduled start.not seen null
event_statusstring0 of 97pre, in, post or unknown. unknown means no state was stored for the event.not seen null
observed_atstring0 of 97When this service captured the event.not seen null
age_secondsnumber0 of 97Seconds between observed_at and the API response.not seen null
staleboolean0 of 97True when observed_at is more than 900 seconds old.not seen null
provenanceobject0 of 97Where the value came from.not seen null
provenance.providerstring0 of 97Attributed provider. ESPN rows carry DraftKings provider 100 as ESPN reports it.not seen null
provenance.urlstring0 of 97Public response read.not seen null
provenance.rights_referencestring0 of 97Rights statement for this source. Technical access is not a license.not seen null

ESPN-attributed mainline quotes

GET /api/v1/odds. Sample JSON. Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 400Service offer id.not seen null
event_idstring0 of 400Service event id.not seen null
source_idstring0 of 400Source of the row.not seen null
marketstring0 of 400moneyline, spread or total.not seen null
periodstring0 of 400Period the quote covers.not seen null
sidestring0 of 400home, away, over or under.not seen null
linestring113 of 400Spread or total, as a decimal string.A moneyline has no line. It does not mean a line of zero.
americannumber0 of 400American price.not seen null
decimalstring0 of 400Decimal price, as a decimal string.not seen null
fingerprintstring0 of 400Hash of the quote content, used to detect change.not seen null
event_statusstring0 of 400pre, in, post or unknown.not seen null
observed_atstring0 of 400When this service captured the quote.not seen null
source_updated_atalways null400 of 400Source clock for the quote.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
age_secondsnumber0 of 400Seconds between observed_at and the API response.not seen null
staleboolean0 of 400True when observed_at is more than 900 seconds old.not seen null
provenanceobject0 of 400Where the value came from.not seen null
provenance.providerstring0 of 400Attributed provider. ESPN rows carry DraftKings provider 100 as ESPN reports it.not seen null
provenance.urlstring0 of 400Public response read.not seen null
provenance.rights_referencestring0 of 400Rights statement for this source. Technical access is not a license.not seen null

ESPN-attributed quote history

GET /api/v1/history. Sample JSON. Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
seqstring0 of 400Sequence id, as text.not seen null
offer_idstring0 of 400Service offer id.not seen null
observed_atstring0 of 400When this quote state was captured.not seen null
age_secondsnumber0 of 400Seconds between observed_at and the API response.not seen null
staleboolean0 of 400True when observed_at is more than 900 seconds old.not seen null
dataobject0 of 400The quote as stored at that time.not seen null
data.idstring0 of 400Service offer id.not seen null
data.event_idstring0 of 400Service event id.not seen null
data.source_idstring0 of 400Source of the row.not seen null
data.marketstring0 of 400moneyline, spread or total.not seen null
data.periodstring0 of 400Period the quote covers.not seen null
data.sidestring0 of 400home, away, over or under.not seen null
data.linenumber115 of 400Spread or total, as a number.A moneyline has no line. It does not mean a line of zero.
data.americannumber0 of 400American price.not seen null
data.decimalnumber0 of 400Decimal price, as a number.not seen null
data.observed_atstring0 of 400When this quote state was captured.not seen null
data.source_updated_atalways null400 of 400Source clock for the quote.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
data.provenanceobject0 of 400Where the value came from.not seen null
data.provenance.providerstring0 of 400Attributed provider.not seen null
data.provenance.urlstring0 of 400Public response read.not seen null
data.provenance.rights_referencestring0 of 400Rights statement for this source.not seen null

Sportsbook, native scopes

Native rows for specific subscribed scopes only, such as New York NHL Shots on Goal. Full-book coverage is unknown. Paid plans read it through a snapshot and a WebSocket.

Native sportsbook events

GET /api/v1/sportsbook/snapshot?scope=<scope_id>. Sample JSON (shape only: values are replaced by their type). Counts from 1 stored rows, from a retained source excerpt rather than production rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 1Source id, unique within this scope and kind.not seen null
labelstring0 of 1Source label.not seen null
rawobject0 of 1The source object as received. Emptied in this sample.not seen null
received_atstring0 of 1When this service received the batch.not seen null
source_updated_atalways null1 of 1Source clock for the row.No source clock was available for this row, so source-to-receipt lag is unknown.
participantsarray0 of 1Teams or players the row names.not seen null
participants[].idstring0 of 2Source participant id.not seen null
participants[].namestring0 of 2Source participant name.not seen null
participants[].typestring0 of 2Team or Player, as the source labels it.not seen null
participants[].venue_rolestring0 of 2Home or away role, as the source labels it.not seen null
starts_atstring0 of 1Scheduled start.not seen null
liveboolean0 of 1Source live flag.The source did not state it.
statusstring0 of 1Source event status.The source did not send this value for the row.

Native sportsbook markets

GET /api/v1/sportsbook/snapshot?scope=<scope_id>. Sample JSON (shape only: values are replaced by their type). Counts from 1 stored rows, from a retained source excerpt rather than production rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 1Source id, unique within this scope and kind.not seen null
labelstring0 of 1Source label.not seen null
rawobject0 of 1The source object as received. Emptied in this sample.not seen null
received_atstring0 of 1When this service received the batch.not seen null
source_updated_atalways null1 of 1Source clock for the row.No source clock was available for this row, so source-to-receipt lag is unknown.
event_idstring0 of 1Parent event id.not seen null
market_typestring0 of 1Source market type name.not seen null
market_type_idstring0 of 1Source market type id.not seen null

Native sportsbook selections

GET /api/v1/sportsbook/snapshot?scope=<scope_id>. Sample JSON (shape only: values are replaced by their type). Counts from 2 stored rows, from a retained source excerpt rather than production rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 2Source id, unique within this scope and kind.not seen null
labelstring0 of 2Source label.not seen null
rawobject0 of 2The source object as received. Emptied in this sample.not seen null
received_atstring0 of 2When this service received the batch.not seen null
source_updated_atalways null2 of 2Source clock for the row.No source clock was available for this row, so source-to-receipt lag is unknown.
participantsarray0 of 2Teams or players the row names.not seen null
participants[].idstring0 of 2Source participant id.not seen null
participants[].namestring0 of 2Source participant name.not seen null
participants[].typestring0 of 2Team or Player, as the source labels it.not seen null
participants[].venue_rolestring0 of 2Home or away role, as the source labels it.not seen null
market_idstring0 of 2Parent market id.not seen null
linenumber0 of 2Line for this selection.The selection has no line, or a delta did not state one. It does not mean a line of zero.
americannumber0 of 2American price.No usable price was sent. Treat the selection as unpriced, not as even money.
decimalnumber0 of 2Decimal price.No usable price was sent. Treat the selection as unpriced.

DFS

Selected DFS catalog, contest, slate and player-list observations. Salary is not an offered line or odds. Public redistribution is pending source permission, so these samples show shape only.

DFS sports

GET /api/v1/dfs/sports. Sample JSON (shape only: values are replaced by their type). Counts from 25 stored rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 25Record id within this kind and scope.not seen null
sportalways null25 of 25Sport code.The record is not tied to one sport, as with the sport catalog.
slate_idalways null25 of 25Draft group id this record belongs to.The record is not tied to one slate.
observed_atstring0 of 25When this service requested the source.not seen null
received_atstring0 of 25When the response arrived. received_at minus observed_at is request time, not a publication delay.The capture predates this column.
source_updated_atalways null25 of 25Source clock for the capture.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
http_datestring0 of 25The response's HTTP Date header. Response time, not a salary change time.The capture predates this column.
payload_sha256string0 of 25SHA-256 of the response.not seen null
adapter_versionstring0 of 25Version of the parser that stored the row.not seen null
rights_statusstring0 of 25Rights review state for the capture.not seen null
source_urlstring0 of 25Public response read.not seen null
caveatsstring0 of 25What the row does and does not establish.not seen null
dataobject0 of 25The source row as received. Its keys belong to the source and can change without notice.not seen null

data.*: Source field, passed through unmodified and not separately defined here. When null: The source did not send this value for the row.

DFS contests

GET /api/v1/dfs/contests. Sample JSON (shape only: values are replaced by their type). Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 400Record id within this kind and scope.not seen null
sportstring0 of 400Sport code.The record is not tied to one sport, as with the sport catalog.
slate_idstring0 of 400Draft group id this record belongs to.The record is not tied to one slate.
observed_atstring0 of 400When this service requested the source.not seen null
received_atstring0 of 400When the response arrived. received_at minus observed_at is request time, not a publication delay.The capture predates this column.
source_updated_atalways null400 of 400Source clock for the capture.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
http_datestring0 of 400The response's HTTP Date header. Response time, not a salary change time.The capture predates this column.
payload_sha256string0 of 400SHA-256 of the response.not seen null
adapter_versionstring0 of 400Version of the parser that stored the row.not seen null
rights_statusstring0 of 400Rights review state for the capture.not seen null
source_urlstring0 of 400Public response read.not seen null
caveatsstring0 of 400What the row does and does not establish.not seen null
dataobject0 of 400The source row as received. Its keys belong to the source and can change without notice.not seen null

data.*: Source field, passed through unmodified and not separately defined here. When null: The source did not send this value for the row.

DFS slates

GET /api/v1/dfs/slates. Sample JSON (shape only: values are replaced by their type). Counts from 80 stored rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 80Record id within this kind and scope.not seen null
sportstring0 of 80Sport code.The record is not tied to one sport, as with the sport catalog.
slate_idstring0 of 80Draft group id this record belongs to.The record is not tied to one slate.
observed_atstring0 of 80When this service requested the source.not seen null
received_atstring0 of 80When the response arrived. received_at minus observed_at is request time, not a publication delay.The capture predates this column.
source_updated_atalways null80 of 80Source clock for the capture.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
http_datestring0 of 80The response's HTTP Date header. Response time, not a salary change time.The capture predates this column.
payload_sha256string0 of 80SHA-256 of the response.not seen null
adapter_versionstring0 of 80Version of the parser that stored the row.not seen null
rights_statusstring0 of 80Rights review state for the capture.not seen null
source_urlstring0 of 80Public response read.not seen null
caveatsstring0 of 80What the row does and does not establish.not seen null
dataobject0 of 80The source row as received. Its keys belong to the source and can change without notice.not seen null

data.*: Source field, passed through unmodified and not separately defined here. When null: The source did not send this value for the row.

DFS players

GET /api/v1/dfs/players. Sample JSON (shape only: values are replaced by their type). Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
idstring0 of 400Record id within this kind and scope.not seen null
sportstring0 of 400Sport code.The record is not tied to one sport, as with the sport catalog.
slate_idstring0 of 400Draft group id this record belongs to.The record is not tied to one slate.
observed_atstring0 of 400When this service requested the source.not seen null
received_atstring0 of 400When the response arrived. received_at minus observed_at is request time, not a publication delay.The capture predates this column.
source_updated_atalways null400 of 400Source clock for the capture.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
http_datestring0 of 400The response's HTTP Date header. Response time, not a salary change time.The capture predates this column.
payload_sha256string0 of 400SHA-256 of the response.not seen null
adapter_versionstring0 of 400Version of the parser that stored the row.not seen null
rights_statusstring0 of 400Rights review state for the capture.not seen null
source_urlstring0 of 400Public response read.not seen null
caveatsstring0 of 400What the row does and does not establish.not seen null
dataobject0 of 400The source row as received. Its keys belong to the source and can change without notice.not seen null

data.*: Source field, passed through unmodified and not separately defined here. When null: The source did not send this value for the row.

Game context

ESPN-sourced game rows and box-score rows captured alongside sportsbook summaries. ESPN ids are not linked to DraftKings ids.

Game context: games

GET /api/v1/context/games. Sample JSON. Counts from 107 stored rows.

FieldObserved typeSeen nullMeaningWhen null
kindstring0 of 107games, player-stats or team-stats.not seen null
sportstring0 of 107League code.not seen null
event_idstring0 of 107ESPN event id. Not a DraftKings id.not seen null
entity_idstring0 of 107The row's subject: event, athlete or team, as an ESPN id.not seen null
observed_atstring0 of 107When this service captured the row.not seen null
source_urlstring0 of 107Public response read.not seen null
payload_sha256string0 of 107SHA-256 of the response.not seen null
age_secondsnumber0 of 107Seconds between observed_at and the API response.not seen null
staleboolean0 of 107True when observed_at is more than 900 seconds old.not seen null
dataobject0 of 107The normalized row.not seen null
data.event_idstring0 of 107ESPN event id.not seen null
data.source_updated_atalways null107 of 107Source clock.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
data.sportstring0 of 107League code.not seen null
data.descriptionstring0 of 107Game label.not seen null
data.starts_atstring0 of 107Scheduled start.not seen null
data.statestring0 of 107ESPN state: pre, in or post.not seen null
data.completedboolean0 of 107ESPN completed flag.not seen null
data.clockalways null107 of 107ESPN game clock.No clock was sent.
data.periodalways null107 of 107Period number.No period was sent.
data.teamsarray0 of 107The two teams.not seen null
data.teams[].idstring0 of 214ESPN team id.not seen null
data.teams[].namestring0 of 214Team name.not seen null
data.teams[].sidestring0 of 214home or away.not seen null
data.teams[].scorestring96 of 214Score as text.Not scored at capture. It does not mean zero.
data.teams[].winnerboolean94 of 214ESPN winner flag.Not decided or not sent at capture.

Game context: player-stats

GET /api/v1/context/player-stats. Sample JSON. Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
kindstring0 of 400games, player-stats or team-stats.not seen null
sportstring0 of 400League code.not seen null
event_idstring0 of 400ESPN event id. Not a DraftKings id.not seen null
entity_idstring0 of 400The row's subject: event, athlete or team, as an ESPN id.not seen null
observed_atstring0 of 400When this service captured the row.not seen null
source_urlstring0 of 400Public response read.not seen null
payload_sha256string0 of 400SHA-256 of the response.not seen null
age_secondsnumber0 of 400Seconds between observed_at and the API response.not seen null
staleboolean0 of 400True when observed_at is more than 900 seconds old.not seen null
dataobject0 of 400The normalized row.not seen null
data.event_idstring0 of 400ESPN event id.not seen null
data.source_updated_atalways null400 of 400Source clock.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
data.statisticsarray0 of 400Stat lines.not seen null
data.statistics[].keystring0 of 4,086ESPN stat key.not seen null
data.statistics[].labelstring0 of 4,086ESPN stat label.ESPN sent no label for this key.
data.statistics[].valuestring0 of 4,086Value as text.ESPN sent no value for this key. It does not mean zero.
data.teamstring0 of 400Team name.not seen null
data.team_idstring0 of 400ESPN team id.not seen null
data.athlete_idstring0 of 400ESPN athlete id.not seen null
data.playerstring0 of 400Athlete name.not seen null
data.categorystring0 of 400Box-score group, such as passing.not seen null
data.positionstring12 of 400Position.ESPN sent no position.
data.starterboolean12 of 400ESPN starter flag.ESPN did not state it. It does not mean false.
data.did_not_playboolean12 of 400ESPN did-not-play flag.ESPN did not state it. It does not mean the athlete played.
data.headshot_urlstring67 of 400Portrait URL from ESPN.ESPN sent no portrait.

Game context: team-stats

GET /api/v1/context/team-stats. Sample JSON. Counts from 214 stored rows.

FieldObserved typeSeen nullMeaningWhen null
kindstring0 of 214games, player-stats or team-stats.not seen null
sportstring0 of 214League code.not seen null
event_idstring0 of 214ESPN event id. Not a DraftKings id.not seen null
entity_idstring0 of 214The row's subject: event, athlete or team, as an ESPN id.not seen null
observed_atstring0 of 214When this service captured the row.not seen null
source_urlstring0 of 214Public response read.not seen null
payload_sha256string0 of 214SHA-256 of the response.not seen null
age_secondsnumber0 of 214Seconds between observed_at and the API response.not seen null
staleboolean0 of 214True when observed_at is more than 900 seconds old.not seen null
dataobject0 of 214The normalized row.not seen null
data.event_idstring0 of 214ESPN event id.not seen null
data.source_updated_atalways null214 of 214Source clock.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
data.statisticsarray0 of 214Stat lines.not seen null
data.statistics[].keystring0 of 3,740ESPN stat key.not seen null
data.statistics[].labelstring8 of 3,740ESPN stat label.ESPN sent no label for this key.
data.statistics[].valuestring8 of 3,740Value as text.ESPN sent no value for this key. It does not mean zero.
data.teamstring0 of 214Team name.not seen null
data.team_idstring0 of 214ESPN team id.not seen null

Independent statistics

Retained ESPN game samples for NBA, NFL and NHL, not full seasons. Not linked to Pick6 athletes.

Independent statistics: games

GET /api/v1/stats/games. Sample JSON. Counts from 75 stored rows.

FieldObserved typeSeen nullMeaningWhen null
dataobject0 of 75One game.not seen null
data.sportstring0 of 75NBA, NFL or NHL.not seen null
data.event_idstring0 of 75ESPN event id. Not a DraftKings id.not seen null
data.seasonnumber0 of 75Season. NFL uses its starting year; NBA and NHL use their ending year.not seen null
data.season_typenumber0 of 75ESPN season type number.not seen null
data.starts_atstring0 of 75Scheduled start.not seen null
data.statestring0 of 75ESPN state: pre, in or post.not seen null
data.statusstring0 of 75ESPN status code, such as STATUS_FINAL.not seen null
data.completedboolean0 of 75ESPN completed flag at capture.not seen null
data.periodnumber65 of 75Period number.ESPN sent no period, as on final rows captured from a summary.
data.display_clockstring65 of 75ESPN game clock text.ESPN sent no clock.
data.source_updated_atalways null75 of 75Source clock for this game.The source sent no update clock. Update time at the source is unknown; it does not mean the value never changed.
data.teamsarray0 of 75The two teams.not seen null
data.teams[].idstring0 of 150ESPN team id.not seen null
data.teams[].namestring0 of 150Team name.not seen null
data.teams[].sidestring0 of 150home or away.not seen null
data.teams[].scorestring50 of 150Score as text.Not scored at capture, normally a game not yet played. It does not mean zero.
data.evidenceobject0 of 75Receipt of the retained response.not seen null
data.evidence.urlstring0 of 75Public response read.not seen null
data.evidence.sha256string0 of 75SHA-256 of the retained response.not seen null
data.evidence.observed_atstring0 of 75When the response was captured.not seen null
data.evidence.http_datestring52 of 75The response's HTTP Date header.No Date header was recorded.
data.evidence.last_modifiedalways null75 of 75The response's Last-Modified header.ESPN sent no Last-Modified header.
data.evidence.filenot seennot seenRetained archive file name. Internal receipt detail; do not depend on it.not seen null
data.datenot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null
data.discoverednot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null
data.fromnot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null
data.tonot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null
data.gamesnot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null
data.idnot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null
data.pendingnot seennot seenBackfill checkpoint detail present on some rows. Not part of the contract; do not depend on it.not seen null

Independent statistics: player games

GET /api/v1/stats/player-games. Sample JSON. Counts from 400 stored rows.

FieldObserved typeSeen nullMeaningWhen null
dataobject0 of 400One athlete's stat category in one game.not seen null
data.athlete_idstring0 of 400ESPN athlete id.not seen null
data.namestring0 of 400Athlete name.not seen null
data.categorystring0 of 400Box-score group.not seen null
data.team_idstring0 of 400ESPN team id.not seen null
data.opponent_idstring0 of 400ESPN opponent id.not seen null
data.starterboolean297 of 400ESPN starter flag.ESPN did not state it. It does not mean false.
data.did_not_playboolean297 of 400ESPN did-not-play flag.ESPN did not state it. It does not mean the athlete played.
data.statsarray0 of 400Stat lines.not seen null
data.stats[].keystring0 of 7,517ESPN stat key.not seen null
data.stats[].labelstring0 of 7,517ESPN stat label.not seen null
data.stats[].scopestring0 of 7,517What the value covers, such as game.not seen null
data.stats[].displaystring140 of 7,517Value as ESPN displays it.ESPN sent no value for this stat.
data.stats[].numericnumber1,553 of 7,517The value as a number, when it parses as one.The value is not one number, as with 18-52, or ESPN sent none. It does not mean zero.
gameobject0 of 400The game this row belongs to, in the same shape as a games row.not seen null

game.*: Same meaning as the field of the same name on a games row. When null: Same meaning as the field of the same name on a games row.

Independent statistics: team games

GET /api/v1/stats/team-games. Sample JSON. Counts from 134 stored rows.

FieldObserved typeSeen nullMeaningWhen null
dataobject0 of 134One team in one game.not seen null
data.team_idstring0 of 134ESPN team id.not seen null
data.opponent_idstring0 of 134ESPN opponent id.not seen null
data.statsarray0 of 134Stat lines.not seen null
data.stats[].keystring0 of 2,398ESPN stat key.not seen null
data.stats[].labelstring0 of 2,398ESPN stat label.not seen null
data.stats[].scopestring0 of 2,398What the value covers, such as game.not seen null
data.stats[].displaystring0 of 2,398Value as ESPN displays it.ESPN sent no value for this stat.
data.stats[].numericnumber340 of 2,398The value as a number, when it parses as one.The value is not one number, as with 18-52, or ESPN sent none. It does not mean zero.
gameobject0 of 134The game this row belongs to, in the same shape as a games row.not seen null

game.*: Same meaning as the field of the same name on a games row. When null: Same meaning as the field of the same name on a games row.

Not covered one by one

  • Stream and webhook frames carry Pick6 change rows, so their fields are the ones under Pick6 recorded changes. They have no separate sample here.
  • Source fields passed through under data on DFS rows are not defined one by one, because the source owns 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. Information only. Every value is a stored observation with its capture clock, and no row is a live offer, a recommendation or a guarantee of what is available now.