STAT-API

DFS GraphQL Reference

Daily-fantasy contest data across operators — the slates (operator + league + game pool + scoring rules), their game pools, player pools with salaries and positions, projection sources and projections, and the contests with their entrants, submitted lineups, and per-lineup player rosters.

Every GraphQL type, relation, argument, and field — generated from the served schema, so it can never disagree with the API. Each column is documented inline; relations and foreign keys link straight to the type they resolve to. Root fields take the same filters as REST; requests are metered by rows resolved, nested lists included.

Main

slate_settingsDFSSlateSettings
The scoring format and roster-construction ruleset a slate is built on — salary cap, position slots, and scoring rules per operator / league / game-type combination. A small reference table that many slates point at.
Required filters: one of operator_id | operator.
Fields (12)
idBigIntkey

Primary Key

operator_idBigInt→ ReferenceOperators
ex: 2
league_idBigInt
ex: 2
nameString

Ruleset name (e.g. "Classic", "Showdown Captain Mode", "Single Game").

ex: Single Game 1.0
game_typeInt

Contest format code (0 = Classic full-slate, 1 = Showdown / Single Game, 2 = Tiers).

ex: 0
contest_typeInt

Contest structure code (0 = Tournament / GPP, 1 = Cash game / Double-up).

ex: 0
game_styleStringnullable

Operator game style label.

ex: CLASSICValues:CLASSICSINGLE_GAMEPICK_EMLATE_SWAPSHOW_DOWNFULL_ROSTERSHOW_DOWN_CAPTAIN_MODENON_LATE_SWAPSTARTING_5SINGLE_GAME_BOOSTSINGLE_GAME_V3WEEKENDSHOW_DOWN_CAPTAIN_MODE_SUPERFLEXFINAL_ROUND_ONLYSINGLE_GAME_DEPRECATEDSINGLE_GAME_V2-DEPRECATEDSINGLE_GAME_V2
settingsJSON

Full ruleset as JSON: salary cap, roster slots, and the per-stat scoring rules (e.g. DK NBA: 1.25/rebound, 1.5/assist, double-double bonuses, CPT 1.5x). With this plus per-game box scores you can recompute any lineup's fantasy points exactly.

ex: [object Object]
created_atString
updated_atString
valid_fromStringnullable

First slate day (US Eastern) this version of the format applies to.

operator_setting_idStringnullable

The operator's own id for this format (DraftKings gameTypeId, FanDuel slateFormatId). Operators reuse these ids across versions and formats, so it is unique only together with operator, league, game type and valid_from.

Relations (2)
operatorReferenceOperators→ ReferenceOperators

The main.operators row referenced by operator_id; null when unlinked.

slates[DFSSlates!]!→ DFSSlates

dfs.slates rows whose slate_setting_id references this row.

Arguments (4)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • operator_idIntFilter by operator: by numeric id (1 DraftKings, 2 FanDuel, 3 Yahoo).
  • operatorStringFilter by operator: by name (draftkings, fanduel) or numeric id (1, 2).
slatesDFSSlates
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.
Required filters: one of sport | league | operator_id + date | operator + date | operator_slate_id | external_id.
Fields (13)
idBigIntkey

Primary Key

operator_idBigInt→ ReferenceOperators

FK to the DFS operator (DraftKings, FanDuel, Yahoo, etc.).

ex: 2
league_idBigInt

FK to the league this slate belongs to.

ex: 2
slate_setting_idBigInt→ DFSSlateSettings

FK to slate_settings — the scoring format and roster constraints for this slate.

ex: 33
external_idBigInt

Operator-side slate identifier (e.g., DraftKings contest group ID).

ex: 16775
nameStringnullable

Human-readable slate label (e.g., "Sunday Main", "Showdown: TB vs KC").

ex: Main
mainBoolean

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.

ex: falseValues:falsetrue
start_timeString

Lock time — first scheduled tip/kickoff of any game in the pool.

ex: 2026-02-25T00:00:00.000Z
created_atString
updated_atString
dateString

Calendar day of the slate in US Eastern time (DB-generated from start_time — read-only).

ex: 2026-02-24
operator_setting_idStringnullable

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 rotoql stores values like 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.

statusString

Authoritative slate lifecycle status: Upcoming (pre-lock), Live (in progress), Completed (all games final).

ex: Completed
Relations (5)
operatorReferenceOperators→ ReferenceOperators

