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
DFSSlatesoperator_id + date.Fields (11)
idBigIntkeyPrimary Key
FK to the DFS operator (DraftKings, FanDuel, Yahoo, etc.).
2league_idBigIntFK to the league this slate belongs to.
2slate_setting_idBigIntFK to slate_settings — the scoring format and roster constraints for this slate.
33external_idBigIntOperator-side slate identifier (e.g., DraftKings contest group ID).
16775nameStringnullableHuman-readable slate label (e.g., "Sunday Main", "Showdown: TB vs KC").
MainmainBooleanWhether this is the main slate for this operator/league. Currently never populated (always false) — identify main slates by name/start_time until the loader fills it.
falsestart_timeStringLock time — first scheduled tip/kickoff of any game in the pool.
2026-02-25T00:00:00.000Zcreated_atStringupdated_atStringdateStringCalendar day of the slate in US Eastern time (DB-generated from start_time — read-only).
2026-02-24T05:00:00.000ZRelations (5)
The main.operators row referenced by operator_id; null when unlinked.
The dfs.slate_settings row referenced by slate_setting_id; null when unlinked.
dfs.contests rows whose slate_id references this row.
dfs.slate_games rows whose slate_id references this row.
dfs.slate_players rows whose slate_id references this row.
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 slates for a single DFS operator: 1 DraftKings, 2 FanDuel, 3 Yahoo.dateStringSlate calendar date in US Eastern time (YYYY-MM-DD), derived from start_time.leagueStringLeague — code (NFL, NBA, MLB, NHL, GOLF; case-insensitive) or numeric league id. Resolves via main.leagues.
DFSSlateSettingsFields (10)
idBigIntkeyPrimary Key
2league_idBigInt2nameStringSingle Game 1.0Values:Single Game 1.0Classic 1.0Late Swap 1.0Full Roster 1.0Non Late Swap 1.0Pick'Em 1.0Showdown 1.0Showdown Captain Mode 1.0Full Roster 1.1Starting 5 1.0ClassicShowdowngame_typeInt0contest_typeInt0game_styleStringnullableCLASSICValues:CLASSICLATE_SWAPFULL_ROSTERNON_LATE_SWAPPICK_EMSHOW_DOWNSHOW_DOWN_CAPTAIN_MODESINGLE_GAMESTARTING_5SINGLE_GAME_BOOSTSINGLE_GAME_V3settingsJSONFull 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.
[object Object]created_atStringupdated_atStringRelations (3)
The main.operators row referenced by operator_id; null when unlinked.
dfs.slate_projection_sources rows whose slate_setting_id references this row.
dfs.slates rows whose slate_setting_id references this row.
Arguments (2)
firstIntPage size; clamped to the table's REST default/max limits.afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
DFSSlateGamesslate_id.Fields (8)
idBigIntkeyPrimary Key
league_idBigIntLeague key disambiguating the polymorphic game_id (nfl/nba/mlb/nhl).
2game_idBigIntPolymorphic reference to {nfl,nba,mlb}.games based on league_id
81733external_idStringnullableOperator-side game identifier.
6129804dataJSONnullableOperator-provided game-level metadata (e.g., totals/spreads at slate snapshot).
created_atStringupdated_atStringRelations (2)
The dfs.slates row referenced by slate_id; null when unlinked.
dfs.slate_players rows whose slate_game_id references this row.
Arguments (3)
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.
DFSSlatePlayersslate_id.Fields (19)
idBigIntkeyPrimary Key
league_idBigIntLeague key disambiguating player_id.
2player_idBigIntPolymorphic FK to {nfl,nba,mlb,nhl}.players based on league_id.
141slate_game_idBigIntFK to dfs.slate_games — the specific slate-game this player is rostered to.
193team_idBigIntnullablePolymorphic FK to {league}.teams. Null for golfers and other player-only sports.
17salaryIntOperator-assigned DFS salary (whole dollars; e.g., 8400 = $8,400).
6000positionStringPrimary position label per operator (e.g., RB, WR, PG, SP).
CValues:CPGSGSFPFSG/SFSF/PFPG/SGPF/CSF/SGPF/SFSG/PGC/PFPG/SFPG/PFroster_positionStringRoster slot the player can fill (RB, FLEX, UTIL, CPT, etc.) — distinguishes multi-slot eligibility. Legacy showdown rows may carry an empty string for the non-captain slot.
CPTMVPPROSTARexternal_idStringnullableOperator player identifier in this slate.
108072-145319first_nameStringnullablePlayer first name from operator
Jalenlast_nameStringnullablePlayer last name from operator
Williamsdisplay_nameStringnullableFull display name from operator
Jaden McDanielsavg_pointsFloatnullableAverage fantasy points from operator
injury_statusStringnullableInjury status (Q, D, O, IR)
injury_detailsStringnullableInjury body part/details
export_idStringnullableOperator player ID used for CSV export/import
created_atStringupdated_atStringRelations (4)
The dfs.slate_games row referenced by slate_game_id; null when unlinked.
The dfs.slates row referenced by slate_id; null when unlinked.
contest_user_lineup_player_entries[DFSContestUserLineupPlayerEntries!]!→ DFSContestUserLineupPlayerEntriesdfs.contest_user_lineup_player_entries rows whose slate_player_id references this row.
dfs.slate_player_projections rows whose slate_player_id references this row.
Arguments (3)
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.
Stats
DFSSlatePlayerProjectionsslate_player_id.Fields (10)
idBigIntkeyPrimary Key
slate_player_idBigIntFK to dfs.slate_players — which slate-player this projection covers.
2562315slate_projection_source_idBigIntFK to dfs.slate_projection_sources — which provider produced this projection.
28projectionFloatMedian (P50) projected fantasy points.
0.0000floorFloatnullable15th percentile projection (conservative)
ceilingFloatnullable85th percentile projection (upside)
std_devFloatnullableStandard deviation for simulation/distribution
statsJSONnullableComponent stat projections by sport. NFL example: {"pass_yds": 275.5, "pass_tds": 1.5, "pass_ints": 0.5, "rush_yds": 22.5, "rush_tds": 0.3, "rec": 4.5, "rec_yds": 45.0, "rec_tds": 0.4}
[object Object]created_atStringupdated_atStringRelations (2)
The dfs.slate_players row referenced by slate_player_id; null when unlinked.
The dfs.slate_projection_sources row referenced by slate_projection_source_id; null when unlinked.
Arguments (3)
firstIntPage size; clamped to the table's REST default/max limits.afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.slate_player_idIntFilter to all source projections for a single slate-player.
DFSSlateProjectionSourcesFields (9)
idBigIntkeyPrimary Key
slate_setting_idBigIntFK to dfs.slate_settings — which slate format this source provides projections for.
6nameStringDisplay name of the projection source.
perfectValues:perfectNBA SOTA projectionsdescriptionStringnullableFree-text description of the source methodology.
Actual fantasy scores (perfect hindsight)Values:Actual fantasy scores (perfect hindsight)State-of-the-art NBA player projectionssource_typeIntSource-type enum (0=manual upload, 1=consensus, 2=model, etc.).
0enabledBooleanFalse hides this source from lineup-builder dropdowns.
truedisplay_orderIntSort order for UI display.
999created_atStringupdated_atStringRelations (2)
The dfs.slate_settings row referenced by slate_setting_id; null when unlinked.
dfs.slate_player_projections rows whose slate_projection_source_id references this row.
Arguments (2)
firstIntPage size; clamped to the table's REST default/max limits.afterBigIntKeyset cursor — returns rows with id > after, ordered by id ascending.
Contests
DFSContestUserLineupPlayerEntriescontest_user_lineup_id.Fields (8)
idBigIntkeyPrimary Key
contest_user_lineup_idBigIntFK to the submitted lineup this roster slot belongs to.
1022519slate_player_idBigIntReferences slate_player (player_id, salary, position)
3317055roster_positionStringPosition slot: PG, SG, SF, PF, C, UTIL, etc.
FValues:FPFCSFUTILGPGSGdisplay_orderInt7pointsFloatnullableFantasy points scored by this player
50.5000created_atStringupdated_atStringRelations (2)
The dfs.contest_user_lineups row referenced by contest_user_lineup_id; null when unlinked.
The dfs.slate_players row referenced by slate_player_id; null when unlinked.
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_user_lineup_idIntFilter to the player roster of a single submitted lineup.
DFSContestUsersoperator_id.Fields (6)
idBigIntkeyPrimary Key
1external_idStringOperator user ID
younghoenameStringnullableyounghoecreated_atStringupdated_atStringRelations (2)
The main.operators row referenced by operator_id; null when unlinked.
dfs.contest_user_lineups rows whose contest_user_id references this row.
Arguments (3)
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: 1 DraftKings, 2 FanDuel, 3 Yahoo.
DFSContestsslate_id.Fields (13)
idBigIntkeyPrimary Key
external_idBigIntOperator contest ID
188369206nameStringOperator-facing contest name (e.g. "$5 NBA Mini-MAX").
50/50 Contest ($1 - Top 50% Win)contest_typeInt0=GPP, 1=Cash
0entry_feeIntEntry fee in cents
100prize_poolIntTotal prize pool in cents
2500max_entriesIntMaximum total entries the contest accepts.
100entry_countIntEntries submitted at load time.
0max_entries_per_userIntMaximum lineups a single entrant may submit.
1guaranteedBooleanWhether the prize pool is guaranteed regardless of entries filled.
trueValues:truefalsecreated_atStringupdated_atStringRelations (2)
The dfs.slates row referenced by slate_id; null when unlinked.
dfs.contest_user_lineups rows whose contest_id references this row.
Arguments (3)
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.
DFSContestUserLineupscontest_id | contest_user_id.Fields (9)
idBigIntkeyPrimary Key
17783contest_user_idBigInt24912external_idBigIntOperator entry ID
321546844415722049rankIntnullable716pointsFloatnullableTotal fantasy points scored
254.5000winningsIntnullablePrize won in cents
0created_atStringupdated_atStringRelations (3)
The dfs.contests row referenced by contest_id; null when unlinked.
The dfs.contest_users row referenced by contest_user_id; null when unlinked.
contest_user_lineup_player_entries[DFSContestUserLineupPlayerEntries!]!→ DFSContestUserLineupPlayerEntriesdfs.contest_user_lineup_player_entries rows whose contest_user_lineup_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.contest_idIntFilter to every lineup submitted to a single contest.contest_user_idIntFilter to every lineup an entrant submitted.