STAT-API

DFS slates API

slatesdfs.slates
DFS contest slate. A slate is one operator + one league + a fixed game pool + scoring rules; users build lineups against it. Slate player and team projections are available directly on this slate resource or under the Projections section.
GET/api/v1/dfs/slates
Requires one of: sport or league or operator_id + date or operator + date or operator_slate_id or external_id — requests satisfying none of these return 400.
Parameters
operator_idquerybigintoptional
Filter to all slates for a single DFS operator: by numeric id (1 DraftKings, 2 FanDuel, 3 Yahoo).
operatorquerystringoptional
Filter to all slates for a single DFS operator: draftkings, fanduel, yahoo (or numeric operator id).
datequerydateoptional
Slate calendar date in US Eastern time (YYYY-MM-DD), derived from start_time. Range operators let a caller ask for the most recent slates on or before a day, which is how a client finds live data without knowing the schedule. Range syntax: date__gte=, date__lte=, date__between=.
leaguequerystringoptional
League — code (NFL, NBA, MLB, NHL, GOLF; case-insensitive) or numeric league id. Resolves via main.leagues.
sportquerystringoptional
Sport/league code (NFL, NBA, MLB, NHL, GOLF; case-insensitive). Resolves via main.leagues.
external_idquerybigintoptional
Operator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId).
operator_slate_idquerybigintoptional
Operator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate id.
statusquerystringoptional
Filter by slate lifecycle status: Upcoming, Live, Completed (case-insensitive). Values: Upcoming, Live, Completed, upcoming, live, completed.
limitqueryintegeroptionaldefault 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/dfs/slates?date=2026-10-18&operator_id=1'
Responses
200slates rows matching the declared filter set, wrapped in { slates, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.application/json
Response Schema(18 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
external_id
bigint—Operator-side slate identifier (e.g., DraftKings contest group ID).
e.g. 16775
league_id
bigint—FK to the league this slate belongs to.
e.g. 2
operator_id
bigintFK to the DFS operator (DraftKings, FanDuel, Yahoo, etc.).
e.g. 2
operator_setting_id
stringnullable—The operator's own id for the lineup setting this slate is played under — FanDuel states it as slateFormatId, DraftKings as lineupConfigurationId. Matches dfs.slate_settings.operator_setting_id. Text, because some stored values are not numbers (deprecated-5399). Never a key on its own: the operators reuse these ids across sports and versions, so resolution is (operator, league, this id) then the newest valid_from not after the slate date.
e.g. 25
slate_setting_id
bigintFK to slate_settings — the scoring format and roster constraints for this slate.
e.g. 23
contest_count
integer—Number of contests on this slate (rows in dfs.contests). Counts lobby-only contests too, which never have lineups.
e.g. — (all-null in sample)
date
date—Calendar day of the slate in US Eastern time (DB-generated from start_time — read-only).
e.g. 2026-02-24
game_count
integer—Number of games in the slate pool (distinct games in dfs.slate_games). 0 when the slate has no linked games.
e.g. — (all-null in sample)
game_type
stringnullable—Roster format of the slate, from its slate setting: classic (full roster), showdown (DraftKings Showdown Captain Mode — CPT at 1.5x salary and points), single_game (FanDuel Single Game — MVP at 1.5x points, no salary change), or tiers. Null when the setting states another format.
e.g. — (all-null in sample)
lineup_contest_count
integer—Number of contests on this slate with their lineups loaded (dfs.contests.lineups_status = available). 0 when no contest of the slate has a lineup file.
e.g. — (all-null in sample)
main
boolean—Whether this is the featured ("main") slate for this operator/league/day — at most one per (operator, league, date). Daily for NBA/MLB/NHL, Sundays for NFL, never for golf. Backfilled 2016-2026 on 2026-08-24 (docs/migrations/scripts/2026-08-24-dfs-slates-main-backfill.sql). Rows loaded after that date are not yet auto-flagged.
Values:falsetrue
name
stringnullable—Human-readable slate label (e.g., "Sunday Main", "Showdown: TB vs KC").
e.g. Main
part_of_game
stringnullable—The part of each game that the slate scores, from the scoring rule of its slate setting (dfs.slate_settings.scoring): full, or second_half and fourth_quarter for an in-game slate. Null when the setting holds no scoring rule.
e.g. — (all-null in sample)
player_count
integer—Number of priced players in the slate pool (rows in dfs.slate_players).
e.g. — (all-null in sample)
start_time
timestamptz—Lock time — first scheduled tip/kickoff of any game in the pool.
e.g. 2026-02-25T00:00:00.000Z
state
string—Lifecycle state of the slate in the Prelock / Started / Completed vocabulary, derived by the API on every read (browse.rs derive_dfs_lifecycle_state) from `status`: Upcoming → Prelock, Live → Started, Completed → Completed. `status` is the authoritative field; this one repeats it in the older vocabulary.
e.g. — (all-null in sample)
status
string—Authoritative slate lifecycle status: Upcoming (pre-lock), Live (in progress), Completed (all games final).
e.g. Completed
GET/api/v1/dfs/slates/{id}
Parameters
idpathbigintrequired
Primary key (id) of the slate row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/dfs/slates/676551'
Responses
200Single slate row.application/jsonshow example ▸
404Row not found.
Response Schema(18 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
external_id
bigint—Operator-side slate identifier (e.g., DraftKings contest group ID).
e.g. 16775
league_id
bigint—FK to the league this slate belongs to.
e.g. 2
operator_id
bigintFK to the DFS operator (DraftKings, FanDuel, Yahoo, etc.).
e.g. 2
operator_setting_id
stringnullable—The operator's own id for the lineup setting this slate is played under — FanDuel states it as slateFormatId, DraftKings as lineupConfigurationId. Matches dfs.slate_settings.operator_setting_id. Text, because some stored values are not numbers (deprecated-5399). Never a key on its own: the operators reuse these ids across sports and versions, so resolution is (operator, league, this id) then the newest valid_from not after the slate date.
e.g. 25
slate_setting_id
bigintFK to slate_settings — the scoring format and roster constraints for this slate.
e.g. 23
contest_count
integer—Number of contests on this slate (rows in dfs.contests). Counts lobby-only contests too, which never have lineups.
e.g. — (all-null in sample)
date
date—Calendar day of the slate in US Eastern time (DB-generated from start_time — read-only).
e.g. 2026-02-24
game_count
integer—Number of games in the slate pool (distinct games in dfs.slate_games). 0 when the slate has no linked games.
e.g. — (all-null in sample)
game_type
stringnullable—Roster format of the slate, from its slate setting: classic (full roster), showdown (DraftKings Showdown Captain Mode — CPT at 1.5x salary and points), single_game (FanDuel Single Game — MVP at 1.5x points, no salary change), or tiers. Null when the setting states another format.
e.g. — (all-null in sample)
lineup_contest_count
integer—Number of contests on this slate with their lineups loaded (dfs.contests.lineups_status = available). 0 when no contest of the slate has a lineup file.
e.g. — (all-null in sample)
main
boolean—Whether this is the featured ("main") slate for this operator/league/day — at most one per (operator, league, date). Daily for NBA/MLB/NHL, Sundays for NFL, never for golf. Backfilled 2016-2026 on 2026-08-24 (docs/migrations/scripts/2026-08-24-dfs-slates-main-backfill.sql). Rows loaded after that date are not yet auto-flagged.
Values:falsetrue
name
stringnullable—Human-readable slate label (e.g., "Sunday Main", "Showdown: TB vs KC").
e.g. Main
part_of_game
stringnullable—The part of each game that the slate scores, from the scoring rule of its slate setting (dfs.slate_settings.scoring): full, or second_half and fourth_quarter for an in-game slate. Null when the setting holds no scoring rule.
e.g. — (all-null in sample)
player_count
integer—Number of priced players in the slate pool (rows in dfs.slate_players).
e.g. — (all-null in sample)
start_time
timestamptz—Lock time — first scheduled tip/kickoff of any game in the pool.
e.g. 2026-02-25T00:00:00.000Z
state
string—Lifecycle state of the slate in the Prelock / Started / Completed vocabulary, derived by the API on every read (browse.rs derive_dfs_lifecycle_state) from `status`: Upcoming → Prelock, Live → Started, Completed → Completed. `status` is the authoritative field; this one repeats it in the older vocabulary.
e.g. — (all-null in sample)
status
string—Authoritative slate lifecycle status: Upcoming (pre-lock), Live (in progress), Completed (all games final).
e.g. Completed
GET/api/v1/dfs/slates/{slate_id}/contest-ownership
Parameters
slate_idpathbigintrequired
Internal STAT-API slate ID (references dfs.slates.id).
contestquerybigintoptional
The contest to show in `contest` (dfs.contests id of a contest of the slate with learned rows). Default `default_contest`, the biggest prize pool. Without DFS access a contest that is not free answers locked. An id that is not a contest of the slate answers 400.
comparequerybigintoptional
The contest to show in `compare` (dfs.contests id of a contest of the slate with learned rows). Default `default_compare`, the biggest cash game. Without DFS access a contest that is not free answers locked. An id that is not a contest of the slate answers 400.
formatquerystringoptionaldefault json
'json' (default) or 'csv'. csv=players is free to every caller; csv=groups and csv=contests need DFS access, except on a TNF or MNF game's single-game slate (402 otherwise).
csvquerystringoptionaldefault groups
With format=csv: 'groups' (default, one row per player and group), 'contests' (one row per contest and player, every contest in lobby order) or 'players' (one row per player the caller's plan lists in the open contest: 10 on a classic slate, 5 on a single-game slate without DFS access). Without format=csv it answers 400.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/dfs/slates/676551/contest-ownership'
Responses
200Projected captain and FLEX ownership by contest, the biggest prize pool first (lobby), and by contest groupapplication/jsonshow example ▸
400Invalid slate ID, an unknown format or csv value, csv without format=csv, or a contest or compare id that is not a contest of the slate with learned rows
402format=csv with csv=groups or csv=contests without DFS access, on a slate other than a TNF or MNF game's single-game slate
404Slate not found (an excluded format, a test or a cancelled slate)
Response Schema(16 fields)show schema ▸
FieldTypeReferencesDescription
slate
object—The slate.
↳id
slate.id
bigint—dfs.slates id.
↳external_id
slate.external_id
bigint—Operator slate ID (DraftKings draft group, FanDuel fixture list).
↳operator
slate.operator
string—DraftKings or FanDuel.
↳name
slate.name
stringnullable—Slate name.
↳game_type
slate.game_type
stringnullable—The slate setting's format, as on /dfs/slates.
↳in_game
slate.in_game
boolean—True for an in-game format (DraftKings In-Game Showdown, FanDuel 2nd half or 4th quarter). In-game formats have no projections by design.
↳start_time
slate.start_time
stringnullable—Lock time (ISO 8601, UTC).
↳status
slate.status
stringnullable—Upcoming, Live or Completed.
↳captain_slot
slate.captain_slot
stringnullable—The captain slot word of the format (CPT on DraftKings, MVP on FanDuel). Null on a format without one.
↳flex_seats
slate.flex_seats
bigintnullable—Roster seats that are not the captain seat, from the slate setting (5 on DraftKings Showdown and on FanDuel single game since 2025). The FLEX ownership of one contest sums to 100 x flex_seats percent.
↳games
slate.games
list—The slate's games.
↳game_id
slate.games[].game_id
bigint—nfl.games id.
↳away
slate.games[].away
stringnullable—Away team abbreviation.
↳home
slate.games[].home
stringnullable—Home team abbreviation.
↳kickoff
slate.games[].kickoff
stringnullable—Kickoff (ISO 8601, UTC).
source
string—The projection source of every value (always STAT_API_LATEST).
model
stringnullable—The learned model label of the served rows (`stats.ownership_model`, e.g. single_hgb@19d12bd6d309). Null when no rows are served.
as_of
stringnullable—The newest write time of the served rows (ISO 8601, UTC). Null when no rows are served.
reason
stringnullable—Why `contests` and `groups` are empty (an in-game format, no STAT_API_LATEST source for the format, no learned rows yet, or a slate of another league than NFL, which this board does not serve). Null when contests are served.
access
object—What this caller sees.
↳plan
access.plan
string—pro (every contest and player), primetime (every contest and player for every caller, on a TNF or MNF game's single-game slate), featured (the free contests with the 5 featured players, on a pre-game single-game slate) or preview (the free contests with 5 players).
↳players_total
access.players_total
bigint—Players on the board.
↳players_shown
access.players_shown
bigint—Players in `players`.
default_contest
bigintnullable—The contest the tool opens on (Frank 2026-10-01): the biggest prize pool, the first of `contests`. Null without a contest.
default_compare
bigintnullable—The contest each value compares with (Frank 2026-10-01): the biggest cash game (contest_type 1), by prize pool, then max_entries, then id. Null when the slate has no cash contest.
contests
list—The lobby, the biggest prize pool first, then the largest max_entries, then the lowest id. With DFS access every contest of the slate with learned rows (no qualifier, no cancelled contest). Without it only the free contests: the 5 biggest prize pools of the slate, in the same order. The page filters them All, Cash or GPP and shows 5 of each with DFS access.
↳id
contests[].id
bigint—dfs.contests id (the `contest` and `compare` parameter).
↳external_id
contests[].external_id
bigint—Operator contest ID.
↳name
contests[].name
string—Contest name.
↳prize_pool
contests[].prize_pool
decimal—Prize pool, in dollars.
↳entry_fee
contests[].entry_fee
decimal—Entry fee, in dollars.
↳entries
contests[].entries
bigint—Entries (entry_count) when last read.
↳max_entries
contests[].max_entries
bigint—Maximum entries.
↳max_entries_per_user
contests[].max_entries_per_user
bigint—Maximum entries per user.
↳kind
contests[].kind
string—cash (contest_type 1) or gpp, the same rule as the groups.
↳entry_type
contests[].entry_type
stringnullable—GPP only: single_entry (max_entries_per_user 1) or multi_entry. Null for cash.
↳tier
contests[].tier
string—Size tier by max_entries (the tiers of the groups).
↳group
contests[].group
string—The key of the contest's group in `groups`.
↳prize_rank
contests[].prize_rank
bigint—The contest's place among every contest of the slate (1 = the biggest prize pool). A caller without DFS access sees the ranks of the free contests, 1-5 always among them.
↳same_terms
contests[].same_terms
bigint—How many other contests of the slate share the model's contest terms (archetype, max_entries, entry fee, max entries per user), so the same values.
↳open
contests[].open
boolean—True when this caller may see the contest's values. Always true, since a caller without DFS access gets only the free contests.
contest
objectnullable—The values of the selected contest (`?contest=`, default `default_contest`). Null without a contest.
↳id
contest.id
bigint—dfs.contests id.
↳locked
contest.locked
boolean—True when this caller may not see the contest's values. A locked contest sends no player and no position total.
↳reason
contest.reason
stringnullable—Why the contest is locked, and the plan that opens it. Null when it is open.
↳players
contest.players
list—The shown players (all with DFS access, else the 5 featured players or the 5-row preview) with a value in the contest, the highest total first. Empty when locked.
↳player_id
contest.players[].player_id
bigintnullable—nfl.players id (the `player_id` of `players`).
↳captain_pct
contest.players[].captain_pct
decimalnullable—Captain ownership in the contest, in percent (the stored projected_ownership of the captain row x 100).
↳flex_pct
contest.players[].flex_pct
decimalnullable—FLEX ownership in the contest, in percent.
↳seats
contest.players[].seats
list—On a slate with boost seats (FanDuel's old single game: MVP 2x, STAR 1.5x, PRO 1.2x and FLEX), one entry per seat. Empty on any other slate.
↳seat
contest.players[].seats[].seat
string—The seat (MVP, STAR, PRO or FLEX).
↳pct
contest.players[].seats[].pct
decimalnullable—The seat's share, in percent. Null when the player has no row for the seat.
↳total_pct
contest.players[].total_pct
decimalnullable—captain_pct + flex_pct, plus the STAR and PRO seats on a slate with boost seats (the sum of `seats`).
↳captain_rate
contest.players[].captain_rate
decimalnullable—captain_pct / total_pct (0-1). Null when the total is 0 or a value is missing.
↳captain_rank
contest.players[].captain_rank
bigintnullable—Rank of the captain ownership among all players of the contest (1 = most owned; ties share a rank).
↳flex_rank
contest.players[].flex_rank
bigintnullable—Rank of the FLEX ownership among all players of the contest.
↳actual_captain_pct
contest.players[].actual_captain_pct
decimalnullable—After the contest is final: the field's actual captain (CPT or MVP) ownership of the player in this contest, in percent (GET /api/v1/dfs/contests/{contest_id}/ownership x 100; 0 when no lineup used the seat). Null on a classic contest, and while `actual_status` is not `served`.
↳actual_flex_pct
contest.players[].actual_flex_pct
decimalnullable—After the contest is final: the field's actual FLEX ownership in percent; on a classic contest the player's one actual ownership. Null while `actual_status` is not `served`.
↳actual_total_pct
contest.players[].actual_total_pct
decimalnullable—After the contest is final: the field's actual ownership of the player in any seat, in percent. Null while `actual_status` is not `served`.
↳position_totals
contest.position_totals
object—The contest's ownership summed by real position over every player of the contest (also the players not shown), in percent. Captain sums to about 100, FLEX to about 100 x flex_seats. Both maps are empty when locked.
↳captain
contest.position_totals.captain
object—Real position (QB, RB, WR, TE, K, DST, D) to the sum of its captain ownership.
↳flex
contest.position_totals.flex
object—Real position to the sum of its FLEX ownership.
↳seats
contest.position_totals.seats
object—On a slate with boost seats: seat (MVP, STAR, PRO, FLEX) to real position to the sum of its share. Empty on any other slate.
↳actual_status
contest.actual_status
stringnullable—The contest's actual ownership: `served` when its players carry it; `pro_required` when the caller's plan does not open the results of this contest (a marquee contest's are free to everyone); else the reason of GET /api/v1/dfs/contests/{contest_id}/ownership (`contest_not_final`, `in_game_format`, `league_not_computed`, `no_lineups`, `actuals_not_recomputed`). Null before the slate is final, and on a locked contest.
compare
objectnullable—The values of the compare contest (`?compare=`, default `default_compare`), the same shape as `contest`. Null when the slate has no cash contest and none is asked.
↳id
compare.id
bigint—dfs.contests id.
↳locked
compare.locked
boolean—True when this caller may not see the contest's values. A locked contest sends no player and no position total.
↳reason
compare.reason
stringnullable—Why the contest is locked, and the plan that opens it. Null when it is open.
↳players
compare.players
list—The shown players (all with DFS access, else the 5 featured players or the 5-row preview) with a value in the contest, the highest total first. Empty when locked.
↳player_id
compare.players[].player_id
bigintnullable—nfl.players id (the `player_id` of `players`).
↳captain_pct
compare.players[].captain_pct
decimalnullable—Captain ownership in the contest, in percent (the stored projected_ownership of the captain row x 100).
↳flex_pct
compare.players[].flex_pct
decimalnullable—FLEX ownership in the contest, in percent.
↳seats
compare.players[].seats
list—On a slate with boost seats (FanDuel's old single game: MVP 2x, STAR 1.5x, PRO 1.2x and FLEX), one entry per seat. Empty on any other slate.
↳seat
compare.players[].seats[].seat
string—The seat (MVP, STAR, PRO or FLEX).
↳pct
compare.players[].seats[].pct
decimalnullable—The seat's share, in percent. Null when the player has no row for the seat.
↳total_pct
compare.players[].total_pct
decimalnullable—captain_pct + flex_pct, plus the STAR and PRO seats on a slate with boost seats (the sum of `seats`).
↳captain_rate
compare.players[].captain_rate
decimalnullable—captain_pct / total_pct (0-1). Null when the total is 0 or a value is missing.
↳captain_rank
compare.players[].captain_rank
bigintnullable—Rank of the captain ownership among all players of the contest (1 = most owned; ties share a rank).
↳flex_rank
compare.players[].flex_rank
bigintnullable—Rank of the FLEX ownership among all players of the contest.
↳actual_captain_pct
compare.players[].actual_captain_pct
decimalnullable—After the contest is final: the field's actual captain (CPT or MVP) ownership of the player in this contest, in percent (GET /api/v1/dfs/contests/{contest_id}/ownership x 100; 0 when no lineup used the seat). Null on a classic contest, and while `actual_status` is not `served`.
↳actual_flex_pct
compare.players[].actual_flex_pct
decimalnullable—After the contest is final: the field's actual FLEX ownership in percent; on a classic contest the player's one actual ownership. Null while `actual_status` is not `served`.
↳actual_total_pct
compare.players[].actual_total_pct
decimalnullable—After the contest is final: the field's actual ownership of the player in any seat, in percent. Null while `actual_status` is not `served`.
↳position_totals
compare.position_totals
object—The contest's ownership summed by real position over every player of the contest (also the players not shown), in percent. Captain sums to about 100, FLEX to about 100 x flex_seats. Both maps are empty when locked.
↳captain
compare.position_totals.captain
object—Real position (QB, RB, WR, TE, K, DST, D) to the sum of its captain ownership.
↳flex
compare.position_totals.flex
object—Real position to the sum of its FLEX ownership.
↳seats
compare.position_totals.seats
object—On a slate with boost seats: seat (MVP, STAR, PRO, FLEX) to real position to the sum of its share. Empty on any other slate.
↳actual_status
compare.actual_status
stringnullable—The contest's actual ownership: `served` when its players carry it; `pro_required` when the caller's plan does not open the results of this contest (a marquee contest's are free to everyone); else the reason of GET /api/v1/dfs/contests/{contest_id}/ownership (`contest_not_final`, `in_game_format`, `league_not_computed`, `no_lineups`, `actuals_not_recomputed`). Null before the slate is final, and on a locked contest.
across
object—The biggest contests side by side (the tool's Across contests tab).
↳contest_ids
across.contest_ids
list<L>—The contests in lobby order. With DFS access the 5 biggest GPP contests and the 5 biggest cash games (the page's three filters); without it the free contests, so the ids of `contests`.
↳values
across.values
object—Contest id to player id to [captain_pct, flex_pct], for the open contests of `contest_ids` and the shown players with a value. A locked contest is left out.
↳seats
across.seats
object—On a slate with boost seats: contest id to player id to seat (MVP, STAR, PRO, FLEX) to its share, for the same contests and players as `values`. Empty on any other slate.
default_group
stringnullable—The group key the tool opened first before the lobby (Frank 2026-10-01, the largest GPP): the GPP group whose representative contest comes first by the representative order (paid, then the largest max_entries, then entries, prize pool, id). Null without a GPP group.
groups
list—The contest groups, cash first, then single-entry GPP, then multi-entry GPP, each by size tier. DFS access only; empty without it.
↳key
groups[].key
string—The group key: kind, entry type (GPP only) and size tier, e.g. cash:3-100, gpp:single_entry:1k-10k, gpp:multi_entry:100k+.
↳kind
groups[].kind
string—cash or gpp, as the operator labels the contest (Frank 2026-10-01): contest_type 1 is cash, every other type gpp. A DraftKings Triple Up (contest_type 0) is gpp, although the model's archetype calls it cash. Only a contest without a contest_type falls back to the model's name rule (Double Up, 50/50, H2H, Triple Up).
↳entry_type
groups[].entry_type
stringnullable—GPP only: single_entry (max_entries_per_user 1) or multi_entry. Null for cash.
↳size_tier
groups[].size_tier
string—Size tier by max_entries.
↳contest_count
groups[].contest_count
bigint—Contests of the slate in this group that have learned rows.
↳contest
groups[].contest
object—The representative contest, whose stored values the group shows: paid first, then the largest max_entries, then the most entries, then the largest prize pool, then the lowest id.
↳contest_id
groups[].contest.contest_id
bigint—dfs.contests id.
↳external_id
groups[].contest.external_id
bigint—Operator contest ID.
↳name
groups[].contest.name
string—Contest name.
↳entries
groups[].contest.entries
bigint—Entries (entry_count) when last read.
↳max_entries
groups[].contest.max_entries
bigint—Maximum entries (the model's size feature).
↳max_entries_per_user
groups[].contest.max_entries_per_user
bigint—Maximum entries per user.
↳entry_fee_cents
groups[].contest.entry_fee_cents
bigint—Entry fee in cents.
↳prize_pool_cents
groups[].contest.prize_pool_cents
bigint—Prize pool in cents.
↳archetype
groups[].contest.archetype
string—The stored contest_archetype of its rows, else the model's rule.
↳position_totals
groups[].position_totals
list—The group's ownership summed by real position, captain and FLEX apart, over every player of the representative contest (also the players a preview does not list). Captain sums to about 100, FLEX to about 100 x flex_seats.
↳position
groups[].position_totals[].position
string—Real position (QB, RB, WR, TE, K, DST on DraftKings, D on FanDuel).
↳captain_pct
groups[].position_totals[].captain_pct
decimal—Sum of the captain ownership, in percent.
↳flex_pct
groups[].position_totals[].flex_pct
decimal—Sum of the FLEX ownership, in percent.
↳seats
groups[].position_totals[].seats
list—On a slate with boost seats, each seat's sum (MVP, STAR, PRO, FLEX). Empty on any other slate.
↳seat
groups[].position_totals[].seats[].seat
string—The seat (MVP, STAR, PRO or FLEX).
↳pct
groups[].position_totals[].seats[].pct
decimalnullable—The seat's share, in percent. Null when the player has no row for the seat.
players
list—The players, highest peak total first (all with DFS access, else the 5 featured players or the 5-row preview). The order is the same for every caller, so the first 5 of a Pro answer are the featured players.
↳player_id
players[].player_id
bigintnullable—nfl.players id.
↳name
players[].name
stringnullable—Player name.
↳team
players[].team
stringnullable—Team abbreviation.
↳position
players[].position
stringnullable—Real position (QB, RB, WR, TE, K, DST or D).
↳captain
players[].captain
objectnullable—The captain (CPT or MVP) slot. Null on a format without one.
↳slate_player_id
players[].captain.slate_player_id
bigint—dfs.slate_players id of this slot.
↳salary
players[].captain.salary
integernullable—Salary of this slot.
↳projected_points
players[].captain.projected_points
decimalnullable—STAT_API_LATEST projected fantasy points of this slot.
↳points_per_1k
players[].captain.points_per_1k
decimalnullable—Projected points per $1,000 of salary.
↳floor
players[].captain.floor
decimalnullable—The projection's floor for this slot, its 15th percentile (the floor of GET /api/v1/dfs/slates/{slate_id}/projections).
↳ceiling
players[].captain.ceiling
decimalnullable—The projection's ceiling for this slot, its 85th percentile (the ceiling of GET /api/v1/dfs/slates/{slate_id}/projections).
↳flex
players[].flex
objectnullable—The FLEX slot.
↳slate_player_id
players[].flex.slate_player_id
bigint—dfs.slate_players id of this slot.
↳salary
players[].flex.salary
integernullable—Salary of this slot.
↳projected_points
players[].flex.projected_points
decimalnullable—STAT_API_LATEST projected fantasy points of this slot.
↳points_per_1k
players[].flex.points_per_1k
decimalnullable—Projected points per $1,000 of salary.
↳floor
players[].flex.floor
decimalnullable—The projection's floor for this slot, its 15th percentile (the floor of GET /api/v1/dfs/slates/{slate_id}/projections).
↳ceiling
players[].flex.ceiling
decimalnullable—The projection's ceiling for this slot, its 85th percentile (the ceiling of GET /api/v1/dfs/slates/{slate_id}/projections).
↳seats
players[].seats
list—On a slate with boost seats (FanDuel's old single game: MVP 2x, STAR 1.5x, PRO 1.2x and FLEX), the slot of each seat the player holds, in that order: the seat and the fields of a slot (slate_player_id, salary, projected_points, points_per_1k, floor, ceiling). `captain` is the MVP seat and `flex` the FLEX seat. Empty on any other slate.
↳seat
players[].seats[].seat
string—The seat (MVP, STAR, PRO or FLEX).
↳slate_player_id
players[].seats[].slate_player_id
bigint—dfs.slate_players id of this seat.
↳salary
players[].seats[].salary
integernullable—Salary of this seat.
↳projected_points
players[].seats[].projected_points
decimalnullable—STAT_API_LATEST projected fantasy points of this seat.
↳points_per_1k
players[].seats[].points_per_1k
decimalnullable—Projected points per $1,000 of salary.
↳floor
players[].seats[].floor
decimalnullable—The projection's floor for this seat, its 15th percentile.
↳ceiling
players[].seats[].ceiling
decimalnullable—The projection's ceiling for this seat, its 85th percentile.
↳projected_minutes
players[].projected_minutes
decimalnullable—The minutes we project the player to play, on an NBA slate (the value of the NBA projections). Null on an NFL slate.
↳projection
players[].projection
objectnullable—The essential fields of the player's projection: from the flat row (`format=flat`) GET /api/v1/dfs/slates/{slate_id}/projections serves for the player's FLEX (not multiplied) seat, as it stood at kickoff (`mode=pre`), with that route's keys and values. NBA: opponent, std_dev, usage_rate, play_probability, start_probability, pts, reb, ast, stl, blk, tov, fg3m, double_double_probability, triple_double_probability. NFL: opponent, std_dev, projected_team_snaps (the team's offensive snaps), projected_snaps (the player's), passing_attempts, passing_completions, passing_yds, passing_tds, interceptions_thrown, carries, rushing_yds, rushing_tds, targets, receptions, receiving_yds, receiving_tds. Null when the route has no row for the player. The players CSV (csv=players) adds one `projection.<field>` column per field.
↳actual
players[].actual
objectnullable—The player's actual result, once the stats services hold one (null before his game).
↳fantasy_pts
players[].actual.fantasy_pts
decimalnullable—The fantasy points he scored on the slate's scoring (GET /api/v1/dfs/player_stats `fantasy_pts` of his FLEX row).
↳minutes
players[].actual.minutes
decimalnullable—The minutes he played, on an NBA slate (GET /api/v1/nba/game_player_stats `minutes`). Null on NFL.
↳peak_total_pct
players[].peak_total_pct
decimalnullable—The highest total ownership in any free contest (the 5 biggest prize pools of the slate), in percent. The order of players and the featured pick, the same for every caller.
↳captain_spread
players[].captain_spread
objectnullable—Max minus min of the captain ownership across the groups, with the groups at both ends. Null without a value, and always null without DFS access (no groups).
↳spread_pct
players[].captain_spread.spread_pct
decimal—high_pct minus low_pct.
↳high_group
players[].captain_spread.high_group
string—The group key with the highest value (the first in group order on a tie).
↳high_pct
players[].captain_spread.high_pct
decimal—The highest value, in percent.
↳low_group
players[].captain_spread.low_group
string—The group key with the lowest value (the first in group order on a tie).
↳low_pct
players[].captain_spread.low_pct
decimal—The lowest value, in percent.
↳flex_spread
players[].flex_spread
objectnullable—The same for the FLEX ownership.
↳spread_pct
players[].flex_spread.spread_pct
decimal—high_pct minus low_pct.
↳high_group
players[].flex_spread.high_group
string—The group key with the highest value (the first in group order on a tie).
↳high_pct
players[].flex_spread.high_pct
decimal—The highest value, in percent.
↳low_group
players[].flex_spread.low_group
string—The group key with the lowest value (the first in group order on a tie).
↳low_pct
players[].flex_spread.low_pct
decimal—The lowest value, in percent.
↳by_group
players[].by_group
list—The player's values in each group, in the order of `groups`. Empty without DFS access.
↳key
players[].by_group[].key
string—The group key.
↳captain_pct
players[].by_group[].captain_pct
decimalnullable—Captain ownership in the representative contest, in percent (the stored projected_ownership of the captain row x 100).
↳flex_pct
players[].by_group[].flex_pct
decimalnullable—FLEX ownership in the representative contest, in percent.
↳seats
players[].by_group[].seats
list—On a slate with boost seats (FanDuel's old single game: MVP 2x, STAR 1.5x, PRO 1.2x and FLEX), one entry per seat. Empty on any other slate.
↳seat
players[].by_group[].seats[].seat
string—The seat (MVP, STAR, PRO or FLEX).
↳pct
players[].by_group[].seats[].pct
decimalnullable—The seat's share, in percent. Null when the player has no row for the seat.
↳total_pct
players[].by_group[].total_pct
decimalnullable—captain_pct + flex_pct, plus the STAR and PRO seats on a slate with boost seats (the sum of `seats`).
↳captain_rate
players[].by_group[].captain_rate
decimalnullable—captain_pct / total_pct (0-1). Null when the total is 0 or a value is missing.
↳captain_rank
players[].by_group[].captain_rank
bigintnullable—Rank of the captain ownership among all players of the group (1 = most owned; ties share a rank).
↳flex_rank
players[].by_group[].flex_rank
bigintnullable—Rank of the FLEX ownership among all players of the group.
_metadata
object—Where the values come from, and on a gated answer the plan that opens the rest.
↳contest_ownership
_metadata.contest_ownership
stringnullable—persisted (the stored rows of the learned model) when contests are served, else null.
↳required_tier
_metadata.required_tier
stringnullable—Sent only when players or contests are held back - pro.
↳message
_metadata.message
stringnullable—Sent only when players or contests are held back - what the plan opens.
↳total_actual_records
_metadata.total_actual_records
bigintnullable—Sent only when players or contests are held back - the players on the board.
GET/api/v1/dfs/slates/{slate_id}/projections
Parameters
slate_idpathbigintrequired
Internal STAT-API slate ID (references dfs.slates.id). Operator contest group external IDs (e.g. 153770) are not accepted; query GET /api/v1/dfs/slates to resolve internal slate IDs.
sourcequerystringoptionaldefault STAT_API_LATEST
Projection source name. The default, STAT_API_LATEST, is always the newest stat-api engine; its version is in `_metadata.engine_version`. STAT_API (the 2.1 engine) is deprecated. A request for STAT_API, or with no source, gets STAT_API_LATEST on every slate where STAT_API_LATEST has projections, and STAT_API on any other slate (`_metadata.fallback` is then true). A request for STAT_API_LATEST by name never falls back.
positionquerystringoptional
Roster position filter (e.g. QB, RB, WR, TE, DST, K, or comma-separated list).
formatquerystringoptionaldefault json
Row format: 'json' (default) sends the nested rows in `projections`; 'flat' sends the flat rows in `player_stats`; 'csv' returns the flat rows as text/csv, one column per `player_stats` field, then one per `enrich` tag.
enrichquerystringoptional
Comma-separated tags that join related data onto each player row, the same tags as on /dfs/slate_players: dfs.player_stats, nfl.games, nfl.teams, nfl.projected_player_snaps (or dfs.*, nfl.*, *; a sub-path such as nfl.games.opponent.abbreviation picks one field). Each tag adds one key (one CSV column) named by its table. mode=pre refuses dfs.player_stats, which is post-game data.
modequerystringoptionaldefault pre
Time wall: 'pre' (default) returns the post-game fields (actual_fantasy_pts, actual_ownership, actual_rank, leverage_delta) as null; 'full' includes them. See the Data timing guide.
projection_idquerybigintoptional
NBA slates only: a version of our NBA engine (main.projections id). Default: its active version. An NFL slate answers 400 with this parameter.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/dfs/slates/676551/projections'
Responses
200DFS slate player projections, distributions, and betting propsapplication/jsonshow example ▸
400Invalid slate ID format, an unknown format, or an enrich tag the time wall refuses
404Slate not found, or its format has no projection source (in-game formats answer 200 with projection_status none_by_design, a slate with no player pool 200 with no_player_pool)
Response Schema(8 fields)show schema ▸
FieldTypeReferencesDescription
projection_status
string—Whether the slate's format has projections. `available`: the format has a projection source, and the arrays hold its rows (a player without a projection has null values). `none_by_design`: the format has no projections by decision (the in-game formats: DraftKings In-Game Showdown H2 and Q4, FanDuel single game 2nd half and 4th quarter); `source` is null and the arrays are empty. `no_player_pool`: the slate has no player pool yet, so there is nothing to project; `source` is null and the arrays are empty. `not_projected_yet` (NBA): no player of the slate has a projection of our NBA engine yet. A game's first projection appears on game day, once its betting line and roster are in, and preseason games are never projected; the arrays are empty. `not_projected` (NBA): every game of the slate tipped with no projection of our NBA engine (the games before the engine ran), so none will come; the arrays are empty. `league_not_projected`: our engines do not project the slate's league (MLB, NHL, golf); the arrays are empty.
slate
object—Contest slate summary.
↳id
slate.id
bigint—Slate ID.
↳external_id
slate.external_id
string—Operator-specific contest slate identifier.
↳operator
slate.operator
string—DFS operator name (DraftKings, FanDuel, Yahoo).
↳actual_ownership_contest_id
slate.actual_ownership_contest_id
bigintnullable—The one contest (dfs.contests id) whose actual_ownership the player rows of this slate carry: the contest with actuals and the biggest prize pool, then the most entries, then the lowest id. Absent when no contest of the slate has actuals. The contest answer never uses this value.
↳league
slate.league
stringnullable—The slate's league (nfl, nba, mlb, nhl, golf). It decides which row fields the answer carries: the fields marked NBA only come on NBA rows, every other row field on NFL rows.
source
objectnullable—Projection source metadata. Null when projection_status is none_by_design or no_player_pool, and on every NBA answer (our NBA engine has no stored source row; `_metadata.served_source` names it, STAT_API_NBA).
↳id
source.id
bigint—Source ID.
↳slate_setting_id
source.slate_setting_id
bigint—Slate setting ID.
↳name
source.name
string—Projection model name.
↳source_type
source.source_type
integer—Source type code.
↳updated_at
source.updated_at
string—Timestamp of projection generation.
computed
object—Projection coverage and calculation summary.
↳eligible_players
computed.eligible_players
bigint—Total eligible players in contest pool.
↳projected_players
computed.projected_players
bigint—Number of players with generated projections.
↳missing_players
computed.missing_players
bigint—Unprojected player count.
↳coverage
computed.coverage
decimal—Percentage of pool successfully projected.
↳total_teams
computed.total_teams
integernullable—Total active teams projected on the slate.
↳position
computed.position
stringnullable—Roster position filter applied to request.
↳total_roster_mass
computed.total_roster_mass
decimalnullable—Total roster mass.
↳position_ownership_totals
computed.position_ownership_totals
objectnullable—Aggregated projected ownership percentage by position group across the slate.
↳refused_seats
computed.refused_seats
listnullable—NBA only: the seats that have a projection but are left out of the rows, each with the reason (never guessed). Absent on NFL answers.
↳slate_player_id
computed.refused_seats[].slate_player_id
bigint—The seat (dfs.slate_players.id).
↳position
computed.refused_seats[].position
stringnullable—The seat's position as the operator names it.
↳reason
computed.refused_seats[].reason
string—no_seat_multiplier: a CPT, MVP, STAR or PRO seat whose slate setting states no score multiplier. no_scoring_rules: no scoring table of the operator is in force at the game's time. bad_stat_line: the player's stat line cannot be scored.
player_stats
list—The player projections as flat rows, one per slate player. Sent with format=flat. format=csv returns these rows as CSV: one column per field below, in this order, then one column per `enrich` tag. An NFL row sends every field that is not marked NBA only; an NBA row sends the shared fields and the fields marked NBA only, in this order, and no NFL-only field. A value the projection does not have is null.
↳id
player_stats[].id
bigint—Slate player ID (dfs.slate_players.id).
↳slate_player_id
player_stats[].slate_player_id
bigint—Slate player ID (dfs.slate_players.id), the same value as id.
↳league_id
player_stats[].league_id
bigint—League ID.
↳slate_id
player_stats[].slate_id
bigint—Slate ID.
↳operator_id
player_stats[].operator_id
bigint—Operator ID (1 DraftKings, 2 FanDuel, 3 Yahoo).
↳scoring_format
player_stats[].scoring_format
string—The slate's scoring format: showdown when the pool has captain (CPT/MVP) rows, else classic.
↳player_id
player_stats[].player_id
bigintnullable—Canonical player ID (nfl.players.id).
↳operator_player_id
player_stats[].operator_player_id
stringnullable—Operator athlete ID (dfs.slate_players.external_id).
↳operator_player_export_id
player_stats[].operator_player_export_id
stringnullable—Operator export / draftable ID for lineup CSV uploads (dfs.slate_players.export_id).
↳slate_game_id
player_stats[].slate_game_id
bigintnullable—Slate game ID (dfs.slate_games.id).
↳game_id
player_stats[].game_id
bigintnullable—Canonical game ID (nfl.games.id).
↳team_id
player_stats[].team_id
bigintnullable—Team ID (nfl.teams.id).
↳slate_date
player_stats[].slate_date
stringnullable—Slate date (YYYY-MM-DD).
↳salary
player_stats[].salary
integernullable—Contest player salary in currency units.
↳position
player_stats[].position
stringnullable—Contest roster position (e.g. QB, RB, WR, TE, DST, K, CPT).
↳name
player_stats[].name
stringnullable—Player name.
↳team
player_stats[].team
stringnullable—Team abbreviation.
↳opponent
player_stats[].opponent
stringnullable—Opponent team abbreviation.
↳gsis
player_stats[].gsis
stringnullable—NFL GSIS player ID.
↳fantasy_pts
player_stats[].fantasy_pts
decimalnullable—Projected fantasy points under the slate's scoring rules. Null when the player has no projection.
↳floor
player_stats[].floor
decimalnullable—Projected 10th percentile fantasy point outcome.
↳ceiling
player_stats[].ceiling
decimalnullable—Projected 90th percentile fantasy point outcome.
↳std_dev
player_stats[].std_dev
decimalnullable—Standard deviation of the projected fantasy point distribution.
↳value
player_stats[].value
decimalnullable—Projected fantasy points per $1k of salary.
↳quantiles
player_stats[].quantiles
objectnullable—Quantile outcomes of the simulated fantasy point distribution (p05 to p95).
↳passing_yds_fpts
player_stats[].passing_yds_fpts
decimalnullable—Fantasy points from projected passing yards.
↳passing_td_fpts
player_stats[].passing_td_fpts
decimalnullable—Fantasy points from projected passing touchdowns.
↳interception_fpts
player_stats[].interception_fpts
decimalnullable—Fantasy points lost to projected interceptions.
↳passing_2pt_conversion_fpts
player_stats[].passing_2pt_conversion_fpts
decimalnullable—Fantasy points from 2-point passing conversions (0 when the player has a projection; the model projects none).
↳passing_bonus_fpts
player_stats[].passing_bonus_fpts
decimalnullable—Fantasy bonus points for milestone passing (DraftKings 300+ yards).
↳rushing_yds_fpts
player_stats[].rushing_yds_fpts
decimalnullable—Fantasy points from projected rushing yards.
↳rushing_td_fpts
player_stats[].rushing_td_fpts
decimalnullable—Fantasy points from projected rushing touchdowns.
↳fumble_lost_fpts
player_stats[].fumble_lost_fpts
decimalnullable—Fantasy points lost to projected lost fumbles.
↳rushing_2pt_conversion_fpts
player_stats[].rushing_2pt_conversion_fpts
decimalnullable—Fantasy points from 2-point rushing conversions (0 when the player has a projection; the model projects none).
↳rushing_bonus_fpts
player_stats[].rushing_bonus_fpts
decimalnullable—Fantasy bonus points for milestone rushing (DraftKings 100+ yards).
↳receiving_yds_fpts
player_stats[].receiving_yds_fpts
decimalnullable—Fantasy points from projected receiving yards.
↳reception_fpts
player_stats[].reception_fpts
decimalnullable—Fantasy points from projected receptions (DraftKings full PPR, FanDuel half PPR).
↳receiving_td_fpts
player_stats[].receiving_td_fpts
decimalnullable—Fantasy points from projected receiving touchdowns.
↳receiving_2pt_conversion_fpts
player_stats[].receiving_2pt_conversion_fpts
decimalnullable—Fantasy points from 2-point receiving conversions (0 when the player has a projection; the model projects none).
↳receiving_bonus_fpts
player_stats[].receiving_bonus_fpts
decimalnullable—Fantasy bonus points for milestone receiving (DraftKings 100+ yards).
↳passing_yds
player_stats[].passing_yds
decimalnullable—Projected passing yards (QB, or a player with 1+ projected pass attempt).
↳passing_tds
player_stats[].passing_tds
decimalnullable—Projected passing touchdowns.
↳interceptions_thrown
player_stats[].interceptions_thrown
decimalnullable—Projected interceptions thrown.
↳rushing_yds
player_stats[].rushing_yds
decimalnullable—Projected rushing yards.
↳rushing_tds
player_stats[].rushing_tds
decimalnullable—Projected rushing touchdowns.
↳rushing_fumbles_lost
player_stats[].rushing_fumbles_lost
decimalnullable—Projected lost fumbles (0 when the player has a projection and the model gives none).
↳receptions
player_stats[].receptions
decimalnullable—Projected receptions.
↳receiving_yds
player_stats[].receiving_yds
decimalnullable—Projected receiving yards.
↳receiving_tds
player_stats[].receiving_tds
decimalnullable—Projected receiving touchdowns.
↳carries
player_stats[].carries
decimalnullable—Projected rushing attempts.
↳targets
player_stats[].targets
decimalnullable—Projected receiving targets.
↳catch_rate
player_stats[].catch_rate
decimalnullable—Projected receptions per target, as a percentage (0-100).
↳passing_attempts
player_stats[].passing_attempts
decimalnullable—Projected pass attempts.
↳passing_completions
player_stats[].passing_completions
decimalnullable—Projected pass completions.
↳snap_pct
player_stats[].snap_pct
decimalnullable—Projected offensive snap share, as a percentage (0-100).
↳projected_snap_share
player_stats[].projected_snap_share
decimalnullable—Projected offensive snap share, as a fraction (0-1).
↳projected_snaps
player_stats[].projected_snaps
decimalnullable—Projected offensive snaps.
↳projected_team_snaps
player_stats[].projected_team_snaps
decimalnullable—Projected team offensive snaps.
↳player_game_note
player_stats[].player_game_note
stringnullable—Game note for the player from the projection model.
↳projected_ownership
player_stats[].projected_ownership
decimalnullable—Projected tournament roster share, as a fraction (0-1).
↳ownership_pct
player_stats[].ownership_pct
decimalnullable—Projected tournament roster share, as a percentage (e.g. 15.5 for 15.5%).
↳ownership_volatility
player_stats[].ownership_volatility
decimalnullable—Standard deviation of the projected ownership percentage across simulated crowds.
↳ownership_low
player_stats[].ownership_low
decimalnullable—10th percentile projected ownership percentage.
↳ownership_high
player_stats[].ownership_high
decimalnullable—90th percentile projected ownership percentage.
↳chalk_fragility
player_stats[].chalk_fragility
decimalnullable—Chalk fragility index in [0, 1] (0 = stable across cap allocations, 1 = fragile).
↳cash_projected_ownership
player_stats[].cash_projected_ownership
decimalnullable—Projected cash-game (double-up, 50/50) roster share, as a fraction (0-1). Null on contest projections.
↳cash_ownership_pct
player_stats[].cash_ownership_pct
decimalnullable—Projected cash-game roster share, as a percentage. Null on contest projections.
↳captain_ownership
player_stats[].captain_ownership
decimalnullable—Showdown: projected ownership percentage of this player's captain (CPT/MVP) row. Null on classic slates.
↳flex_ownership
player_stats[].flex_ownership
decimalnullable—Showdown: projected ownership percentage of this player's FLEX row. Null on classic slates.
↳total_ownership
player_stats[].total_ownership
decimalnullable—Showdown: captain plus FLEX ownership percentage. Null on classic slates.
↳captain_ratio
player_stats[].captain_ratio
decimalnullable—Showdown: captain ownership divided by total ownership (0-1). Null on classic slates.
↳play_profile
player_stats[].play_profile
objectnullable—Play profile with upside and safety metrics, boom/bust probabilities, archetype and analysis.
↳upside_tier
player_stats[].upside_tier
stringnullable—Salary-adjusted upside tier (ELITE, BOOM, STEADY, LOW_CAP, NONE).
↳ceiling_multiplier
player_stats[].ceiling_multiplier
decimalnullable—Ceiling per $1k of salary.
↳boom_probability
player_stats[].boom_probability
decimalnullable—Probability of scoring at least the boom multiple of salary.
↳cash_safety_tier
player_stats[].cash_safety_tier
stringnullable—Salary-adjusted cash safety tier (CORE_CASH, CASH_VIABLE, MODERATE, HIGH_RISK, UNVIABLE).
↳floor_multiplier
player_stats[].floor_multiplier
decimalnullable—Floor per $1k of salary.
↳bust_probability
player_stats[].bust_probability
decimalnullable—Probability of scoring under 1.5x salary.
↳play_archetype
player_stats[].play_archetype
stringnullable—Archetype (GPP_BOOM, CORE_CASH, LEVERAGE, FRAGILE_CHALK, BALANCED, LOW_CAP, OUT_INACTIVE, or the model's tactical label).
↳leverage_factor
player_stats[].leverage_factor
decimalnullable—Tournament leverage factor (ceiling_multiplier / max(0.02, ownership)).
↳tactical_tag
player_stats[].tactical_tag
stringnullable—Tactical play tag from the projection model (e.g. GOOD_CHALK, FRAGILE_CHALK, LEVERAGE).
↳fade_leverage_score
player_stats[].fade_leverage_score
decimalnullable—Score for fading the player in tournaments, from the projection model.
↳knapsack_shadow_price
player_stats[].knapsack_shadow_price
decimalnullable—Marginal points per salary dollar at the optimizer's cap constraint, from the projection model.
↳relative_fragility
player_stats[].relative_fragility
decimalnullable—Fragility relative to the player's position peers on the slate, from the projection model.
↳analysis_headline
player_stats[].analysis_headline
stringnullable—One-line summary of the player's role, floor or ceiling.
↳cash_verdict
player_stats[].cash_verdict
stringnullable—Cash-game verdict.
↳gpp_verdict
player_stats[].gpp_verdict
stringnullable—Tournament verdict.
↳vegas_odds
player_stats[].vegas_odds
objectnullable—The player's betting props used as calibration anchors.
↳anytime_td
player_stats[].vegas_odds.anytime_td
integernullable—Anytime touchdown odds (American format).
↳rushing_yards
player_stats[].vegas_odds.rushing_yards
decimalnullable—Rushing yards consensus betting line.
↳receiving_yards
player_stats[].vegas_odds.receiving_yards
decimalnullable—Receiving yards consensus betting line.
↳receptions
player_stats[].vegas_odds.receptions
decimalnullable—Receptions consensus betting line.
↳passing_yards
player_stats[].vegas_odds.passing_yards
decimalnullable—Passing yards consensus betting line.
↳passing_tds
player_stats[].vegas_odds.passing_tds
decimalnullable—Passing touchdowns consensus betting line.
↳dvp_archetype
player_stats[].dvp_archetype
stringnullable—Player usage archetype the defense-vs-position rating uses.
↳dvp_rank
player_stats[].dvp_rank
integernullable—Opponent defense rank against the archetype (1 = best matchup).
↳dvp_rating
player_stats[].dvp_rating
decimalnullable—Defense-vs-position matchup rating.
↳dvp_matchup
player_stats[].dvp_matchup
stringnullable—Matchup label (e.g. Favorable, Neutral, Tough).
↳dvp_explanation
player_stats[].dvp_explanation
stringnullable—Explanation of the defensive matchup.
↳dvp_metrics
player_stats[].dvp_metrics
objectnullable—Defense-vs-position metrics behind the rating.
↳scheme_metrics
player_stats[].scheme_metrics
objectnullable—Defensive scheme indicators behind the rating.
↳last_update_time
player_stats[].last_update_time
timestamptznullable—When the projection last changed (UTC).
↳update_explanation
player_stats[].update_explanation
stringnullable—Why the projection last changed.
↳update_reason
player_stats[].update_reason
objectnullable—Structured reason of the last change.
↳update_history
player_stats[].update_history
list<object>nullable—The last 5 projection changes, oldest first.
↳actual_fantasy_pts
player_stats[].actual_fantasy_pts
decimalnullable—Post-game: fantasy points scored (dfs.player_stats). Null in mode=pre.
↳actual_ownership
player_stats[].actual_ownership
decimalnullable—Post-game: roster share in the slate's largest contest with results, as a fraction (0-1). Null in mode=pre.
↳actual_rank
player_stats[].actual_rank
integernullable—Post-game: the player's rank by actual ownership in the contest (contest projections only). Null in mode=pre.
↳leverage_delta
player_stats[].leverage_delta
decimalnullable—Post-game: actual_ownership minus projected_ownership. Null in mode=pre.
↳status
player_stats[].status
stringnullable—NBA only: the player's status in our NBA game roster (active, questionable, out, ...).
↳seat_multiplier
player_stats[].seat_multiplier
decimalnullable—NBA only: the seat's score multiplier from the slate setting (DraftKings CPT 1.5, FanDuel MVP 1.5); 1 for every other seat. fantasy_pts, floor, ceiling, std_dev and quantiles are already multiplied.
↳chance_5x
player_stats[].chance_5x
decimalnullable—NBA only: chance the seat's points reach 5x salary / 1000, 0 to 1 (see the route description); null without a salary.
↳chance_5x_bound
player_stats[].chance_5x_bound
stringnullable—NBA only: set when chance_5x is a bound, not a value: above_99pct (the chance is 0.99 or more) or below_1pct (0.01 or less).
↳chance_6x
player_stats[].chance_6x
decimalnullable—NBA only: chance the seat's points reach 6x salary / 1000, 0 to 1; null without a salary.
↳chance_6x_bound
player_stats[].chance_6x_bound
stringnullable—NBA only: set when chance_6x is a bound, not a value.
↳minutes_mean
player_stats[].minutes_mean
decimalnullable—NBA only: projected minutes (mean).
↳minutes_std
player_stats[].minutes_std
decimalnullable—NBA only: standard deviation of the projected minutes.
↳minutes_p10
player_stats[].minutes_p10
decimalnullable—NBA only: 10th percentile of the projected minutes.
↳minutes_p25
player_stats[].minutes_p25
decimalnullable—NBA only: 25th percentile of the projected minutes.
↳minutes_p50
player_stats[].minutes_p50
decimalnullable—NBA only: median of the projected minutes.
↳minutes_p75
player_stats[].minutes_p75
decimalnullable—NBA only: 75th percentile of the projected minutes.
↳minutes_p90
player_stats[].minutes_p90
decimalnullable—NBA only: 90th percentile of the projected minutes.
↳usage_rate
player_stats[].usage_rate
decimalnullable—NBA only: projected usage rate, 0 to 1.
↳play_probability
player_stats[].play_probability
decimalnullable—NBA only: chance the player plays, 0 to 1.
↳start_probability
player_stats[].start_probability
decimalnullable—NBA only: chance the player starts, 0 to 1.
↳pts
player_stats[].pts
decimalnullable—NBA only: projected points (the stat).
↳reb
player_stats[].reb
decimalnullable—NBA only: projected rebounds.
↳ast
player_stats[].ast
decimalnullable—NBA only: projected assists.
↳stl
player_stats[].stl
decimalnullable—NBA only: projected steals.
↳blk
player_stats[].blk
decimalnullable—NBA only: projected blocks.
↳fg3m
player_stats[].fg3m
decimalnullable—NBA only: projected three-pointers made.
↳tov
player_stats[].tov
decimalnullable—NBA only: projected turnovers.
↳double_double_probability
player_stats[].double_double_probability
decimalnullable—NBA only: chance of a double-double, 0 to 1.
↳triple_double_probability
player_stats[].triple_double_probability
decimalnullable—NBA only: chance of a triple-double, 0 to 1.
↳profile_id
player_stats[].profile_id
bigintnullable—NBA only: the contest segment (dfs.contest_profiles.id) of the ownership on this row; contest projections only, null on a slate.
↳ownership_model
player_stats[].ownership_model
stringnullable—NBA only: the ownership model that wrote the row's ownership; contest projections only, null on a slate.
teams
listnullable—Team projections and game pace for every team on the slate. Sent with the default format and with format=flat. Null when the team model fails for the slate.
↳team_id
teams[].team_id
bigint—Canonical team ID (references nfl.teams).
↳team_code
teams[].team_code
string—Team abbreviation code (e.g. DET, KC, LAR).
↳opponent_team_id
teams[].opponent_team_id
bigintnullable—Opponent team ID.
↳opponent_team_code
teams[].opponent_team_code
stringnullable—Opponent team abbreviation code.
↳matchup_id
teams[].matchup_id
bigintnullable—Unique slate game matchup identifier.
↳primary_qb_player_id
teams[].primary_qb_player_id
bigintnullable—Projected starting quarterback player ID.
↳total_offensive_snaps
teams[].total_offensive_snaps
decimal—Projected team total offensive snaps.
↳implied_total
teams[].implied_total
decimalnullable—Implied team total points from betting game line and spread.
↳spread
teams[].spread
decimalnullable—Point spread consensus line.
↳game_total
teams[].game_total
decimalnullable—Over/under game total consensus line.
↳vegas_odds
teams[].vegas_odds
objectnullable—Associated team game betting props.
↳pass_play_pct
teams[].pass_play_pct
decimal—Projected offensive passing play rate percentage.
↳run_play_pct
teams[].run_play_pct
decimal—Projected offensive rushing play rate percentage.
↳seconds_per_play
teams[].seconds_per_play
decimalnullable—Projected seconds per offensive play (nfl.projected_team_snaps).
↳no_huddle_rate
teams[].no_huddle_rate
decimalnullable—Projected no-huddle play rate (nfl.projected_team_snaps).
↳pass_oe
teams[].pass_oe
decimalnullable—Projected pass rate over expected (nfl.projected_team_snaps).
↳projected_defensive_snaps
teams[].projected_defensive_snaps
decimalnullable—Projected defensive snaps (nfl.projected_team_snaps).
↳passing
teams[].passing
object—Team passing volume totals.
↳attempts
teams[].passing.attempts
decimal—Projected team pass attempts.
↳completions
teams[].passing.completions
decimal—Projected team pass completions.
↳yards
teams[].passing.yards
decimal—Projected team passing yards.
↳touchdowns
teams[].passing.touchdowns
decimal—Projected team passing touchdowns.
↳interceptions
teams[].passing.interceptions
decimal—Projected team interceptions.
↳targets
teams[].passing.targets
decimal—Projected team pass targets.
↳rushing
teams[].rushing
object—Team rushing volume totals.
↳attempts
teams[].rushing.attempts
decimal—Projected team rushing attempts.
↳yards
teams[].rushing.yards
decimal—Projected team rushing yards.
↳touchdowns
teams[].rushing.touchdowns
decimal—Projected team rushing touchdowns.
↳players
teams[].players
list<object>—Distribution of projections across team skill position roster.
↳game_id
teams[].game_id
bigintnullable—NBA only: the game (nba.games.id).
↳is_home
teams[].is_home
booleannullable—NBA only: the team plays at home.
↳possessions_mean
teams[].possessions_mean
decimalnullable—NBA only: projected possessions (mean).
↳possessions_p10
teams[].possessions_p10
decimalnullable—NBA only: 10th percentile of the projected possessions.
↳possessions_p50
teams[].possessions_p50
decimalnullable—NBA only: median of the projected possessions.
↳possessions_p90
teams[].possessions_p90
decimalnullable—NBA only: 90th percentile of the projected possessions.
↳pace_per_48
teams[].pace_per_48
decimalnullable—NBA only: projected pace per 48 minutes.
↳team_points_mean
teams[].team_points_mean
decimalnullable—NBA only: projected team points (mean).
↳team_points_std
teams[].team_points_std
decimalnullable—NBA only: standard deviation of the projected team points.
↳team_points_p10
teams[].team_points_p10
decimalnullable—NBA only: 10th percentile of the projected team points.
↳team_points_p25
teams[].team_points_p25
decimalnullable—NBA only: 25th percentile of the projected team points.
↳team_points_p50
teams[].team_points_p50
decimalnullable—NBA only: median of the projected team points.
↳team_points_p75
teams[].team_points_p75
decimalnullable—NBA only: 75th percentile of the projected team points.
↳team_points_p90
teams[].team_points_p90
decimalnullable—NBA only: 90th percentile of the projected team points.
↳opponent_points_mean
teams[].opponent_points_mean
decimalnullable—NBA only: projected opponent points (mean).
↳offensive_rating
teams[].offensive_rating
decimalnullable—NBA only: projected offensive rating.
↳win_probability
teams[].win_probability
decimalnullable—NBA only: chance the team wins, 0 to 1.
↳overtime_probability
teams[].overtime_probability
decimalnullable—NBA only: chance the game goes to overtime, 0 to 1.
↳reb_mean
teams[].reb_mean
decimalnullable—NBA only: projected team rebounds.
↳ast_mean
teams[].ast_mean
decimalnullable—NBA only: projected team assists.
↳stl_mean
teams[].stl_mean
decimalnullable—NBA only: projected team steals.
↳blk_mean
teams[].blk_mean
decimalnullable—NBA only: projected team blocks.
↳fg3m_mean
teams[].fg3m_mean
decimalnullable—NBA only: projected team three-pointers made.
↳tov_mean
teams[].tov_mean
decimalnullable—NBA only: projected team turnovers.
↳vegas_total
teams[].vegas_total
decimalnullable—NBA only: the game total of the betting line the projection used.
↳vegas_spread
teams[].vegas_spread
decimalnullable—NBA only: the spread of the betting line the projection used.
↳implied_team_total
teams[].implied_team_total
decimalnullable—NBA only: the team total the betting line implies.
↳lines_captured_at
teams[].lines_captured_at
timestamptznullable—NBA only: time the betting line was captured (UTC).
↳inputs_as_of
teams[].inputs_as_of
timestamptznullable—NBA only: time of the newest input of the team projection (UTC).
projections
list—The player projections as nested rows, one per slate player: identity, distribution, opportunity, scoring breakdown, ownership, matchup, betting props and update provenance. Sent with the default format (no format param). An NFL row sends every field that is not marked NBA only; a value the projection does not have is null. An NBA row sends the groups player, projection, opportunity, breakdown, ownership and provenance, with the shared fields and the fields marked NBA only.
↳player
projections[].player
object—Player identity, team context, and slate metadata.
↳id
projections[].player.id
bigint—Unique slate player identifier.
↳slate_player_id
projections[].player.slate_player_id
bigint—Slate player ID (references dfs.slate_players.id).
↳player_id
projections[].player.player_id
bigintnullable—Canonical player ID in sport schema (references nfl.players.id).
↳operator_player_id
projections[].player.operator_player_id
stringnullable—Operator athlete identifier (from dfs.slate_players.external_id).
↳operator_player_export_id
projections[].player.operator_player_export_id
stringnullable—Operator export / draftable ID for lineup CSV uploads (from dfs.slate_players.export_id).
↳name
projections[].player.name
stringnullable—Player display name.
↳position
projections[].player.position
stringnullable—Contest roster position eligibility (e.g. QB, RB, WR, TE, DST, K).
↳team
projections[].player.team
stringnullable—Team abbreviation code (e.g. DET).
↳opponent
projections[].player.opponent
stringnullable—Opponent team abbreviation code (e.g. NO).
↳salary
projections[].player.salary
integernullable—Contest player salary in currency units (e.g. 8000).
↳status
projections[].player.status
stringnullable—Injury / roster status (e.g. Active, Questionable, Out).
↳game_id
projections[].player.game_id
bigintnullable—Canonical game ID.
↳slate_date
projections[].player.slate_date
stringnullable—Contest slate date (YYYY-MM-DD).
↳player_game_note
projections[].player.player_game_note
stringnullable—Contextual scouting and game note for player.
↳projection
projections[].projection
object—Fantasy points distribution, simulation bounds, and value ratio.
↳fantasy_pts
projections[].projection.fantasy_pts
decimalnullable—Mean projected fantasy points under contest scoring rules.
↳floor
projections[].projection.floor
decimalnullable—10th percentile fantasy point outcome (floor).
↳ceiling
projections[].projection.ceiling
decimalnullable—90th percentile fantasy point outcome (ceiling).
↳std_dev
projections[].projection.std_dev
decimalnullable—Standard deviation of projected fantasy point distribution.
↳value
projections[].projection.value
decimalnullable—Projected fantasy points per $1k of salary (pts / (salary / 1000)).
↳quantiles
projections[].projection.quantiles
objectnullable—Quantile simulation distribution outcomes across Monte Carlo runs.
↳p05
projections[].projection.quantiles.p05
decimalnullable—5th percentile outcome.
↳p10
projections[].projection.quantiles.p10
decimalnullable—10th percentile outcome.
↳p15
projections[].projection.quantiles.p15
decimalnullable—15th percentile outcome.
↳p25
projections[].projection.quantiles.p25
decimalnullable—25th percentile outcome.
↳p50
projections[].projection.quantiles.p50
decimalnullable—50th percentile (median) outcome.
↳p75
projections[].projection.quantiles.p75
decimalnullable—75th percentile outcome.
↳p85
projections[].projection.quantiles.p85
decimalnullable—85th percentile outcome.
↳p90
projections[].projection.quantiles.p90
decimalnullable—90th percentile outcome.
↳p95
projections[].projection.quantiles.p95
decimalnullable—95th percentile outcome.
↳seat_multiplier
projections[].projection.seat_multiplier
decimalnullable—NBA only: the seat's score multiplier (DraftKings CPT 1.5, FanDuel MVP 1.5; 1 for every other seat). The points fields are already multiplied.
↳chance_5x
projections[].projection.chance_5x
decimalnullable—NBA only: chance the seat's points reach 5x salary / 1000, 0 to 1; null without a salary.
↳chance_5x_bound
projections[].projection.chance_5x_bound
stringnullable—NBA only: set when chance_5x is a bound: above_99pct or below_1pct.
↳chance_6x
projections[].projection.chance_6x
decimalnullable—NBA only: chance the seat's points reach 6x salary / 1000, 0 to 1; null without a salary.
↳chance_6x_bound
projections[].projection.chance_6x_bound
stringnullable—NBA only: set when chance_6x is a bound.
↳opportunity
projections[].opportunity
object—Volume and snap share opportunity metrics.
↳snap_pct
projections[].opportunity.snap_pct
decimalnullable—Projected offensive snap percentage (0-100%).
↳projected_snaps
projections[].opportunity.projected_snaps
decimalnullable—Projected offensive snaps.
↳projected_team_snaps
projections[].opportunity.projected_team_snaps
decimalnullable—Projected team total offensive snaps.
↳carries
projections[].opportunity.carries
decimalnullable—Projected rushing attempts.
↳targets
projections[].opportunity.targets
decimalnullable—Projected receiving targets.
↳receptions
projections[].opportunity.receptions
decimalnullable—Projected receptions.
↳catch_rate
projections[].opportunity.catch_rate
decimalnullable—Projected reception catch rate percentage.
↳passing_attempts
projections[].opportunity.passing_attempts
decimalnullable—Projected passing attempts (QB only).
↳passing_completions
projections[].opportunity.passing_completions
decimalnullable—Projected passing completions (QB only).
↳minutes_mean
projections[].opportunity.minutes_mean
decimalnullable—NBA only: projected minutes (mean).
↳minutes_std
projections[].opportunity.minutes_std
decimalnullable—NBA only: standard deviation of the projected minutes.
↳minutes_p10
projections[].opportunity.minutes_p10
decimalnullable—NBA only: 10th percentile of the projected minutes.
↳minutes_p25
projections[].opportunity.minutes_p25
decimalnullable—NBA only: 25th percentile of the projected minutes.
↳minutes_p50
projections[].opportunity.minutes_p50
decimalnullable—NBA only: median of the projected minutes.
↳minutes_p75
projections[].opportunity.minutes_p75
decimalnullable—NBA only: 75th percentile of the projected minutes.
↳minutes_p90
projections[].opportunity.minutes_p90
decimalnullable—NBA only: 90th percentile of the projected minutes.
↳usage_rate
projections[].opportunity.usage_rate
decimalnullable—NBA only: projected usage rate, 0 to 1.
↳play_probability
projections[].opportunity.play_probability
decimalnullable—NBA only: chance the player plays, 0 to 1.
↳start_probability
projections[].opportunity.start_probability
decimalnullable—NBA only: chance the player starts, 0 to 1.
↳breakdown
projections[].breakdown
object—Granular fantasy point component breakdown and counting stats.
↳passing_yds
projections[].breakdown.passing_yds
decimalnullable—Projected passing yards.
↳passing_tds
projections[].breakdown.passing_tds
decimalnullable—Projected passing touchdowns.
↳passing_yds_fpts
projections[].breakdown.passing_yds_fpts
decimalnullable—Fantasy points from passing yards.
↳passing_td_fpts
projections[].breakdown.passing_td_fpts
decimalnullable—Fantasy points from passing touchdowns.
↳interception_fpts
projections[].breakdown.interception_fpts
decimalnullable—Fantasy point deduction from interceptions.
↳rushing_yds
projections[].breakdown.rushing_yds
decimalnullable—Projected rushing yards.
↳rushing_tds
projections[].breakdown.rushing_tds
decimalnullable—Projected rushing touchdowns.
↳rushing_yds_fpts
projections[].breakdown.rushing_yds_fpts
decimalnullable—Fantasy points from rushing yards.
↳rushing_td_fpts
projections[].breakdown.rushing_td_fpts
decimalnullable—Fantasy points from rushing touchdowns.
↳receiving_yds
projections[].breakdown.receiving_yds
decimalnullable—Projected receiving yards.
↳receiving_tds
projections[].breakdown.receiving_tds
decimalnullable—Projected receiving touchdowns.
↳receiving_yds_fpts
projections[].breakdown.receiving_yds_fpts
decimalnullable—Fantasy points from receiving yards.
↳reception_fpts
projections[].breakdown.reception_fpts
decimalnullable—Fantasy points from receptions (PPR / half-PPR).
↳receiving_td_fpts
projections[].breakdown.receiving_td_fpts
decimalnullable—Fantasy points from receiving touchdowns.
↳bonus_fpts
projections[].breakdown.bonus_fpts
decimalnullable—Fantasy points from milestone performance bonuses (e.g. 100+ rush/rec, 300+ pass).
↳defensive_td_fpts
projections[].breakdown.defensive_td_fpts
decimalnullable—Fantasy points from defensive touchdowns (DST).
↳sack_fpts
projections[].breakdown.sack_fpts
decimalnullable—Fantasy points from sacks (DST).
↳pts_allowed_fpts
projections[].breakdown.pts_allowed_fpts
decimalnullable—Fantasy points from points allowed tiers (DST).
↳pts
projections[].breakdown.pts
decimalnullable—NBA only: projected points (the stat).
↳reb
projections[].breakdown.reb
decimalnullable—NBA only: projected rebounds.
↳ast
projections[].breakdown.ast
decimalnullable—NBA only: projected assists.
↳stl
projections[].breakdown.stl
decimalnullable—NBA only: projected steals.
↳blk
projections[].breakdown.blk
decimalnullable—NBA only: projected blocks.
↳fg3m
projections[].breakdown.fg3m
decimalnullable—NBA only: projected three-pointers made.
↳tov
projections[].breakdown.tov
decimalnullable—NBA only: projected turnovers.
↳double_double_probability
projections[].breakdown.double_double_probability
decimalnullable—NBA only: chance of a double-double, 0 to 1.
↳triple_double_probability
projections[].breakdown.triple_double_probability
decimalnullable—NBA only: chance of a triple-double, 0 to 1.
↳ownership
projections[].ownership
objectnullable—Monte Carlo tournament crowd ownership projections and volatility. NBA rows carry the ownership of the contest's segment on /dfs/contests/{contest_id}/projections, and null on a slate (NBA ownership is projected per contest segment, never per slate).
↳projected_ownership
projections[].ownership.projected_ownership
decimalnullable—Projected roster percentage in decimal form (0.0000 - 1.0000).
↳ownership_pct
projections[].ownership.ownership_pct
decimalnullable—Projected roster percentage formatted as 0-100% (e.g. 15.5 for 15.5%).
↳volatility
projections[].ownership.volatility
decimalnullable—Standard deviation of projected ownership percentage across simulations.
↳low
projections[].ownership.low
decimalnullable—10th percentile crowd ownership percentage (lower bound).
↳high
projections[].ownership.high
decimalnullable—90th percentile crowd ownership percentage (upper bound).
↳chalk_fragility
projections[].ownership.chalk_fragility
decimalnullable—Sensitivity of player ownership to salary cap allocations [0, 1].
↳cash_projected_ownership
projections[].ownership.cash_projected_ownership
decimalnullable—Projected roster percentage in cash game double-ups / 50-50s (0.0000 - 1.0000).
↳cash_ownership_pct
projections[].ownership.cash_ownership_pct
decimalnullable—Projected roster percentage in cash games formatted as 0-100% (e.g. 12.3 for 12.3%).
↳captain_ownership
projections[].ownership.captain_ownership
decimalnullable—Projected Captain / MVP roster percentage in single-game / Showdown slates (0-100%).
↳flex_ownership
projections[].ownership.flex_ownership
decimalnullable—Projected FLEX utility roster percentage in single-game / Showdown slates (0-100%).
↳total_ownership
projections[].ownership.total_ownership
decimalnullable—Total combined roster percentage across Captain and FLEX slots (0-100%).
↳captain_ratio
projections[].ownership.captain_ratio
decimalnullable—Ratio of Captain ownership relative to total ownership (0.0 - 1.0).
↳profile_id
projections[].ownership.profile_id
bigintnullable—NBA only: the contest segment (dfs.contest_profiles.id) the ownership belongs to.
↳model
projections[].ownership.model
stringnullable—NBA only: the ownership model that wrote the row.
↳inputs_as_of
projections[].ownership.inputs_as_of
timestamptznullable—NBA only: time of the newest input of the ownership projection (UTC).
↳dvp
projections[].dvp
objectnullable—Defense vs Position (DvP) matchup ratings, scheme metrics, and qualitative context.
↳archetype
projections[].dvp.archetype
stringnullable—Player usage archetype (e.g. Pass-Catching Back, Deep Threat, Slot).
↳rank
projections[].dvp.rank
integernullable—Opponent defense positional ranking against archetype (1 = best matchup / 32 = worst).
↳rating
projections[].dvp.rating
decimalnullable—Matchup rating multiplier or score.
↳matchup
projections[].dvp.matchup
stringnullable—Matchup label (e.g. Favorable, Neutral, Tough).
↳explanation
projections[].dvp.explanation
stringnullable—Qualitative analytical explanation of defensive matchup.
↳metrics
projections[].dvp.metrics
objectnullable—Detailed defensive metrics breakdown.
↳rank
projections[].dvp.metrics.rank
integernullable—Opponent defense ranking vs archetype.
↳archetype
projections[].dvp.metrics.archetype
stringnullable—Target archetype.
↳multiplier
projections[].dvp.metrics.multiplier
decimalnullable—DvP projection multiplier applied.
↳explanation
projections[].dvp.metrics.explanation
stringnullable—Detailed qualitative explanation.
↳matchup_grade
projections[].dvp.metrics.matchup_grade
stringnullable—Letter grade or qualitative category.
↳fpts_allowed_pg
projections[].dvp.metrics.fpts_allowed_pg
decimalnullable—Fantasy points allowed per game to archetype.
↳league_avg_fpts
projections[].dvp.metrics.league_avg_fpts
decimalnullable—League average fantasy points per game to archetype.
↳def_adot_allowed
projections[].dvp.metrics.def_adot_allowed
decimalnullable—Defensive average depth of target allowed.
↳def_pressure_rate
projections[].dvp.metrics.def_pressure_rate
decimalnullable—Defensive pressure rate.
↳opponent_team_code
projections[].dvp.metrics.opponent_team_code
stringnullable—Opponent team abbreviation code.
↳scheme_metrics
projections[].dvp.scheme_metrics
objectnullable—Scheme-specific indicators (man/zone frequency, blitz rate, etc.).
↳opponent
projections[].dvp.scheme_metrics.opponent
stringnullable—Opponent team abbreviation code.
↳composite
projections[].dvp.scheme_metrics.composite
decimalnullable—Composite scheme matchup score.
↳shadow_cb
projections[].dvp.scheme_metrics.shadow_cb
stringnullable—Shadow cornerback assignment if active.
↳db_injuries
projections[].dvp.scheme_metrics.db_injuries
list<object>nullable—Opponent defensive back injuries impacting scheme.
↳funnel_tilt
projections[].dvp.scheme_metrics.funnel_tilt
decimalnullable—Run/pass funnel defensive tilt factor.
↳scheme_mult
projections[].dvp.scheme_metrics.scheme_mult
decimalnullable—Scheme matchup multiplier.
↳injury_boost
projections[].dvp.scheme_metrics.injury_boost
decimalnullable—Injury adjustment boost multiplier.
↳pressure_mult
projections[].dvp.scheme_metrics.pressure_mult
decimalnullable—Pressure rate multiplier.
↳rb_target_rate_allowed
projections[].dvp.scheme_metrics.rb_target_rate_allowed
decimalnullable—Defensive target rate allowed to running backs.
↳te_target_rate_allowed
projections[].dvp.scheme_metrics.te_target_rate_allowed
decimalnullable—Defensive target rate allowed to tight ends.
↳two_high_shell_rate
projections[].dvp.scheme_metrics.two_high_shell_rate
decimalnullable—Defensive two-high safety shell rate.
↳vegas_odds
projections[].vegas_odds
objectnullable—Active player betting lines and props used as model calibration anchors.
↳anytime_td
projections[].vegas_odds.anytime_td
integernullable—Anytime touchdown odds (American format).
↳first_td
projections[].vegas_odds.first_td
integernullable—First touchdown odds.
↳last_td
projections[].vegas_odds.last_td
integernullable—Last touchdown odds.
↳rushing_yds
projections[].vegas_odds.rushing_yds
decimalnullable—Rushing yards consensus betting line.
↳receiving_yds
projections[].vegas_odds.receiving_yds
decimalnullable—Receiving yards consensus betting line.
↳receptions
projections[].vegas_odds.receptions
decimalnullable—Receptions consensus betting line.
↳rushing_attempts
projections[].vegas_odds.rushing_attempts
decimalnullable—Rushing attempts betting line.
↳passing_yards
projections[].vegas_odds.passing_yards
decimalnullable—Passing yards consensus betting line.
↳passing_tds
projections[].vegas_odds.passing_tds
decimalnullable—Passing touchdowns consensus betting line.
↳passing_yds
projections[].vegas_odds.passing_yds
decimalnullable—Passing yards consensus betting line.
↳passing_attempts
projections[].vegas_odds.passing_attempts
decimalnullable—Passing attempts consensus betting line.
↳completions
projections[].vegas_odds.completions
decimalnullable—Pass completions consensus betting line.
↳interceptions
projections[].vegas_odds.interceptions
decimalnullable—Passing interceptions consensus betting line.
↳provenance
projections[].provenance
objectnullable—Projection update history, audit timestamps, and explanation of adjustments.
↳last_update_time
projections[].provenance.last_update_time
stringnullable—ISO-8601 UTC timestamp of most recent projection adjustment.
↳update_explanation
projections[].provenance.update_explanation
stringnullable—Human-readable explanation of why projection was updated (e.g. injury news, weather).
↳update_reason
projections[].provenance.update_reason
objectnullable—Structured metadata describing event triggering update.
↳primary_code
projections[].provenance.update_reason.primary_code
stringnullable—Primary change classification code (e.g. DEFENSE_DEGRADED).
↳secondary_codes
projections[].provenance.update_reason.secondary_codes
list<S>nullable—Secondary change classification codes.
↳factors
projections[].provenance.update_reason.factors
objectnullable—Detailed factor adjustments triggering projection update.
↳update_history
projections[].provenance.update_history
listnullable—Chronological audit trail of prior projection snapshots.
↳id
projections[].provenance.update_history[].id
string—Snapshot change identifier.
↳timestamp
projections[].provenance.update_history[].timestamp
string—UTC timestamp of snapshot.
↳explanation
projections[].provenance.update_history[].explanation
stringnullable—Change explanation text.
↳reason
projections[].provenance.update_history[].reason
objectnullable—Event trigger that provoked update.
↳current_value
projections[].provenance.update_history[].current_value
objectnullable—New projection values after adjustment.
↳previous_value
projections[].provenance.update_history[].previous_value
objectnullable—Prior projection values before adjustment.
↳play_profile
projections[].play_profile
objectnullable—Complete native play profile with upside and safety metrics, empirical boom/bust probabilities, and archetype.
↳upside
projections[].play_profile.upside
objectnullable—Upside and ceiling distribution metrics.
↳tier
projections[].play_profile.upside.tier
stringnullable—Salary-adjusted upside tier (ELITE, BOOM, STEADY, LOW_CAP).
↳ceiling_multiplier
projections[].play_profile.upside.ceiling_multiplier
decimalnullable—Salary-adjusted ceiling multiplier (ceiling / (salary / 1000)).
↳boom_probability
projections[].play_profile.upside.boom_probability
decimalnullable—Probability of reaching 4.0x boom value.
↳leverage_factor
projections[].play_profile.upside.leverage_factor
decimalnullable—Tournament leverage factor.
↳safety
projections[].play_profile.safety
objectnullable—Safety and floor stability metrics.
↳tier
projections[].play_profile.safety.tier
stringnullable—Cash safety tier (CORE_CASH, CASH_VIABLE, MODERATE, HIGH_RISK).
↳floor_multiplier
projections[].play_profile.safety.floor_multiplier
decimalnullable—Salary-adjusted floor multiplier.
↳bust_probability
projections[].play_profile.safety.bust_probability
decimalnullable—Probability of falling below 1.5x salary value.
↳chalk_fragility
projections[].play_profile.safety.chalk_fragility
decimalnullable—Chalk fragility rating.
↳play_archetype
projections[].play_profile.play_archetype
stringnullable—Archetype classification.
↳is_leverage
projections[].play_profile.is_leverage
booleannullable—Whether player is a top leverage candidate.
↳is_fragile_chalk
projections[].play_profile.is_fragile_chalk
booleannullable—Whether player represents fragile chalk.
↳analysis
projections[].play_profile.analysis
objectnullable—Qualitative analytical breakdowns and recommendations.
↳headline
projections[].play_profile.analysis.headline
stringnullable—Synthesized headline summarizing player outlook.
↳cash_analysis
projections[].play_profile.analysis.cash_analysis
objectnullable—Detailed cash game outlook.
↳status
projections[].play_profile.analysis.cash_analysis.status
stringnullable—Cash status (CORE_CASH, CASH_VIABLE, NEUTRAL, UNVIABLE).
↳verdict
projections[].play_profile.analysis.cash_analysis.verdict
stringnullable—Cash game verdict narrative.
↳key_positives
projections[].play_profile.analysis.cash_analysis.key_positives
list<S>nullable—Positive factors supporting cash game viability.
↳key_risks
projections[].play_profile.analysis.cash_analysis.key_risks
list<S>nullable—Downside risks impacting cash game safety.
↳cohort_comparison
projections[].play_profile.analysis.cash_analysis.cohort_comparison
stringnullable—Performance comparison relative to salary cohort.
↳gpp_analysis
projections[].play_profile.analysis.gpp_analysis
objectnullable—Detailed GPP tournament outlook.
↳status
projections[].play_profile.analysis.gpp_analysis.status
stringnullable—GPP status.
↳verdict
projections[].play_profile.analysis.gpp_analysis.verdict
stringnullable—Tournament verdict narrative.
↳ceiling_thesis
projections[].play_profile.analysis.gpp_analysis.ceiling_thesis
stringnullable—Upside potential thesis.
↳leverage_thesis
projections[].play_profile.analysis.gpp_analysis.leverage_thesis
stringnullable—Ownership leverage thesis.
↳pivot_recommendation
projections[].play_profile.analysis.gpp_analysis.pivot_recommendation
stringnullable—Suggested tournament pivots.
↳comparative_context
projections[].play_profile.analysis.comparative_context
objectnullable—Relative rankings and cohort differentials.
↳positional_floor_rank
projections[].play_profile.analysis.comparative_context.positional_floor_rank
stringnullable—Positional floor ranking text.
↳positional_ceiling_rank
projections[].play_profile.analysis.comparative_context.positional_ceiling_rank
stringnullable—Positional ceiling ranking text.
↳positional_ownership_rank
projections[].play_profile.analysis.comparative_context.positional_ownership_rank
stringnullable—Positional ownership ranking text.
↳floor_vs_position_median
projections[].play_profile.analysis.comparative_context.floor_vs_position_median
stringnullable—Floor points differential relative to positional median.
↳value_vs_salary_cohort
projections[].play_profile.analysis.comparative_context.value_vs_salary_cohort
stringnullable—Value differential relative to salary tier.
↳tactical_tag
projections[].play_profile.tactical_tag
stringnullable—Tactical play tag (e.g. GOOD_CHALK, FRAGILE_CHALK, LEVERAGE).
↳fade_leverage_score
projections[].play_profile.fade_leverage_score
decimalnullable—Quantitative score for fading the player in tournaments.
↳knapsack_shadow_price
projections[].play_profile.knapsack_shadow_price
decimalnullable—Knapsack constraint shadow price indicating marginal point value per dollar.
↳relative_fragility
projections[].play_profile.relative_fragility
decimalnullable—Normalized fragility relative to slate position peers.
↳upside_tier
projections[].upside_tier
stringnullable—Salary-adjusted upside tier (ELITE, BOOM, STEADY, LOW_CAP).
↳ceiling_multiplier
projections[].ceiling_multiplier
decimalnullable—Salary-adjusted ceiling multiplier (ceiling / (salary / 1000)).
↳boom_probability
projections[].boom_probability
decimalnullable—Empirical probability of scoring >= 4.0x salary in 10,000 Monte Carlo simulations.
↳cash_safety_tier
projections[].cash_safety_tier
stringnullable—Salary-adjusted cash safety tier (CORE_CASH, CASH_VIABLE, MODERATE, HIGH_RISK).
↳floor_multiplier
projections[].floor_multiplier
decimalnullable—Salary-adjusted floor multiplier (floor / (salary / 1000)).
↳bust_probability
projections[].bust_probability
decimalnullable—Empirical probability of scoring < 1.5x salary in 10,000 Monte Carlo simulations.
↳play_archetype
projections[].play_archetype
stringnullable—Summary archetype classification (GPP_BOOM, CORE_CASH, LEVERAGE, FRAGILE_CHALK, BALANCED, LOW_CAP).
↳leverage_factor
projections[].leverage_factor
decimalnullable—Tournament leverage factor (ceiling_multiplier / max(0.02, ownership)).
↳analysis_headline
projections[].analysis_headline
stringnullable—Synthesized qualitative headline capturing player role, floor equity, or ceiling upside.
↳cash_verdict
projections[].cash_verdict
stringnullable—Qualitative cash game analysis verdict with touch/floor security and bust risk reasoning.
↳gpp_verdict
projections[].gpp_verdict
stringnullable—Qualitative GPP tournament analysis verdict with ceiling potential and ownership leverage reasoning.
↳tactical_tag
projections[].tactical_tag
stringnullable—Tactical play tag (e.g. GOOD_CHALK, FRAGILE_CHALK, LEVERAGE).
↳fade_leverage_score
projections[].fade_leverage_score
decimalnullable—Quantitative score for fading the player in tournaments.
↳knapsack_shadow_price
projections[].knapsack_shadow_price
decimalnullable—Knapsack constraint shadow price indicating marginal point value per dollar.
↳relative_fragility
projections[].relative_fragility
decimalnullable—Normalized fragility relative to slate position peers.
_metadata
objectnullable—Which projection source served this response, and which stat-api engine made its rows. Sent last, with the default format and with format=flat. The `source` object describes the served source.
↳requested_source
_metadata.requested_source
string—The source the request asked for, the `source` parameter, else the default (STAT_API_LATEST).
↳served_source
_metadata.served_source
string—The source whose rows this response holds. It differs from `requested_source` when STAT_API_LATEST serves a request for STAT_API, or when STAT_API serves a slate that STAT_API_LATEST has no projections for (`fallback`). A slate served per game by both sources gives "STAT_API,STAT_API_LATEST" (see `fallback_games`).
↳engine_version
_metadata.engine_version
stringnullable—The stat-api engine version of the served rows, for example "2.2". A row without a version is "2.1". Rows of several versions give a comma-separated list. Null when the response holds no rows.
↳deprecated
_metadata.deprecated
boolean—True when the requested source is deprecated. STAT_API is deprecated, and STAT_API_LATEST serves it.
↳replacement
_metadata.replacement
stringnullable—The source that replaces the deprecated requested source (STAT_API_LATEST). Null when `deprecated` is false.
↳backfilled
_metadata.backfilled
boolean—True when any served row is a backfill: a projection written after the slate locked, for a slate that locked before its engine went live.
↳fallback
_metadata.fallback
boolean—True when the request was for STAT_API or named no source, and STAT_API served this slate, or the games of it that STAT_API_LATEST has no projections for (`fallback_games`). The source is chosen per game: STAT_API_LATEST serves every game of the slate it has projections for; STAT_API (engine 2.1) serves only a game without them that kicked off before the slate's first STAT_API_LATEST projection was written (the Thursday game of a Thursday-to-Monday slate); every other game without them gets no projection (`pending_games`).
↳note
_metadata.note
stringnullable—The same facts in one sentence. Null when the requested source is not deprecated, did not fall back and has no pending game.
↳fallback_games
_metadata.fallback_games
list<L>nullable—The NFL games (`game_id`) of the slate whose rows come from STAT_API because STAT_API_LATEST has no projections for them, while STAT_API_LATEST served the other games; `served_source` then names both sources. Only games that kicked off before the slate's first STAT_API_LATEST projection was written. Sent only then (absent otherwise).
↳pending_games
_metadata.pending_games
list<L>nullable—The NFL games (`game_id`) of a slate that STAT_API_LATEST serves in part, that have no STAT_API_LATEST projections and did not kick off before the slate's first one was written: their players have no points projection in this response (no 2.1 value stands in; a stored contest ownership may still show). Sent only when there is one (absent otherwise).
GET/api/v1/dfs/slates/seasons
Parameters
sportquerystringoptional
Sport code (nfl, nba, mlb, nhl, golf). Defaults to nfl.
league_idquerybigintoptional
Numeric league ID (1 NFL, 2 NBA, 3 MLB, 4 NHL, 5 Golf).
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/dfs/slates/seasons?sport=nfl'
Responses
200DFS contest slate seasons and schedule manifestapplication/jsonshow example ▸
Response Schema(6 fields)show schema ▸
FieldTypeReferencesDescription
sport
string—Sport code.
league_id
bigint—Numeric league ID.
earliest_date
stringnullable—Earliest slate date on file (YYYY-MM-DD).
latest_date
stringnullable—Latest slate date on file (YYYY-MM-DD).
total_slates
bigint—Total slates across all seasons.
seasons
list—List of available seasons with week breakdowns.
↳season
seasons[].season
integer—Season start year (e.g. 2026).
↳slate_count
seasons[].slate_count
bigint—Total slates in this season.
↳contest_count
seasons[].contest_count
bigint—Total contests in this season.
↳earliest_date
seasons[].earliest_date
stringnullable—Earliest slate date in this season.
↳latest_date
seasons[].latest_date
stringnullable—Latest slate date in this season.
↳min_week
seasons[].min_week
integer—Minimum available week.
↳max_week
seasons[].max_week
integer—Maximum available week.
↳available_weeks
seasons[].available_weeks
list<I>—Regular-season week numbers that have at least one slate.
↳weeks
seasons[].weeks
list—Every regular-season week of the schedule, with its window and slate counts (NFL). Other sports return one entry per calendar year.
↳week
seasons[].weeks[].week
integer—Regular-season week number.
↳start_date
seasons[].weeks[].start_date
stringnullable—First day of the week window (YYYY-MM-DD, US Eastern). Null outside the NFL.
↳end_date
seasons[].weeks[].end_date
stringnullable—Last day of the week window, the week's last game day (YYYY-MM-DD, US Eastern). Null outside the NFL.
↳slate_count
seasons[].weeks[].slate_count
bigint—Slates whose lock date falls in the window (0 for a week with no slate yet).
↳contest_count
seasons[].weeks[].contest_count
bigint—Contests on those slates.
↳min_date
seasons[].weeks[].min_date
stringnullable—First slate date in the window. Null when the week has no slate.
↳max_date
seasons[].weeks[].max_date
stringnullable—Last slate date in the window. Null when the week has no slate.