The main.operators row referenced by operator_id; null when unlinked.

slate_settingDFSSlateSettings→ DFSSlateSettings

The dfs.slate_settings row referenced by slate_setting_id; null when unlinked.

contests[DFSContests!]!→ DFSContests

dfs.contests rows whose slate_id references this row.

slate_games[DFSSlateGames!]!→ DFSSlateGames

dfs.slate_games rows whose slate_id references this row.

slate_players[DFSSlatePlayers!]!→ DFSSlatePlayers

dfs.slate_players rows whose slate_id references this row.

Arguments (13)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • operator_idIntFilter to all slates for a single DFS operator: by numeric id (1 DraftKings, 2 FanDuel, 3 Yahoo).
  • operatorStringFilter to all slates for a single DFS operator: draftkings, fanduel, yahoo (or numeric operator id).
  • dateStringSlate 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.
  • date__gteStringgte comparison on date.
  • date__lteStringlte comparison on date.
  • date__betweenStringRange filter on date — pass "lo,hi".
  • leagueStringLeague — code (NFL, NBA, MLB, NHL, GOLF; case-insensitive) or numeric league id. Resolves via main.leagues.
  • sportStringSport/league code (NFL, NBA, MLB, NHL, GOLF; case-insensitive). Resolves via main.leagues.
  • external_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId).
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate id.
  • statusStringFilter by slate lifecycle status: Upcoming, Live, Completed (case-insensitive).
slate_gamesDFSSlateGames
Many-to-many bridge between a DFS slate and the sport games included in its pool.
Required filters: one of slate_id | operator_slate_id.
Fields (8)
idBigIntkey

Primary Key

slate_idBigInt→ DFSSlates

FK to dfs.slates.

ex: 758
league_idBigInt

League key disambiguating the polymorphic game_id (nfl/nba/mlb/nhl).

ex: 2
game_idBigInt

Polymorphic reference to {nfl,nba,mlb}.games based on league_id

ex: 2392
external_idStringnullable

Operator-side game identifier.

ex: 59159
dataJSONnullable

Operator-provided game metadata (teams, matchup type, and start time).

ex: [object Object]
created_atString
updated_atString
Relations (2)
slateDFSSlates→ DFSSlates

The dfs.slates row referenced by slate_id; null when unlinked.

slate_players[DFSSlatePlayers!]!→ DFSSlatePlayers

dfs.slate_players rows whose slate_game_id references this row.

Arguments (6)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • slate_idIntFilter to the games in a single slate pool.
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
  • operator_idStringDisambiguate slate by operator: 1 DraftKings, 2 FanDuel, 3 Yahoo.
  • operatorStringDisambiguate slate by operator: draftkings, fanduel, yahoo (or numeric operator id).
slate_playersDFSSlatePlayers
Player pool for a DFS slate — one row per (slate, player, roster slot). Carries operator salary, positions, and any operator-side metadata.
Required filters: one of slate_id | operator_slate_id.
Fields (18)
idBigIntkey

Primary Key

slate_idBigInt→ DFSSlates

FK to dfs.slates.

ex: 247
league_idBigInt

League key disambiguating player_id.

ex: 2
player_idBigInt

Polymorphic FK to {nfl,nba,mlb,nhl}.players based on league_id.

ex: 23
slate_game_idBigInt→ DFSSlateGames

FK to dfs.slate_games — the specific slate-game this player is rostered to.

ex: 193
team_idBigIntnullable

Polymorphic FK to {league}.teams. Null for golfers and other player-only sports.

ex: 17
salaryInt

Operator-assigned DFS salary (whole dollars; e.g., 8400 = $8,400).

ex: 6000
positionString

Primary position label per operator (e.g., RB, WR, PG, SP).

ex: CValues:CPGCPTSGMVPPROSTARSFSG/SFPFSF/PFPG/SGPF/CPF/SFSF/SGSG/PGPG/SFC/PFPG/PF
external_idStringnullable

Operator player identifier in this slate.

ex: 145319
first_nameStringnullable

Player first name from operator

ex: Jalen
last_nameStringnullable

Player last name from operator

ex: Williams
display_nameStringnullable

Full display name from operator

ex: Jarred Vanderbilt
avg_pointsFloatnullable

Average fantasy points from operator

ex: 14.4
injury_statusStringnullable

Injury status, lower case: il, o, q, d, p, dtd, na, ir, gtd (game-time decision), c19 (COVID-19 protocols, 2021-22 only). Empty when the operator listed the player as healthy.

