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

slatesDFSSlates
DFS contest slate. A slate is one operator + one league + a fixed game pool + scoring rules; users build lineups against it.
Required filters: one of operator_id + date.
Fields (11)
idBigIntkey

Primary Key

operator_idBigIntReferenceOperators

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

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 main slate for this operator/league. Currently never populated (always false) — identify main slates by name/start_time until the loader fills it.

ex: false
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-24T05:00:00.000Z
Relations (5)
operatorReferenceOperatorsReferenceOperators

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

slate_settingDFSSlateSettingsDFSSlateSettings

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 (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.
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.
Fields (10)
idBigIntkey

Primary Key

operator_idBigIntReferenceOperators
ex: 2
league_idBigInt
ex: 2
nameString
ex: Single 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.0ClassicShowdown
game_typeInt
ex: 0
contest_typeInt
ex: 0
game_styleStringnullable
ex: CLASSICValues:CLASSICLATE_SWAPFULL_ROSTERNON_LATE_SWAPPICK_EMSHOW_DOWNSHOW_DOWN_CAPTAIN_MODESINGLE_GAMESTARTING_5SINGLE_GAME_BOOSTSINGLE_GAME_V3
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
Relations (3)
operatorReferenceOperatorsReferenceOperators

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

slate_projection_sources[DFSSlateProjectionSources!]!DFSSlateProjectionSources

dfs.slate_projection_sources rows whose slate_setting_id references this row.

slates[DFSSlates!]!DFSSlates

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.
slate_gamesDFSSlateGames
Many-to-many bridge between a DFS slate and the sport games included in its pool.
Required filters: one of slate_id.
Fields (8)
idBigIntkey

Primary Key

slate_idBigIntDFSSlates

FK to dfs.slates.

ex: 756
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: 81733
external_idStringnullable

Operator-side game identifier.

ex: 6129804
dataJSONnullable

Operator-provided game-level metadata (e.g., totals/spreads at slate snapshot).

created_atString
updated_atString
Relations (2)
slateDFSSlatesDFSSlates

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 (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.
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.
Fields (19)
idBigIntkey

Primary Key

slate_idBigIntDFSSlates

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: 141
slate_game_idBigInt

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:CPGSGSFPFSG/SFSF/PFPG/SGPF/CSF/SGPF/SFSG/PGC/PFPG/SFPG/PF
roster_positionString

Roster 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.

Values:CPTMVPPROSTAR
external_idStringnullable

Operator player identifier in this slate.

ex: 108072-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: Jaden McDaniels
avg_pointsFloatnullable

Average fantasy points from operator

injury_statusStringnullable

Injury status (Q, D, O, IR)

injury_detailsStringnullable

Injury body part/details

export_idStringnullable

Operator player ID used for CSV export/import

created_atString
updated_atString
Relations (4)
slate_gameDFSSlateGamesDFSSlateGames

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

slateDFSSlatesDFSSlates

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

contest_user_lineup_player_entries[DFSContestUserLineupPlayerEntries!]!DFSContestUserLineupPlayerEntries

dfs.contest_user_lineup_player_entries rows whose slate_player_id references this row.

slate_player_projections[DFSSlatePlayerProjections!]!DFSSlatePlayerProjections

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

slate_player_projectionsDFSSlatePlayerProjections
Fantasy-points projection for one player in one slate from one source. Multiple sources produce multiple rows per (slate_player).
Required filters: one of slate_player_id.
Fields (10)
idBigIntkey

Primary Key

slate_player_idBigInt

FK to dfs.slate_players — which slate-player this projection covers.

ex: 2562315
slate_projection_source_idBigInt

FK to dfs.slate_projection_sources — which provider produced this projection.

ex: 28
projectionFloat

Median (P50) projected fantasy points.

ex: 0.0000
floorFloatnullable

15th percentile projection (conservative)

ceilingFloatnullable

85th percentile projection (upside)

std_devFloatnullable

Standard deviation for simulation/distribution

statsJSONnullable

Component 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}

ex: [object Object]
created_atString
updated_atString
Relations (2)
slate_playerDFSSlatePlayersDFSSlatePlayers

The dfs.slate_players row referenced by slate_player_id; null when unlinked.

slate_projection_sourceDFSSlateProjectionSourcesDFSSlateProjectionSources

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.
slate_projection_sourcesDFSSlateProjectionSources
A registered projection provider for a slate (e.g., RotoGrinders consensus, an in-house model, a user upload).
Fields (9)
idBigIntkey

Primary Key

slate_setting_idBigInt

FK to dfs.slate_settings — which slate format this source provides projections for.

ex: 6
nameString

Display name of the projection source.

ex: perfectValues:perfectNBA SOTA projections
descriptionStringnullable

Free-text description of the source methodology.

ex: Actual fantasy scores (perfect hindsight)Values:Actual fantasy scores (perfect hindsight)State-of-the-art NBA player projections
source_typeInt

Source-type enum (0=manual upload, 1=consensus, 2=model, etc.).

ex: 0
enabledBoolean

False hides this source from lineup-builder dropdowns.

ex: true
display_orderInt

Sort order for UI display.

ex: 999
created_atString
updated_atString
Relations (2)
slate_settingDFSSlateSettingsDFSSlateSettings

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

slate_player_projections[DFSSlatePlayerProjections!]!DFSSlatePlayerProjections

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

contest_user_lineup_player_entriesDFSContestUserLineupPlayerEntries
A single roster slot within a submitted contest lineup — one slate player in one position, with the fantasy points they scored.
Required filters: one of contest_user_lineup_id.
Fields (8)
idBigIntkey

Primary Key

contest_user_lineup_idBigInt

FK to the submitted lineup this roster slot belongs to.

ex: 1022519
slate_player_idBigInt

References slate_player (player_id, salary, position)

ex: 3317055
roster_positionString

Position slot: PG, SG, SF, PF, C, UTIL, etc.

ex: FValues:FPFCSFUTILGPGSG
display_orderInt
ex: 7
pointsFloatnullable

Fantasy points scored by this player

ex: 50.5000
created_atString
updated_atString
Relations (2)
contest_user_lineupDFSContestUserLineupsDFSContestUserLineups

The dfs.contest_user_lineups row referenced by contest_user_lineup_id; null when unlinked.

slate_playerDFSSlatePlayersDFSSlatePlayers

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.
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.
Fields (6)
idBigIntkey

Primary Key

operator_idBigIntReferenceOperators
ex: 1
external_idString

Operator user ID

ex: younghoe
nameStringnullable
ex: younghoe
created_atString
updated_atString
Relations (2)
operatorReferenceOperatorsReferenceOperators

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

contest_user_lineups[DFSContestUserLineups!]!DFSContestUserLineups

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.
contestsDFSContests
A DFS contest run on a slate — its entry fee, prize pool, entry caps, and type (GPP vs cash). One slate hosts many contests.
Required filters: one of slate_id.
Fields (13)
idBigIntkey

Primary Key

slate_idBigIntDFSSlates

FK to the slate this contest runs on.

ex: 32347
external_idBigInt

Operator contest ID

ex: 188369206
nameString

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

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

0=GPP, 1=Cash

ex: 0
entry_feeInt

Entry fee in cents

ex: 100
prize_poolInt

Total prize pool in cents

ex: 2500
max_entriesInt

Maximum total entries the contest accepts.

ex: 100
entry_countInt

Entries submitted at load time.

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
Relations (2)
slateDFSSlatesDFSSlates

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

contest_user_lineups[DFSContestUserLineups!]!DFSContestUserLineups

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.
contest_user_lineupsDFSContestUserLineups
A single lineup submitted to a contest by an entrant, with its finishing rank, total fantasy points, and winnings where the contest has settled.
Required filters: one of contest_id | contest_user_id.
Fields (9)
idBigIntkey

Primary Key

contest_idBigIntDFSContests
ex: 17783
contest_user_idBigInt
ex: 24912
external_idBigInt

Operator entry ID

ex: 321546844415722049
rankIntnullable
ex: 716
pointsFloatnullable

Total fantasy points scored

ex: 254.5000
winningsIntnullable

Prize won in cents

ex: 0
created_atString
updated_atString
Relations (3)
contestDFSContestsDFSContests

The dfs.contests row referenced by contest_id; null when unlinked.

contest_userDFSContestUsersDFSContestUsers

The dfs.contest_users row referenced by contest_user_id; null when unlinked.

contest_user_lineup_player_entries[DFSContestUserLineupPlayerEntries!]!DFSContestUserLineupPlayerEntries

dfs.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.