ex: oValues:oqgtd
injury_detailsStringnullable

Injury body part/details

export_idStringnullable

Operator player ID used for CSV export/import

ex: 108443-158854
created_atString
updated_atString
Relations (2)
slate_gameDFSSlateGames→ DFSSlateGames

The dfs.slate_games row referenced by slate_game_id; null when unlinked.

slateDFSSlates→ DFSSlates

The dfs.slates row referenced by slate_id; null when unlinked.

Arguments (9)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • slate_idIntFilter to the player pool of a single slate.
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
  • operator_idStringDisambiguate slate by operator: 1 DraftKings, 2 FanDuel, 3 Yahoo.
  • operatorStringDisambiguate slate by operator: draftkings, fanduel, yahoo (or numeric operator id).
  • positionStringFilter by roster position (e.g. QB, RB, WR, TE, DST, K).
  • team_idIntFilter by team ID.
  • modeTimeWallModeTime wall: PRE (default) = values at the game's kickoff, post-game fields null; FULL = the latest values before week end.

Stats

game_statsDFSGameStats
One row per game in a slate's pool: the game's total fantasy production for the slate's operator scoring format with home/away point totals, per-category point columns, and headline raw stats per side. Per-side category detail lives on team_stats. NFL today.
Required filters: one of slate_id | game_id | slate_date | operator_slate_id.
Fields (50)
idBigIntkey

Primary Key

league_idBigInt
ex: 1
slate_idBigInt→ DFSSlates
ex: 124482
operator_idBigInt
ex: 2
scoring_formatStringnullable

Operator scoring format code (classic, showdown, single_game); null when the format has no fantasy scoring.

ex: classicValues:classicsingle_gameshowdown
game_idBigInt
ex: 42549
home_team_idBigInt
ex: 16
away_team_idBigInt
ex: 19
slate_dateString
ex: 2021-11-21
total_fptsFloatnullable
ex: 201.1600
home_fptsFloatnullable
ex: 119.7400
away_fptsFloatnullable
ex: 78.7600
player_countIntnullable
ex: 59
total_passing_yds_fptsFloatnullable
ex: 19.5600
total_passing_td_fptsFloatnullable
ex: 12.0000
total_interception_fptsFloatnullable
ex: -1.0000
total_passing_2pt_conversion_fptsFloatnullable
ex: 0.0000
total_passing_bonus_fptsFloatnullable
ex: 0.0000
total_rushing_yds_fptsFloatnullable
ex: 20.8000
total_rushing_td_fptsFloatnullable
ex: 6.0000
total_fumble_lost_fptsFloatnullable
ex: 0.0000
total_rushing_2pt_conversion_fptsFloatnullable
ex: 0.0000
total_rushing_bonus_fptsFloatnullable
ex: 0.0000
total_receiving_yds_fptsFloatnullable
ex: 48.9000
total_reception_fptsFloatnullable
ex: 21.5000
total_receiving_td_fptsFloatnullable
ex: 18.0000
total_receiving_2pt_conversion_fptsFloatnullable
ex: 0.0000
total_receiving_bonus_fptsFloatnullable
ex: 0.0000
total_sack_fptsFloatnullable
ex: 4.0000
total_defense_interception_fptsFloatnullable
ex: 2.0000
total_fumble_recovery_fptsFloatnullable
ex: 2.0000
total_defensive_td_fptsFloatnullable
ex: 0.0000
total_safety_fptsFloatnullable
ex: 0.0000
total_blocked_kick_fptsFloatnullable
ex: 0.0000
total_pts_allowed_fptsFloatnullable
ex: 0.0000
total_field_goal_fptsFloatnullable
ex: 10.0000
total_extra_point_fptsFloatnullable
ex: 3.0000
total_field_goal_missed_fptsFloatnullable
ex: 0.0000
total_return_td_fptsFloatnullable
ex: 0.0000
total_return_yds_fptsFloatnullable
ex: 0.0000
home_ptsIntnullable
ex: 17
away_ptsIntnullable
ex: 17
home_total_ydsIntnullable
ex: 367
away_total_ydsIntnullable
ex: 396
home_passing_ydsIntnullable
ex: 275
away_passing_ydsIntnullable
ex: 194
home_rushing_ydsIntnullable
ex: 96
away_rushing_ydsIntnullable
ex: 106
home_turnoversIntnullable
ex: 1
away_turnoversIntnullable
ex: 1
Arguments (13)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • slate_idIntFilter to one slate — every game in its pool.
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
  • game_idIntFilter to one game across slates.
  • slate_dateStringSlate calendar day (YYYY-MM-DD, US Eastern). Range operators support backtesting windows.
  • slate_date__gteStringgte comparison on slate_date.
  • slate_date__lteStringlte comparison on slate_date.
  • slate_date__betweenStringRange filter on slate_date — pass "lo,hi".
  • scoring_formatStringScoring format code (classic, showdown, single_game).
  • operator_idIntFilter by operator: by numeric id (1 = DraftKings, 2 = FanDuel) or name (draftkings, fanduel).
  • operatorStringFilter by operator: draftkings, fanduel, yahoo (or numeric operator id).
  • league_idIntFilter by league (1 = NFL).
player_statsDFSPlayerStats
One row per slate player: the slate context (slate, salary, position) joined to that player's per-game fantasy result for the slate's operator scoring format — total points, the per-category point columns, and the raw stats behind them. NFL today; other leagues follow as their fantasy engines land.
Required filters: one of slate_id | player_id | game_id | slate_date | operator_slate_id.
Fields (74)
idBigIntkey

Primary Key

league_idBigInt
ex: 1
slate_idBigInt→ DFSSlates
ex: 124469
operator_idBigInt
ex: 2
scoring_formatStringnullable

Operator scoring format code (classic, showdown, single_game); null when the format has no fantasy scoring.

ex: classicValues:classicsingle_gameshowdown
player_idBigInt
ex: 1183
game_idBigIntnullable
ex: 42306
team_idBigIntnullable
ex: 28
slate_dateString
ex: 2021-08-21
salaryInt
ex: 6000
positionString
ex: WRValues:WRRBTEMVPQBCPTDKDST
fantasy_ptsFloatnullable
ex: 0.0000
passing_yds_fptsFloatnullable
ex: 0.0000
passing_td_fptsFloatnullable
ex: 0.0000
interception_fptsFloatnullable
ex: 0.0000
passing_2pt_conversion_fptsFloatnullable
ex: 0.0000
passing_bonus_fptsFloatnullable
ex: 0.0000
rushing_yds_fptsFloatnullable
ex: 0.0000
rushing_td_fptsFloatnullable
ex: 0.0000
fumble_lost_fptsFloatnullable
ex: 0.0000
rushing_2pt_conversion_fptsFloatnullable
ex: 0.0000
rushing_bonus_fptsFloatnullable
ex: 0.0000
receiving_yds_fptsFloatnullable
ex: 0.0000
reception_fptsFloatnullable
ex: 0.0000
receiving_td_fptsFloatnullable
ex: 0.0000
receiving_2pt_conversion_fptsFloatnullable
ex: 0.0000
receiving_bonus_fptsFloatnullable
ex: 0.0000
sack_fptsFloatnullable
ex: 0.0000
defense_interception_fptsFloatnullable
ex: 0.0000
fumble_recovery_fptsFloatnullable
ex: 0.0000
defensive_td_fptsFloatnullable
ex: 0.0000
safety_fptsFloatnullable
ex: 0.0000
blocked_kick_fptsFloatnullable
ex: 0.0000
pts_allowed_fptsFloatnullable
ex: 0.0000
field_goal_fptsFloatnullable
ex: 0.0000
extra_point_fptsFloatnullable
ex: 0.0000
field_goal_missed_fptsFloatnullable
ex: 0.0000
return_td_fptsFloatnullable
ex: 0.0000
return_yds_fptsFloatnullable
ex: 0.0000
passing_ydsIntnullable
ex: 0
passing_tdsIntnullable
ex: 0
interceptions_thrownIntnullable
ex: 0
passing_2pt_conversionsIntnullable
ex: 0
rushing_ydsIntnullable
ex: 0
rushing_tdsIntnullable
ex: 0
rushing_2pt_conversionsIntnullable
ex: 0
rushing_fumbles_lostIntnullable
ex: 0
receptionsIntnullable
ex: 0
receiving_ydsIntnullable
ex: 0
receiving_tdsIntnullable
ex: 0
receiving_2pt_conversionsIntnullable
ex: 0
receiving_fumbles_lostIntnullable
ex: 0
sack_fumbles_lostIntnullable
ex: 0
punt_return_ydsIntnullable
ex: 0
kick_return_ydsIntnullable
ex: 0
interception_return_tdsIntnullable
ex: 0
extra_pts_madeIntnullable
ex: 0
field_goals_madeIntnullable
ex: 0
field_goals_attemptedIntnullable
ex: 0
field_goals_made_0_19Intnullable
ex: 0
field_goals_made_20_29Intnullable
ex: 0
field_goals_made_30_39Intnullable
ex: 0
field_goals_made_40_49Intnullable
ex: 0
field_goals_made_50_plusIntnullable
ex: 0
defensive_sacksFloatnullable

Numeric — half-sacks exist. Player value for humans, team value for DST rows.

ex: 0.0000
defensive_interceptionsIntnullable
ex: 0
fumbles_recoveredIntnullable
ex: 0
safetiesIntnullable
ex: 0
kick_return_tdsIntnullable
ex: 0
punt_return_tdsIntnullable
ex: 0
defensive_tdsIntnullable
ex: 0
blocked_kicksIntnullable
ex: 0
pts_allowed_dstIntnullable
ex: 16
pts_allowed_defIntnullable
ex: 16
Arguments (16)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • slate_idIntFilter to one slate — every player in that slate's pool.
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
  • player_idIntFilter to a single player across slates.
  • game_idIntFilter to the players whose slate rows resolve to one game.
  • slate_dateStringSlate calendar day (YYYY-MM-DD, US Eastern). Range operators support backtesting windows.
  • slate_date__gteStringgte comparison on slate_date.
  • slate_date__lteStringlte comparison on slate_date.
  • slate_date__betweenStringRange filter on slate_date — pass "lo,hi".
  • team_idIntFilter by the player's team.
  • scoring_formatStringScoring format code (classic, showdown, single_game) — e.g. exclude showdown duplicates from a player log.
  • positionStringRoster position as listed in the slate pool (QB, RB, WR, TE, DST).
  • operator_idIntFilter by operator: by numeric id (1 = DraftKings, 2 = FanDuel) or name (draftkings, fanduel).
  • operatorStringFilter by operator: draftkings, fanduel, yahoo (or numeric operator id).
  • league_idIntFilter by league (1 = NFL).
team_statsDFSTeamStats
One row per team per slate game: the team's summed fantasy production for the slate's operator scoring format — total points, per-category point columns, player count, and the team's raw box-score line. DST is included in the team total. NFL today.
Required filters: one of slate_id | game_id | team_id | slate_date | operator_slate_id.
Fields (61)
idBigIntkey

Primary Key

league_idBigInt
ex: 1
slate_idBigInt→ DFSSlates
ex: 124482
operator_idBigInt
ex: 2
scoring_formatStringnullable

Operator scoring format code (classic, showdown, single_game); null when the format has no fantasy scoring.

ex: classicValues:classicsingle_gameshowdown
game_idBigInt
ex: 42549
team_idBigInt
ex: 19
opponent_team_idBigInt
ex: 19
is_homeBoolean
ex: trueValues:truefalse
slate_dateString
ex: 2021-11-21
fantasy_ptsFloatnullable
ex: 95.9800
player_countIntnullable
ex: 30
passing_yds_fptsFloatnullable
ex: 8.6000
passing_td_fptsFloatnullable
ex: 4.0000
interception_fptsFloatnullable
ex: 0.0000
passing_2pt_conversion_fptsFloatnullable
ex: 0.0000
passing_bonus_fptsFloatnullable
ex: 0.0000
rushing_yds_fptsFloatnullable
ex: 10.3000
rushing_td_fptsFloatnullable
ex: 0.0000
fumble_lost_fptsFloatnullable
ex: 0.0000
rushing_2pt_conversion_fptsFloatnullable
ex: 0.0000
rushing_bonus_fptsFloatnullable
ex: 0.0000
receiving_yds_fptsFloatnullable
ex: 21.5000
reception_fptsFloatnullable
ex: 11.5000
receiving_td_fptsFloatnullable
ex: 6.0000
receiving_2pt_conversion_fptsFloatnullable
ex: 0.0000
receiving_bonus_fptsFloatnullable
ex: 0.0000
sack_fptsFloatnullable
ex: 2.0000
defense_interception_fptsFloatnullable
ex: 0.0000
fumble_recovery_fptsFloatnullable
ex: 0.0000
defensive_td_fptsFloatnullable
ex: 0.0000
safety_fptsFloatnullable
ex: 0.0000
blocked_kick_fptsFloatnullable
ex: 0.0000
pts_allowed_fptsFloatnullable
ex: 1.0000
field_goal_fptsFloatnullable
ex: 0.0000
extra_point_fptsFloatnullable
ex: 0.0000
field_goal_missed_fptsFloatnullable
ex: 0.0000
return_td_fptsFloatnullable
ex: 0.0000
return_yds_fptsFloatnullable
ex: 0.0000
ptsIntnullable
ex: 17
total_ydsIntnullable
ex: 396
passing_ydsIntnullable
ex: 215
rushing_ydsIntnullable
ex: 103
receiving_ydsIntnullable
ex: 215
first_downsIntnullable
ex: 21
turnoversIntnullable
ex: 1
fumbles_lostIntnullable
ex: 0
interceptions_thrownIntnullable
ex: 0
defensive_sacksIntnullable
ex: 2
defensive_interceptionsIntnullable
ex: 0
defensive_tdsIntnullable
ex: 0
fumbles_recoveredIntnullable
ex: 0
safetiesIntnullable
ex: 0
field_goals_madeIntnullable
ex: 1
field_goals_attemptedIntnullable
ex: 2
extra_pts_madeIntnullable
ex: 2
kick_return_tdsIntnullable
ex: 0
punt_return_tdsIntnullable
ex: 0
blocked_kicksIntnullable
ex: 0
pts_allowed_dstIntnullable
ex: 17
pts_allowed_defIntnullable
ex: 17
Arguments (14)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • slate_idIntFilter to one slate — both teams of every game in it.
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
  • game_idIntFilter to one game's two team rows across slates.
  • slate_dateStringSlate calendar day (YYYY-MM-DD, US Eastern). Range operators support backtesting windows.
  • slate_date__gteStringgte comparison on slate_date.
  • slate_date__lteStringlte comparison on slate_date.
  • slate_date__betweenStringRange filter on slate_date — pass "lo,hi".
  • team_idIntFilter to one team across slates.
  • scoring_formatStringScoring format code (classic, showdown, single_game).
  • operator_idIntFilter by operator: by numeric id (1 = DraftKings, 2 = FanDuel) or name (draftkings, fanduel).
  • operatorStringFilter by operator: draftkings, fanduel, yahoo (or numeric operator id).
  • league_idIntFilter by league (1 = NFL).

Contests

contest_usersDFSContestUsers
A contest entrant — one operator-side user who submitted at least one lineup. Identified by the operator's user id, not a statview account.
Required filters: one of operator_id | operator.
Fields (6)
idBigIntkey

Primary Key

operator_idBigInt→ ReferenceOperators
ex: 1
external_idString

Operator user ID

ex: younghoe
nameStringnullable
ex: younghoe
created_atString
updated_atString
Relations (1)
operatorReferenceOperators→ ReferenceOperators

The main.operators row referenced by operator_id; null when unlinked.

Arguments (5)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • operator_idIntFilter to all contest entrants for a single DFS operator: by numeric id (1 DraftKings, 2 FanDuel, 3 Yahoo).
  • operatorStringFilter to all contest entrants for a single DFS operator: draftkings, fanduel, yahoo (or numeric operator id).
  • nameStringFilter by entrant username (exact match).
contestsDFSContests
A DFS contest run on a slate — its entry fee, prize pool, entry caps, type flags and lock time. One slate hosts many contests. Fill history lives in contest_snapshots; the payout ladder in contest_payouts.
Required filters: one of slate_id | operator_slate_id.
Fields (25)
idBigIntkey

Primary Key

slate_idBigInt→ DFSSlates

FK to the slate this contest runs on.

ex: 32347
external_idBigInt

Operator contest id, numeric. FanDuel: the tail of its composite id.

ex: 188369206
nameString

Operator-facing contest name (e.g. "$5 NBA Mini-MAX").

ex: 50/50 Contest ($1 - Top 50% Win)
contest_typeInt

Contest structure code (0 = Tournament / GPP, 1 = Cash game / 50-50 / Double-up).

ex: 0
entry_feeInt

Entry fee in cents (e.g. 500 = $5.00, 2000 = $20.00). 0 for free contests.

ex: 100
prize_poolInt

Total prize pool in cents (e.g. 10000000 = $100,000.00). On qualifiers, includes ticket face value.

ex: 2500
max_entriesInt

Maximum total entries the contest accepts. Latest observed.

ex: 100
entry_countInt

Latest observed entries. The history is in contest_snapshots.

ex: 0
max_entries_per_userInt

Maximum lineups a single entrant may submit.

ex: 1
guaranteedBoolean

Whether the prize pool is guaranteed regardless of entries filled.

ex: trueValues:truefalse
created_atString
updated_atString
operator_idBigInt→ ReferenceOperators

FK to the operator. Denormalized from slates: 5,160 slate external_ids are shared between DraftKings and FanDuel, so every operator filter was a two-hop join.

ex: 1
operator_external_idStringnullable

The operator id exactly as served. FanDuel: "{fixtureListId}-{contestId}", which the API needs back verbatim. DraftKings: same as external_id.

ex: 188369206
qualifierBoolean

Satellite or qualifier — pays tickets or seats, not (only) cash. Excluded from field-size statistics.

ex: falseValues:falsetrue
paid_placesIntnullable

Number of paying positions. FanDuel serves it in the lobby (prizes.count); DraftKings derives it from the ladder.

ex: 50
game_type_idIntnullable

Operator game type: DraftKings gameTypeId (1 Classic, 96 Showdown Captain, …).

ex: 70
payout_typeIntnullable

DraftKings pt. 1 on all paid contests; 2 marked the two $0 promo contests.

ex: 1
contest_stateStringnullable

Latest observed state: Upcoming, Live, Completed, Cancelled. DraftKings cs / contestState.

ex: Completed
start_timeStringnullable

The contest's own lock time. A late-swap contest locks later than its slate.

ex: 2026-03-03T00:00:00.000Z
attributesJSONnullable

The operator's raw flag set, kept whole: IsStarred, IsWinnerTakeAll, Multiplier, IsBeginner, IsCasual, IsPrivate, League, …

ex: [object Object]
first_seen_atStringnullable

First lobby observation.

last_seen_atStringnullable

Last lobby observation. A contest absent from the lobby after this is cancelled or locked.

lineups_statusString
Relations (2)
operatorReferenceOperators→ ReferenceOperators

The main.operators row referenced by operator_id; null when unlinked.

slateDFSSlates→ DFSSlates

The dfs.slates row referenced by slate_id; null when unlinked.

Arguments (9)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • slate_idIntFilter to all contests run on a single slate.
  • operator_slate_idIntOperator-side slate identifier (DraftKings contest group ID, FanDuel fixtureListId). Resolves to slate_id.
  • operator_idIntFilter to one operator: by numeric id (1 DraftKings, 2 FanDuel, 3 Yahoo) or name (draftkings, fanduel).
  • operatorStringFilter to one operator: draftkings, fanduel, yahoo (or numeric operator id).
  • statusStringFilter contests by parent slate status: Upcoming, Live, Completed (case-insensitive).
  • slate_statusStringFilter contests by parent slate status: Upcoming, Live, Completed (case-insensitive).
  • lineups_statusStringFilter by lineup file status: available (the lineups are loaded), pending, unavailable, none.
contest_payout_shapesDFSContestPayoutShapes
One row per contest with a ladder: paid places, cash vs ticket totals, top prize, min-cash, and the ratios contest selection needs. Rake is not here — it needs entries at lock, from contest_snapshots.
Required filters: one of contest_id.
Fields (11)
idBigIntkey

Primary Key

contest_idBigInt→ DFSContests

FK to the contest. Also the row id.

ex: 15822
paid_placesInt

max(max_position) — the number of paying positions.

ex: 32
tier_countInt

Number of tiers in the ladder.

ex: 18
cash_totalInt

Total cash prizes in cents (e.g. 10000000 = $100,000.00).

ex: 6000000
ticket_totalInt

Total ticket face value in cents.

ex: 0
top_prizeInt

First place prize in cents (e.g. 2000000 = $20,000.00).

ex: 1000000
min_cashInt

Amount awarded on the last paying tier in cents (e.g. 1000 = $10.00).

ex: 2500
top_prize_shareFloat

top_prize / (cash_total + ticket_total).

ex: 0.3333
min_cash_multipleFloat

min_cash / entry_fee. 2.0 on a double-up.

ex: 1.6667
cash_lineFloat

paid_places / max_entries.

ex: 0.2200
Arguments (3)
  • firstIntPage size; clamped to the table's REST default/max limits.
  • afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
  • contest_idIntThe shape of one contest.