""" 64-bit integer, serialized as a JSON number (ids, row counts). """ scalar BigInt """ A sporting event in the cross-sport competition registry — the target a Kalshi or Polymarket event points at through its (league_code, competition_id) pair. Team-sport leagues resolve to a game; golf resolves to a tournament. Use the per-league drill-through fields for the full underlying row. """ type Competition { """ League that owns the event (nfl/nba/mlb/nhl/golf). """ league_code: String """ The game id (team sports) or tournament id (golf). """ competition_id: BigInt """ Event kind: game or tournament. """ kind: String """ Scheduled start (timezone-aware); null when unknown. """ start_time: String """ Event date as YYYYMMDD in the league's local convention. """ day: Int """ Home team id (team sports only). """ home_team_id: BigInt """ Away team id (team sports only). """ away_team_id: BigInt """ Human-readable event title. """ title: String """ The underlying nfl.games row; non-null only when league_code is `nfl`. """ nfl_game: NFLGames """ The underlying nba.games row; non-null only when league_code is `nba`. """ nba_game: NBAGames """ The underlying mlb.games row; non-null only when league_code is `mlb`. """ mlb_game: MLBGames """ The underlying golf.tournaments row; non-null only when league_code is `golf`. """ golf_tournament: PGATournaments } """ A single roster slot within a submitted contest lineup — one slate player in one position, with the fantasy points they scored. """ type DFSContestUserLineupPlayerEntries { """ Primary Key """ id: BigInt """ FK to the submitted lineup this roster slot belongs to. """ contest_user_lineup_id: BigInt """ References slate_player (player_id, salary, position) """ slate_player_id: BigInt """ Position slot: PG, SG, SF, PF, C, UTIL, etc. """ roster_position: String display_order: Int """ Fantasy points scored by this player """ points: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.contest_user_lineups row referenced by `contest_user_lineup_id`; null when unlinked. """ contest_user_lineup: DFSContestUserLineups """ The dfs.slate_players row referenced by `slate_player_id`; null when unlinked. """ slate_player: DFSSlatePlayers } """ A single lineup submitted to a contest by an entrant, with its finishing rank, total fantasy points, and winnings where the contest has settled. """ type DFSContestUserLineups { """ Primary Key """ id: BigInt contest_id: BigInt contest_user_id: BigInt """ Operator entry ID """ external_id: BigInt rank: Int """ Total fantasy points scored """ points: Float """ Prize won in cents """ winnings: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.contests row referenced by `contest_id`; null when unlinked. """ contest: DFSContests """ The dfs.contest_users row referenced by `contest_user_id`; null when unlinked. """ contest_user: DFSContestUsers """ dfs.contest_user_lineup_player_entries rows whose `contest_user_lineup_id` references this row. """ contest_user_lineup_player_entries( """ Page size (default 50, max 500). """ first: Int ): [DFSContestUserLineupPlayerEntries!]! } """ A contest entrant — one operator-side user who submitted at least one lineup. Identified by the operator's user id, not a statview account. """ type DFSContestUsers { """ Primary Key """ id: BigInt operator_id: BigInt """ Operator user ID """ external_id: String name: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ dfs.contest_user_lineups rows whose `contest_user_id` references this row. """ contest_user_lineups( """ Page size (default 50, max 500). """ first: Int ): [DFSContestUserLineups!]! } """ A DFS contest run on a slate — its entry fee, prize pool, entry caps, and type (GPP vs cash). One slate hosts many contests. """ type DFSContests { """ Primary Key """ id: BigInt """ FK to the slate this contest runs on. """ slate_id: BigInt """ Operator contest ID """ external_id: BigInt """ Operator-facing contest name (e.g. "$5 NBA Mini-MAX"). """ name: String """ 0=GPP, 1=Cash """ contest_type: Int """ Entry fee in cents """ entry_fee: Int """ Total prize pool in cents """ prize_pool: Int """ Maximum total entries the contest accepts. """ max_entries: Int """ Entries submitted at load time. """ entry_count: Int """ Maximum lineups a single entrant may submit. """ max_entries_per_user: Int """ Whether the prize pool is guaranteed regardless of entries filled. """ guaranteed: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.slates row referenced by `slate_id`; null when unlinked. """ slate: DFSSlates """ dfs.contest_user_lineups rows whose `contest_id` references this row. """ contest_user_lineups( """ Page size (default 50, max 500). """ first: Int ): [DFSContestUserLineups!]! } type DFSQuery { """ A single roster slot within a submitted contest lineup — one slate player in one position, with the fantasy points they scored. Requires at least one of these filter sets: `contest_user_lineup_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ contest_user_lineup_player_entries( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to the player roster of a single submitted lineup. """ contest_user_lineup_id: Int ): [DFSContestUserLineupPlayerEntries!]! """ A single lineup submitted to a contest by an entrant, with its finishing rank, total fantasy points, and winnings where the contest has settled. Requires at least one of these filter sets: `contest_id` | `contest_user_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ contest_user_lineups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to every lineup submitted to a single contest. """ contest_id: Int, """ Filter to every lineup an entrant submitted. """ contest_user_id: Int ): [DFSContestUserLineups!]! """ A contest entrant — one operator-side user who submitted at least one lineup. Identified by the operator's user id, not a statview account. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ contest_users( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to all contest entrants for a single DFS operator: 1 DraftKings, 2 FanDuel, 3 Yahoo. """ operator_id: Int ): [DFSContestUsers!]! """ A DFS contest run on a slate — its entry fee, prize pool, entry caps, and type (GPP vs cash). One slate hosts many contests. Requires at least one of these filter sets: `slate_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ contests( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to all contests run on a single slate. """ slate_id: Int ): [DFSContests!]! """ Many-to-many bridge between a DFS slate and the sport games included in its pool. Requires at least one of these filter sets: `slate_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ slate_games( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to the games in a single slate pool. """ slate_id: Int ): [DFSSlateGames!]! """ Fantasy-points projection for one player in one slate from one source. Multiple sources produce multiple rows per (slate_player). Requires at least one of these filter sets: `slate_player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ slate_player_projections( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to all source projections for a single slate-player. """ slate_player_id: Int ): [DFSSlatePlayerProjections!]! """ Player pool for a DFS slate — one row per (slate, player, roster slot). Carries operator salary, positions, and any operator-side metadata. Requires at least one of these filter sets: `slate_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ slate_players( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to the player pool of a single slate. """ slate_id: Int ): [DFSSlatePlayers!]! """ A registered projection provider for a slate (e.g., RotoGrinders consensus, an in-house model, a user upload). Metered by rows resolved across all nested lists — the same record unit as REST. """ slate_projection_sources( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [DFSSlateProjectionSources!]! """ 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. Metered by rows resolved across all nested lists — the same record unit as REST. """ slate_settings( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [DFSSlateSettings!]! """ DFS contest slate. A slate is one operator + one league + a fixed game pool + scoring rules; users build lineups against it. Requires at least one of these filter sets: `operator_id + date`. Metered by rows resolved across all nested lists — the same record unit as REST. """ slates( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to all slates for a single DFS operator: 1 DraftKings, 2 FanDuel, 3 Yahoo. """ operator_id: Int, """ Slate calendar date in US Eastern time (YYYY-MM-DD), derived from start_time. """ date: String, """ League — code (NFL, NBA, MLB, NHL, GOLF; case-insensitive) or numeric league id. Resolves via main.leagues. """ league: String ): [DFSSlates!]! } """ Many-to-many bridge between a DFS slate and the sport games included in its pool. """ type DFSSlateGames { """ Primary Key """ id: BigInt """ FK to dfs.slates. """ slate_id: BigInt """ League key disambiguating the polymorphic game_id (nfl/nba/mlb/nhl). """ league_id: BigInt """ Polymorphic reference to {nfl,nba,mlb}.games based on league_id """ game_id: BigInt """ Operator-side game identifier. """ external_id: String """ Operator-provided game-level metadata (e.g., totals/spreads at slate snapshot). """ data: JSON """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.slates row referenced by `slate_id`; null when unlinked. """ slate: DFSSlates """ dfs.slate_players rows whose `slate_game_id` references this row. """ slate_players( """ Page size (default 50, max 500). """ first: Int ): [DFSSlatePlayers!]! } """ Fantasy-points projection for one player in one slate from one source. Multiple sources produce multiple rows per (slate_player). """ type DFSSlatePlayerProjections { """ Primary Key """ id: BigInt """ FK to dfs.slate_players — which slate-player this projection covers. """ slate_player_id: BigInt """ FK to dfs.slate_projection_sources — which provider produced this projection. """ slate_projection_source_id: BigInt """ Median (P50) projected fantasy points. """ projection: Float """ 15th percentile projection (conservative) """ floor: Float """ 85th percentile projection (upside) """ ceiling: Float """ Standard deviation for simulation/distribution """ std_dev: Float """ 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} """ stats: JSON """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.slate_players row referenced by `slate_player_id`; null when unlinked. """ slate_player: DFSSlatePlayers """ The dfs.slate_projection_sources row referenced by `slate_projection_source_id`; null when unlinked. """ slate_projection_source: DFSSlateProjectionSources } """ Player pool for a DFS slate — one row per (slate, player, roster slot). Carries operator salary, positions, and any operator-side metadata. """ type DFSSlatePlayers { """ Primary Key """ id: BigInt """ FK to dfs.slates. """ slate_id: BigInt """ League key disambiguating player_id. """ league_id: BigInt """ Polymorphic FK to {nfl,nba,mlb,nhl}.players based on league_id. """ player_id: BigInt """ FK to dfs.slate_games — the specific slate-game this player is rostered to. """ slate_game_id: BigInt """ Polymorphic FK to {league}.teams. Null for golfers and other player-only sports. """ team_id: BigInt """ Operator-assigned DFS salary (whole dollars; e.g., 8400 = $8,400). """ salary: Int """ Primary position label per operator (e.g., RB, WR, PG, SP). """ position: String """ 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. """ roster_position: String """ Operator player identifier in this slate. """ external_id: String """ Player first name from operator """ first_name: String """ Player last name from operator """ last_name: String """ Full display name from operator """ display_name: String """ Average fantasy points from operator """ avg_points: Float """ Injury status (Q, D, O, IR) """ injury_status: String """ Injury body part/details """ injury_details: String """ Operator player ID used for CSV export/import """ export_id: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.slate_games row referenced by `slate_game_id`; null when unlinked. """ slate_game: DFSSlateGames """ The dfs.slates row referenced by `slate_id`; null when unlinked. """ slate: DFSSlates """ dfs.contest_user_lineup_player_entries rows whose `slate_player_id` references this row. """ contest_user_lineup_player_entries( """ Page size (default 50, max 500). """ first: Int ): [DFSContestUserLineupPlayerEntries!]! """ dfs.slate_player_projections rows whose `slate_player_id` references this row. """ slate_player_projections( """ Page size (default 50, max 500). """ first: Int ): [DFSSlatePlayerProjections!]! } """ A registered projection provider for a slate (e.g., RotoGrinders consensus, an in-house model, a user upload). """ type DFSSlateProjectionSources { """ Primary Key """ id: BigInt """ FK to dfs.slate_settings — which slate format this source provides projections for. """ slate_setting_id: BigInt """ Display name of the projection source. """ name: String """ Free-text description of the source methodology. """ description: String """ Source-type enum (0=manual upload, 1=consensus, 2=model, etc.). """ source_type: Int """ False hides this source from lineup-builder dropdowns. """ enabled: Boolean """ Sort order for UI display. """ display_order: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The dfs.slate_settings row referenced by `slate_setting_id`; null when unlinked. """ slate_setting: DFSSlateSettings """ dfs.slate_player_projections rows whose `slate_projection_source_id` references this row. """ slate_player_projections( """ Page size (default 50, max 500). """ first: Int ): [DFSSlatePlayerProjections!]! } """ 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. """ type DFSSlateSettings { """ Primary Key """ id: BigInt operator_id: BigInt league_id: BigInt name: String game_type: Int contest_type: Int game_style: String """ 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. """ settings: JSON """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String rotoql_setting_id: Int version_id: String valid_from: String operator_setting_id: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ dfs.slate_projection_sources rows whose `slate_setting_id` references this row. """ slate_projection_sources( """ Page size (default 50, max 500). """ first: Int ): [DFSSlateProjectionSources!]! """ dfs.slates rows whose `slate_setting_id` references this row. """ slates( """ Page size (default 50, max 500). """ first: Int ): [DFSSlates!]! } """ DFS contest slate. A slate is one operator + one league + a fixed game pool + scoring rules; users build lineups against it. """ type DFSSlates { """ Primary Key """ id: BigInt """ FK to the DFS operator (DraftKings, FanDuel, Yahoo, etc.). """ operator_id: BigInt """ FK to the league this slate belongs to. """ league_id: BigInt """ FK to slate_settings — the scoring format and roster constraints for this slate. """ slate_setting_id: BigInt """ Operator-side slate identifier (e.g., DraftKings contest group ID). """ external_id: BigInt """ Human-readable slate label (e.g., "Sunday Main", "Showdown: TB vs KC"). """ name: String """ 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. """ main: Boolean """ Lock time — first scheduled tip/kickoff of any game in the pool. """ start_time: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Calendar day of the slate in US Eastern time (DB-generated from start_time — read-only). """ date: String operator_setting_id: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The dfs.slate_settings row referenced by `slate_setting_id`; null when unlinked. """ slate_setting: DFSSlateSettings """ dfs.contests rows whose `slate_id` references this row. """ contests( """ Page size (default 50, max 500). """ first: Int ): [DFSContests!]! """ dfs.slate_games rows whose `slate_id` references this row. """ slate_games( """ Page size (default 50, max 500). """ first: Int ): [DFSSlateGames!]! """ dfs.slate_players rows whose `slate_id` references this row. """ slate_players( """ Page size (default 50, max 500). """ first: Int ): [DFSSlatePlayers!]! } """ Arbitrary JSON value — array/object/enum-typed columns pass through as-is. """ scalar JSON """ OHLC candlestick price summaries for Kalshi markets — the open, high, low, and close prices over standard time bins (1 minute, 5 minute, 1 hour, 1 day), with traded volume per bin. Flattened columns (not JSON) for SQL queryability. """ type KalshiCandles { """ Primary Key """ id: BigInt market_id: BigInt """ Denormalized """ ticker: String """ Seconds (1, 60, 3600, 86400) """ period_interval: Int """ Unix timestamp of period end """ end_period_ts: Int """ Cents """ yes_bid_open: Int yes_bid_high: Int yes_bid_low: Int yes_bid_close: Int yes_ask_open: Int yes_ask_high: Int yes_ask_low: Int yes_ask_close: Int """ Period volume """ volume: Int """ OI at period end """ open_interest: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The kalshi.markets row referenced by `market_id`; null when unlinked. """ market: KalshiMarkets } """ A real-world event that anchors a set of Kalshi markets — for sports, a specific game or matchup; for politics, an election or vote; for finance, a price level on a target date. E.g., MEM@POR game-winner event has 2 markets (MEM wins, POR wins). """ type KalshiEvents { """ Primary Key """ id: BigInt """ e.g. "KXNBAGAME-26FEB06MEMPOR" """ event_ticker: String series_id: BigInt """ Polymorphic cross-schema ref — {league}.games (team sports) or golf.tournaments (golf), resolved during sync by league_code. Dereference via main.competitions. NULL until linked. """ competition_id: BigInt title: String category: String """ "open", "closed", "settled" """ status: String """ Denormalized for filtering """ league_code: String """ Game date for sport events """ game_date: String """ Tricode: "POR" """ home_team: String """ Tricode: "MEM" """ away_team: String """ NBA CDN game ID for fallback cross-ref """ league_game_id: String market_count: Int settled_at: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ kalshi.markets rows whose `event_id` references this row. """ markets( """ Page size (default 50, max 500). """ first: Int ): [KalshiMarkets!]! """ The sporting event this row prices, resolved through the cross-sport competition registry via (league_code, competition_id); null when the row is not linked to a game or tournament. """ competition: Competition } """ The trading-status period log for each Kalshi market — one row per state change with start/end timestamps, recording when the market was open, closed, settled, etc. Sparse coverage — captured 2025-10 through 2026-02 for ~1,500 markets; not currently updating. """ type KalshiMarketStatuses { """ Primary Key """ id: BigInt ticker: String start_ts: String end_ts: String """ "open", "closed", "settled", etc. """ status: String details: JSON """ Row-created timestamp (DB-managed). """ created_at: String } """ An individual binary contract on Kalshi — a YES/NO question with a defined resolution date and rule, priced between 0 and 100 cents. Stores latest known state (overwritten on sync). """ type KalshiMarkets { """ Primary Key """ id: BigInt """ e.g. "KXNBAGAME-26FEB06MEMPOR-POR" """ ticker: String event_id: BigInt """ Denormalized from event for direct queries """ series_id: BigInt """ Polymorphic cross-schema ref (denormalized from event) — {league}.games or golf.tournaments, by league_code. Dereference via main.competitions. NULL until linked. """ competition_id: BigInt """ "gw", "spread", "ou" """ contract_type: String title: String subtitle: String """ Spread line for spread markets (e.g., -3.5). UNRELIABLE for ou (totals) markets — mostly null, and populated values hold the playoff series game number, not the total; parse the numeric ticker suffix (e.g. …-238 ⇒ 238) for the O/U line. """ line: Float """ "initialized", "inactive", "active", "closed", "determined", "disputed", "amended", "finalized" """ status: String """ "yes", "no", "scalar", null if undetermined """ result: String """ Cents. 1-99 while an order book exists; 0 when there is no resting bid (the common state on settled markets). """ yes_bid: Int """ Cents. 1-99 while an order book exists; 100 when there is no resting ask (the common state on settled markets). """ yes_ask: Int """ Cents (1-99) """ last_price: Int """ Lifetime volume """ volume: Int open_interest: Int liquidity: Int open_time: String close_time: String expiration_time: String """ Settlement timestamp from Kalshi settlement_ts """ settled_at: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Settlement payout for YES side in cents (0-100 for binary, 1-99 possible for scalar) """ settlement_value: Int """ The kalshi.events row referenced by `event_id`; null when unlinked. """ event: KalshiEvents """ kalshi.public_trades rows whose `market_id` references this row. """ public_trades( """ Page size (default 50, max 500). """ first: Int ): [KalshiPublicTrades!]! """ kalshi.candles rows whose `market_id` references this row. """ candles( """ Page size (default 50, max 500). """ first: Int ): [KalshiCandles!]! } """ Every executed trade on Kalshi — price, size, side (YES or NO), and timestamp, comprising the public market tape. Represents completed market trades across all users. """ type KalshiPublicTrades { """ Primary Key """ id: BigInt trade_id: String ticker: String count: Int count_fp: String price: Float yes_price: Int no_price: Int yes_price_dollars: String no_price_dollars: String """ "yes" | "no" """ taker_side: String created_time: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String market_id: BigInt """ The kalshi.markets row referenced by `market_id`; null when unlinked. """ market: KalshiMarkets } type KalshiQuery { """ OHLC candlestick price summaries for Kalshi markets — the open, high, low, and close prices over standard time bins (1 minute, 5 minute, 1 hour, 1 day), with traded volume per bin. Flattened columns (not JSON) for SQL queryability. Requires at least one of these filter sets: `market_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ candles( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to candles for a single Kalshi market. """ market_id: Int, """ Bin width in seconds. Currently every row is period_interval=1 (event-driven captures at up-to-1s resolution, irregular spacing) — resample client-side for fixed OHLC bins. """ period_interval: Int ): [KalshiCandles!]! """ A real-world event that anchors a set of Kalshi markets — for sports, a specific game or matchup; for politics, an election or vote; for finance, a price level on a target date. E.g., MEM@POR game-winner event has 2 markets (MEM wins, POR wins). Requires at least one of these filter sets: `series_id` | `league_code` | `competition_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ events( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to events within a single Kalshi series (e.g., one row of `series` ⇒ all KXNBAGAME events). """ series_id: Int, """ Filter to events linked to a specific competition (cross-schema game or golf tournament; resolved during sync via league_code). """ competition_id: Int, """ Filter to all events for a league (e.g. league_code=nba) — the league-level entry point, mirroring polymarket.events. """ league_code: String ): [KalshiEvents!]! """ The trading-status period log for each Kalshi market — one row per state change with start/end timestamps, recording when the market was open, closed, settled, etc. Sparse coverage — captured 2025-10 through 2026-02 for ~1,500 markets; not currently updating. Requires at least one of these filter sets: `market_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ market_statuses( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to status periods for a single Kalshi market by numeric id (resolves to ticker via JOIN to kalshi.markets). """ market_id: Int ): [KalshiMarketStatuses!]! """ An individual binary contract on Kalshi — a YES/NO question with a defined resolution date and rule, priced between 0 and 100 cents. Stores latest known state (overwritten on sync). Requires at least one of these filter sets: `event_id` | `competition_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ markets( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to all markets that belong to a single event (e.g., MEM@POR game-winner event ⇒ two markets, MEM wins and POR wins). """ event_id: Int, """ Filter to all markets in a single series (denormalized for direct queries). """ series_id: Int, """ Filter to markets linked to a specific competition — all of its markets in one call. """ competition_id: Int ): [KalshiMarkets!]! """ Every executed trade on Kalshi — price, size, side (YES or NO), and timestamp, comprising the public market tape. Represents completed market trades across all users. Requires at least one of these filter sets: `market_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ public_trades( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to trades on a single Kalshi market. """ market_id: Int ): [KalshiPublicTrades!]! """ Families of related Kalshi binary markets organized around a common theme — all NBA game-winner markets, all NBA spread markets, all NFL totals markets, election markets, weather markets. Tracks series-level metadata and sync state. Metered by rows resolved across all nested lists — the same record unit as REST. """ series( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [KalshiSeries!]! } """ Families of related Kalshi binary markets organized around a common theme — all NBA game-winner markets, all NBA spread markets, all NFL totals markets, election markets, weather markets. Tracks series-level metadata and sync state. """ type KalshiSeries { """ Primary Key """ id: BigInt """ e.g. "KXNBAGAME" """ series_ticker: String title: String """ e.g. "Sports > Basketball > NBA" """ category: String """ e.g. "nba", "nfl", null for non-sport """ league_code: String """ "gw", "spread", "ou" """ contract_type: String """ "daily", "weekly" """ frequency: String is_active: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String } """ Every plate appearance in every MLB game — the batter, the pitcher, the count, the pitch sequence, and the outcome (single, double, home run, strikeout, walk, hit-by-pitch, etc.). """ type MLBAtBats { """ Primary Key """ id: BigInt game_id: BigInt inning_id: BigInt pitcher_id: BigInt batter_id: BigInt at_bat_number: Int start_outs: Int end_outs: Int start_runners: Int end_runners: Int runs_scored: Int result: String pitch_count: Int balls: Int strikes: Int hit_type: String hit_location: String hit_distance: Int hit_exit_velocity: Float hit_launch_angle: Float hit_coord_x: Float hit_coord_y: Float is_hard_hit: Boolean is_barrel: Boolean expected_batting_avg: Float expected_woba: Float launch_speed_angle_zone: Int """ Horizontal angle from center field (degrees) """ spray_angle: Float """ Launch angle between 8-32 degrees """ is_sweet_spot: Boolean """ Launch angle less than 10 degrees """ is_under: Boolean """ Launch angle < 10 AND exit velocity < 90 """ is_topped: Boolean """ Launch angle 10-25 AND exit velocity < 95 """ is_flare_burner: Boolean """ Launch angle 20-25 AND exit velocity 95-100 """ is_solid_contact: Boolean """ Statcast data quality score (0.0-1.0) """ statcast_quality_score: Float """ Confidence in tracking data accuracy """ tracking_confidence: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.players row referenced by `batter_id`; null when unlinked. """ batter: MLBPlayers """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.innings row referenced by `inning_id`; null when unlinked. """ inning: MLBInnings """ The mlb.players row referenced by `pitcher_id`; null when unlinked. """ pitcher: MLBPlayers """ mlb.pitches rows whose `at_bat_id` references this row. """ pitches( """ Page size (default 50, max 500). """ first: Int ): [MLBPitches!]! """ mlb.play_by_plays rows whose `at_bat_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! } """ MLB game betting lines — moneylines, run lines (the baseball point-spread equivalent), and over/under totals from sportsbooks, captured over time as the lines move from opening to closing. In MLB, spread = run line (typically +/- 1.5). """ type MLBGameLines { """ Primary Key """ id: BigInt game_id: BigInt """ Denormalized for efficient season-level queries """ season_id: BigInt """ Data source (consensus, DraftKings, FanDuel, etc.) """ operator_id: BigInt """ Home team run line (e.g., -1.5 means home favored by 1.5 runs) """ spread: Float """ American odds for home run line (e.g., -130) """ spread_home_odds: Int """ American odds for away run line """ spread_away_odds: Int """ American odds for home team win """ moneyline_home: Int """ American odds for away team win """ moneyline_away: Int """ Combined run total line (e.g., 8.5) """ total: Float """ American odds for over """ over_odds: Int """ American odds for under """ under_odds: Int """ Calculated from spread + total """ implied_home_score: Float implied_away_score: Float """ From moneyline, 0-1 """ implied_home_win_pct: Float implied_away_win_pct: Float """ When this snapshot was captured """ captured_at: String """ True if this is the opening line """ is_opening: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons } """ Each batter's box-score stat line for each MLB game — at-bats, hits, doubles, triples, home runs, RBIs, walks, strikeouts, stolen bases, and runs scored. """ type MLBGamePlayerBatterStats { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt player_id: BigInt at_bats: Int plate_appearances: Int runs: Int hits: Int singles: Int doubles: Int triples: Int home_runs: Int runs_batted_in: Int batting_average: Float stolen_bases: Int caught_stealing: Int strikeouts: Int walks: Int hit_by_pitch: Int sacrifices: Int sacrifice_flies: Int ground_into_double_play: Int ground_into_triple_play: Int on_base_percentage: Float slugging_percentage: Float on_base_plus_slugging: Float total_bases: Int fly_outs: Int ground_outs: Int line_outs: Int pop_outs: Int air_outs: Int intentional_walks: Int left_on_base: Int balls_in_play: Int babip: Float isolated_power: Float woba: Float double_plays: Int catchers_interference: Int pickoffs: Int at_bats_per_home_run: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ Each pitcher's box-score stat line for each MLB game — innings pitched, hits and runs allowed, earned runs, walks, strikeouts, home runs allowed, and pitches thrown. """ type MLBGamePlayerPitchingStats { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt player_id: BigInt win: Int loss: Int save: Int hold: Int blown_save: Int """ Innings pitched in MLB notation (6.2 = 6 and 2/3 innings) """ innings_pitched: Float hits_allowed: Int runs_allowed: Int earned_runs: Int walks_allowed: Int strikeouts_pitched: Int home_runs_allowed: Int batters_faced: Int pitches_thrown: Int strikes: Int earned_run_average: Float whip: Float singles_allowed: Int doubles_allowed: Int triples_allowed: Int grand_slams_allowed: Int hit_by_pitch: Int sacrifices_allowed: Int sacrifice_flies_allowed: Int ground_into_double_play: Int complete_games: Int shutouts: Int no_hitters: Int perfect_games: Int plate_appearances: Int total_bases_allowed: Int fly_outs: Int ground_outs: Int line_outs: Int pop_outs: Int air_outs: Int intentional_walks: Int balls_in_play: Int on_base_percentage: Float slugging_percentage: Float on_base_plus_slugging: Float strikeouts_per_nine: Float walks_per_nine: Float home_runs_per_nine: Float runs_scored_per_nine: Float babip: Float woba: Float double_plays: Int fip: Float quality_starts: Int inning_started: Int left_on_base: Float strike_percentage: Float balls: Int balks: Int wild_pitches: Int pickoffs: Int inherited_runners: Int inherited_runners_scored: Int games_pitched: Int games_started: Int games_finished: Int outs: Int catchers_interference: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ The active gameday roster for each MLB team in each game — the 26 players in uniform that day, with positions and any pre-game lineup designations. """ type MLBGameTeamRosters { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt player_id: BigInt position: String status: String comment: String starter: Boolean day: Int batting_order: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ Each MLB team's stat line for each game — runs, hits, errors, batting averages, pitching lines, broken out per game with home/away context. """ type MLBGameTeamStats { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt win: Int loss: Int runs: Int hits: Int errors: Int left_on_base: Int doubles: Int triples: Int home_runs: Int runs_batted_in: Int stolen_bases: Int caught_stealing: Int walks: Int strikeouts: Int hit_by_pitch: Int sacrifice_hits: Int sacrifice_flies: Int grounded_into_double_play: Int batting_average: Float on_base_percentage: Float slugging_percentage: Float on_base_plus_slugging: Float """ Innings pitched in MLB notation (6.2 = 6 and 2/3 innings) """ innings_pitched: Float earned_runs: Int earned_run_average: Float batters_faced: Int pitches_thrown: Int strikes: Int wild_pitches: Int balks: Int putouts: Int assists: Int double_plays_turned: Int passed_balls: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ The umpiring crew assigned to each MLB game — who worked home plate, who worked each base. """ type MLBGameUmpires { """ Primary Key """ id: BigInt game_id: BigInt umpire_id: BigInt position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.umpires row referenced by `umpire_id`; null when unlinked. """ umpire: MLBUmpires } """ Every scheduled and played MLB game — spring training exhibitions, the 162-game regular season, the Wild Card Series, the Division and Championship Series, and the World Series. """ type MLBGames { """ Primary Key """ id: BigInt """ Official MLB game identifier """ league_id: String season_id: BigInt """ Canonical game start time (use this over start_time) """ game_time: String """ Official MLB gamePk from statsapi.mlb.com """ league_game_id: Int home_team_id: BigInt away_team_id: BigInt """ R=Regular, S=Spring, F=Wild Card, D=Division, L=League, W=World Series, E=Exhibition, A=All-Star """ game_type: String """ Final, Live, Scheduled, Postponed, Suspended, Cancelled """ status: String end_time: String """ Canonical season phase. Postseason round detail (Wild Card/Division/LCS/World Series) is in the league-native `game_type` code. """ season_type: String day: Int venue_id: BigInt channel: String attendance: Int away_team_score: Int home_team_score: Int neutral_venue: Boolean series_name: String if_necessary: Boolean series_game_number: String game_label: String series_text: String postponed_status: String doubleheader: Boolean """ For doubleheaders: 1 or 2 """ game_number: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Winning pitcher of record """ winning_pitcher_id: BigInt """ Losing pitcher of record """ losing_pitcher_id: BigInt """ Save pitcher (if any) """ save_pitcher_id: BigInt """ Total game duration in minutes """ duration_minutes: Int """ D=Day, N=Night """ day_night: String """ The mlb.teams row referenced by `away_team_id`; null when unlinked. """ away_team: MLBTeams """ The mlb.teams row referenced by `home_team_id`; null when unlinked. """ home_team: MLBTeams """ The mlb.players row referenced by `losing_pitcher_id`; null when unlinked. """ losing_pitcher: MLBPlayers """ The mlb.players row referenced by `save_pitcher_id`; null when unlinked. """ save_pitcher: MLBPlayers """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.venues row referenced by `venue_id`; null when unlinked. """ venue: MLBVenues """ The mlb.players row referenced by `winning_pitcher_id`; null when unlinked. """ winning_pitcher: MLBPlayers """ mlb.at_bats rows whose `game_id` references this row. """ at_bats( """ Page size (default 50, max 500). """ first: Int ): [MLBAtBats!]! """ mlb.game_lines rows whose `game_id` references this row. """ game_lines( """ Page size (default 50, max 500). """ first: Int ): [MLBGameLines!]! """ mlb.game_player_batter_stats rows whose `game_id` references this row. """ game_player_batter_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGamePlayerBatterStats!]! """ mlb.game_player_pitching_stats rows whose `game_id` references this row. """ game_player_pitching_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGamePlayerPitchingStats!]! """ mlb.game_team_rosters rows whose `game_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [MLBGameTeamRosters!]! """ mlb.game_team_stats rows whose `game_id` references this row. """ game_team_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGameTeamStats!]! """ mlb.game_umpires rows whose `game_id` references this row. """ game_umpires( """ Page size (default 50, max 500). """ first: Int ): [MLBGameUmpires!]! """ mlb.innings rows whose `game_id` references this row. """ innings( """ Page size (default 50, max 500). """ first: Int ): [MLBInnings!]! """ mlb.pitches rows whose `game_id` references this row. """ pitches( """ Page size (default 50, max 500). """ first: Int ): [MLBPitches!]! """ mlb.play_by_plays rows whose `game_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.team_starting_lineups rows whose `game_id` references this row. """ team_starting_lineups( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamStartingLineups!]! """ mlb.venue_weathers rows whose `game_id` references this row. """ venue_weathers( """ Page size (default 50, max 500). """ first: Int ): [MLBVenueWeathers!]! } """ Each half-inning of every MLB game — runs scored, hits, errors, base traffic, plate appearances, who pitched, and how the offense ended each frame. """ type MLBInnings { """ Primary Key """ id: BigInt game_id: BigInt inning_number: Int inning_half: String home_team_runs: Int away_team_runs: Int home_team_hits: Int away_team_hits: Int home_team_errors: Int away_team_errors: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ mlb.at_bats rows whose `inning_id` references this row. """ at_bats( """ Page size (default 50, max 500). """ first: Int ): [MLBAtBats!]! """ mlb.play_by_plays rows whose `inning_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! } """ How each sportsbook and fantasy operator names every MLB player — the mapping from each operator's player identifier to a unified player record. """ type MLBOperatorPlayerLookups { """ Primary Key """ id: BigInt """ Operator id: 1 DraftKings, 2 FanDuel, 3 Yahoo, 13 sportsdata.io. """ operator_id: BigInt """ External player ID from operator """ operator_player_id: String """ Internal mlb.players.id reference """ player_id: BigInt """ Player name for reconciliation """ player_name: String """ Position for reconciliation """ position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers } """ How each MLB ballpark inflates or suppresses run-scoring categories — runs, home runs, doubles, triples, and batting average relative to a neutral park, computed per season. """ type MLBParkFactors { """ Primary Key """ id: BigInt venue_id: BigInt season_id: BigInt """ Park factor for home runs (1.0 = neutral) """ home_run_factor: Float """ Park factor for singles """ single_factor: Float """ Park factor for doubles """ double_factor: Float """ Park factor for triples """ triple_factor: Float """ Park factor for walks """ walk_factor: Float """ Park factor for strikeouts """ strikeout_factor: Float """ Park factor for left-handed batters """ left_handed_factor: Float """ Park factor for right-handed batters """ right_handed_factor: Float """ Overall park factor for runs (1.0 = neutral) """ basic_park_factor: Float """ Park effect on handedness advantage """ handedness_factor: Float """ Number of years used to calculate factors """ years_of_data: Int updated_date: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Park factor for fly balls """ fly_ball_factor: Float """ Park factor for ground balls """ ground_ball_factor: Float """ Park factor for total runs """ run_factor: Float """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.venues row referenced by `venue_id`; null when unlinked. """ venue: MLBVenues } """ Every individual pitch thrown in every MLB game — the pitch type, velocity, location, movement, spin, and the result (called strike, swinging strike, foul, ball, hit, walk). """ type MLBPitches { """ Primary Key """ id: BigInt play_id: BigInt game_id: BigInt pitcher_id: BigInt batter_id: BigInt at_bat_id: BigInt pitch_number: Int pitch_type: String pitch_speed: Float pitch_zone: Int strike_zone_top: Float strike_zone_bottom: Float pitch_x: Float pitch_y: Float pitch_z: Float plate_x: Float plate_z: Float extension: Float break_angle: Float break_length: Float break_y: Float spin_rate: Float spin_direction: Float result: String call: String strike: Boolean ball: Boolean in_play: Boolean """ Whether this pitch resulted in a single """ single: Boolean """ Whether this pitch resulted in a double """ double: Boolean """ Whether this pitch resulted in a triple """ triple: Boolean """ Whether this pitch resulted in a home run """ home_run: Boolean """ Whether this pitch resulted in a walk """ walk: Boolean """ Whether this pitch resulted in a strikeout """ strikeout: Boolean """ Whether this pitch resulted in hit by pitch """ hit_by_pitch: Boolean """ Whether this pitch resulted in a sacrifice bunt """ sacrifice_hit: Boolean """ Whether this pitch resulted in a sacrifice fly """ sacrifice_fly: Boolean """ Whether this pitch resulted in an intentional walk """ intentional_walk: Boolean """ Whether this pitch resulted in grounding into double play """ ground_into_double_play: Boolean """ Whether this pitch resulted in grounding into triple play """ ground_into_triple_play: Boolean """ Whether this pitch resulted in a fly out """ fly_out: Boolean """ Whether this pitch resulted in a ground out """ ground_out: Boolean """ Whether this pitch resulted in a line out """ line_out: Boolean """ Whether this pitch resulted in a pop out """ pop_out: Boolean """ Whether this pitch resulted in an air out """ air_out: Boolean """ Whether this pitch resulted in catchers interference """ catchers_interference: Boolean """ Exit velocity of batted ball (mph) """ hit_exit_velocity: Float """ Launch angle of batted ball (degrees) """ hit_launch_angle: Float """ Distance of batted ball (feet) """ hit_distance: Int """ Hit coordinate X (feet from home plate) """ hit_coord_x: Float """ Hit coordinate Y (feet from home plate) """ hit_coord_y: Float """ Horizontal angle from center field (degrees) """ spray_angle: Float """ Exit velocity >= 95 MPH """ hard_hit: Boolean """ Optimal combination of exit velocity and launch angle """ barrel: Boolean """ Launch angle between 8-32 degrees """ sweet_spot: Boolean """ Launch angle less than 10 degrees """ under: Boolean """ Launch angle < 10 AND exit velocity < 90 """ topped: Boolean """ Launch angle 10-25 AND exit velocity < 95 """ flare_burner: Boolean """ Launch angle 20-25 AND exit velocity 95-100 """ solid_contact: Boolean """ xBA based on exit velocity and launch angle """ expected_batting_avg: Float """ xwOBA based on exit velocity and launch angle """ expected_woba: Float """ 1=Weak, 2=Topped, 3=Under, 4=Flare/Burner, 5=Solid, 6=Barrel """ launch_speed_angle_zone: Int """ Statcast data quality score (0.0-1.0) """ statcast_quality_score: Float """ Confidence in tracking data accuracy """ tracking_confidence: Float """ Whether pitch was in the strike zone """ in_strike_zone: Boolean """ Whether batter swung at pitch outside zone """ chase: Boolean """ Fastball variant (4-seam, 2-seam, sinker, cutter) """ fastball: Boolean """ Breaking ball (curveball, slider, knuckleball) """ breaking_ball: Boolean """ Offspeed pitch (changeup, splitter, forkball) """ offspeed: Boolean """ Spin axis (degrees) """ spin_axis: Float """ Speed at release point (mph) """ release_speed: Float """ Perceived speed to batter (mph) """ effective_speed: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.at_bats row referenced by `at_bat_id`; null when unlinked. """ at_bat: MLBAtBats """ The mlb.players row referenced by `batter_id`; null when unlinked. """ batter: MLBPlayers """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.players row referenced by `pitcher_id`; null when unlinked. """ pitcher: MLBPlayers """ The mlb.play_by_plays row referenced by `play_id`; null when unlinked. """ play: MLBPlayByPlays } """ Every individual play of every MLB game — every plate appearance, baserunning event, defensive play, and substitution with the inning, outs, base state, and score at the moment. """ type MLBPlayByPlays { """ Primary Key """ id: BigInt play_id: BigInt mlb_event_num: Int game_id: BigInt inning_id: BigInt player_id: BigInt team_id: BigInt event_type: Int event_sub_type: Int description: String count_balls: Int count_strikes: Int outs: Int runners_on_base: Int pitcher_id: BigInt batter_id: BigInt catcher_id: BigInt first_base_runner_id: BigInt second_base_runner_id: BigInt third_base_runner_id: BigInt hit_location: String hit_type: String at_bat_id: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.at_bats row referenced by `at_bat_id`; null when unlinked. """ at_bat: MLBAtBats """ The mlb.players row referenced by `batter_id`; null when unlinked. """ batter: MLBPlayers """ The mlb.players row referenced by `catcher_id`; null when unlinked. """ catcher: MLBPlayers """ The mlb.players row referenced by `first_base_runner_id`; null when unlinked. """ first_base_runner: MLBPlayers """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.innings row referenced by `inning_id`; null when unlinked. """ inning: MLBInnings """ The mlb.players row referenced by `pitcher_id`; null when unlinked. """ pitcher: MLBPlayers """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.players row referenced by `second_base_runner_id`; null when unlinked. """ second_base_runner: MLBPlayers """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams """ The mlb.players row referenced by `third_base_runner_id`; null when unlinked. """ third_base_runner: MLBPlayers """ mlb.pitches rows whose `play_id` references this row. """ pitches( """ Page size (default 50, max 500). """ first: Int ): [MLBPitches!]! } """ MLB player awards — MVP, Cy Young, Rookie of the Year, Gold Gloves, Silver Sluggers, All-Star selections, and other end-of-season honors. """ type MLBPlayerAwards { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt award_type: String """ statsapi publishes recipients (winners) only — always true """ is_winner: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String award_name: String """ Date the award was announced """ award_date: String team_id: BigInt """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ The ongoing injury record for each MLB player — body part, severity, IL designation (10-day, 15-day, 60-day), and expected return timeline. """ type MLBPlayerInjuries { """ Primary Key """ id: BigInt player_id: BigInt team_id: BigInt season_id: BigInt start_date: String end_date: String status: String body_part: String injury_type: String side: String description: String is_surgery_required: Boolean expected_return_date: String games_missed: Int updated_date: String source: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ News about MLB players — trades, IL placements, lineup decisions, suspensions, and general beat-reporter updates, unified from beat-writer scrapers, operator feeds, and AI summarization. """ type MLBPlayerNews { """ Primary Key """ id: BigInt player_id: BigInt team_id: BigInt title: String description: String analysis: String """ News source identifier (cbs, espn, rotoworld, sportsdata, etc.) """ source: String link: String news_time: String priority: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String ai_processed: Boolean situational_impact: JSON content: String author: String """ injury, transaction, lineup, general """ category: String """ Source-specific unique identifier """ external_id: String processed_at: String """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ Every individual who has played in Major League Baseball — current 26-man and 40-man rosters, minor-league call-ups, players on the injured list, free agents, and retired players. """ type MLBPlayers { """ Primary Key """ id: BigInt """ Official MLB player identifier """ league_id: String first_name: String last_name: String full_name: String jersey: String """ Official MLB player ID from statsapi.mlb.com """ league_player_id: Int primary_position: String full_position_list: String team_id: BigInt league_slug: String position_category: String height: Int weight: Int birth_date: String birth_city: String birth_state: String birth_country: String school: String debut_date: String display_last_comma_first: String display_fi_last: String bats: String throws: String draft_year: String draft_round: String draft_number: String """ Canonical roster status, shared across leagues. Derived from team_player_rosters: "active" (26-man), "non_roster" (on the 40-man but optioned), "injured_reserve" (IL); "inactive"/"free_agent" off-roster. The "on a team now" set is {active, injured_reserve, non_roster}. """ roster_status: String """ URL to player profile picture image """ profile_pic_url: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams """ mlb.at_bats rows whose `batter_id` references this row. """ at_bats_by_batter_id( """ Page size (default 50, max 500). """ first: Int ): [MLBAtBats!]! """ mlb.at_bats rows whose `pitcher_id` references this row. """ at_bats_by_pitcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBAtBats!]! """ mlb.game_player_batter_stats rows whose `player_id` references this row. """ game_player_batter_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGamePlayerBatterStats!]! """ mlb.game_player_pitching_stats rows whose `player_id` references this row. """ game_player_pitching_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGamePlayerPitchingStats!]! """ mlb.game_team_rosters rows whose `player_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [MLBGameTeamRosters!]! """ mlb.games rows whose `losing_pitcher_id` references this row. """ games_by_losing_pitcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.games rows whose `save_pitcher_id` references this row. """ games_by_save_pitcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.games rows whose `winning_pitcher_id` references this row. """ games_by_winning_pitcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.operator_player_lookups rows whose `player_id` references this row. """ operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [MLBOperatorPlayerLookups!]! """ mlb.pitches rows whose `batter_id` references this row. """ pitches_by_batter_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPitches!]! """ mlb.pitches rows whose `pitcher_id` references this row. """ pitches_by_pitcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPitches!]! """ mlb.play_by_plays rows whose `batter_id` references this row. """ play_by_plays_by_batter_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.play_by_plays rows whose `catcher_id` references this row. """ play_by_plays_by_catcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.play_by_plays rows whose `first_base_runner_id` references this row. """ play_by_plays_by_first_base_runner_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.play_by_plays rows whose `pitcher_id` references this row. """ play_by_plays_by_pitcher_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.play_by_plays rows whose `player_id` references this row. """ play_by_plays_by_player_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.play_by_plays rows whose `second_base_runner_id` references this row. """ play_by_plays_by_second_base_runner_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.play_by_plays rows whose `third_base_runner_id` references this row. """ play_by_plays_by_third_base_runner_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.player_awards rows whose `player_id` references this row. """ player_awards( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerAwards!]! """ mlb.player_injuries rows whose `player_id` references this row. """ player_injuries( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerInjuries!]! """ mlb.player_news rows whose `player_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerNews!]! """ mlb.season_player_stats rows whose `player_id` references this row. """ season_player_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBSeasonPlayerStats!]! """ mlb.team_player_rosters rows whose `player_id` references this row. """ team_player_rosters( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamPlayerRosters!]! """ mlb.team_starting_lineup_batters rows whose `player_id` references this row. """ team_starting_lineup_batters( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamStartingLineupBatters!]! """ mlb.team_starting_lineups rows whose `pitcher_id` references this row. """ team_starting_lineups( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamStartingLineups!]! } """ The MLB postseason bracket — Wild Card Series, Division Series, League Championship Series, and the World Series, tracked as the seeded matchups and outcomes. """ type MLBPlayoffs { """ Primary Key """ id: BigInt season_id: BigInt series_id: BigInt series_name: String home_team_id: BigInt away_team_id: BigInt home_team_wins: Int away_team_wins: Int games_played: Int max_games: Int status: String series_text: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.teams row referenced by `home_team_id`; null when unlinked. """ home_team: MLBTeams """ The mlb.teams row referenced by `away_team_id`; null when unlinked. """ away_team: MLBTeams } type MLBQuery { """ Every plate appearance in every MLB game — the batter, the pitcher, the count, the pitch sequence, and the outcome (single, double, home run, strikeout, walk, hit-by-pitch, etc.). Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ at_bats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBAtBats!]! """ MLB game betting lines — moneylines, run lines (the baseball point-spread equivalent), and over/under totals from sportsbooks, captured over time as the lines move from opening to closing. In MLB, spread = run line (typically +/- 1.5). Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_lines( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBGameLines!]! """ Each batter's box-score stat line for each MLB game — at-bats, hits, doubles, triples, home runs, RBIs, walks, strikeouts, stolen bases, and runs scored. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_batter_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int ): [MLBGamePlayerBatterStats!]! """ Each pitcher's box-score stat line for each MLB game — innings pitched, hits and runs allowed, earned runs, walks, strikeouts, home runs allowed, and pitches thrown. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_pitching_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int ): [MLBGamePlayerPitchingStats!]! """ The active gameday roster for each MLB team in each game — the 26 players in uniform that day, with positions and any pre-game lineup designations. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_rosters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBGameTeamRosters!]! """ Each MLB team's stat line for each game — runs, hits, errors, batting averages, pitching lines, broken out per game with home/away context. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int ): [MLBGameTeamStats!]! """ The umpiring crew assigned to each MLB game — who worked home plate, who worked each base. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_umpires( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBGameUmpires!]! """ Every scheduled and played MLB game — spring training exhibitions, the 162-game regular season, the Wild Card Series, the Division and Championship Series, and the World Series. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ games( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season. Defaults to the current season. """ season_id: Int, """ Filter by home team. """ home_team_id: Int, """ Filter by away team. """ away_team_id: Int, """ Filter by game status. """ status: String, """ Filter by calendar day (YYYYMMDD integer, US Eastern) — e.g. day=20260609 for today's slate. season_id defaults to the current season; pass it explicitly for past-season days. """ day: Int, """ `gte` comparison on `day`. """ day__gte: Int, """ `lte` comparison on `day`. """ day__lte: Int, """ Range filter on `day` — pass "lo,hi". """ day__between: String ): [MLBGames!]! """ Each half-inning of every MLB game — runs scored, hits, errors, base traffic, plate appearances, who pitched, and how the offense ended each frame. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ innings( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBInnings!]! """ How each sportsbook and fantasy operator names every MLB player — the mapping from each operator's player identifier to a unified player record. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ operator_player_lookups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by operator. """ operator_id: Int ): [MLBOperatorPlayerLookups!]! """ How each MLB ballpark inflates or suppresses run-scoring categories — runs, home runs, doubles, triples, and batting average relative to a neutral park, computed per season. Requires at least one of these filter sets: `venue_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ park_factors( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by venue. """ venue_id: Int, """ Filter to a season. """ season_id: Int ): [MLBParkFactors!]! """ Every individual pitch thrown in every MLB game — the pitch type, velocity, location, movement, spin, and the result (called strike, swinging strike, foul, ball, hit, walk). Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ pitches( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBPitches!]! """ Every individual play of every MLB game — every plate appearance, baserunning event, defensive play, and substitution with the inning, outs, base state, and score at the moment. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ play_by_plays( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int ): [MLBPlayByPlays!]! """ MLB player awards — MVP, Cy Young, Rookie of the Year, Gold Gloves, Silver Sluggers, All-Star selections, and other end-of-season honors. Requires at least one of these filter sets: `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_awards( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a season. """ season_id: Int ): [MLBPlayerAwards!]! """ The ongoing injury record for each MLB player — body part, severity, IL designation (10-day, 15-day, 60-day), and expected return timeline. Requires at least one of these filter sets: `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_injuries( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int ): [MLBPlayerInjuries!]! """ News about MLB players — trades, IL placements, lineup decisions, suspensions, and general beat-reporter updates, unified from beat-writer scrapers, operator feeds, and AI summarization. Requires at least one of these filter sets: `player_id` | `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_news( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by publication time (ISO 8601). Use news_time__gte to poll for items since your last check. """ news_time: String, """ `gte` comparison on `news_time`. """ news_time__gte: String, """ `lte` comparison on `news_time`. """ news_time__lte: String, """ Range filter on `news_time` — pass "lo,hi". """ news_time__between: String ): [MLBPlayerNews!]! """ Every individual who has played in Major League Baseball — current 26-man and 40-man rosters, minor-league call-ups, players on the injured list, free agents, and retired players. Requires at least one of these filter sets: `team_id` | `roster_status`. Metered by rows resolved across all nested lists — the same record unit as REST. """ players( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to players whose current team_id matches. Null team_id rows (free agents, retired) are excluded when this filter is applied. """ team_id: Int, """ Filter by canonical roster status. The "on a team now" set is {active, injured_reserve, non_roster} (active 26-man, injured list, and 40-man-but-optioned); free_agent/retired/inactive are off-roster. """ roster_status: String ): [MLBPlayers!]! """ The MLB postseason bracket — Wild Card Series, Division Series, League Championship Series, and the World Series, tracked as the seeded matchups and outcomes. Metered by rows resolved across all nested lists — the same record unit as REST. """ playoffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [MLBPlayoffs!]! """ Season totals for each MLB player — the full batting line (AVG, OBP, SLG, OPS), counting stats (HR, RBI, SB, R), and pitching line (W, L, ERA, WHIP, K, BB). Advanced run-value metrics (wRC+, FIP, WAR) are not carried here. Scope is not split by season type. Requires at least one of these filter sets: `season_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_player_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season. Defaults to the current season. """ season_id: Int, """ Filter to a single player. """ player_id: Int ): [MLBSeasonPlayerStats!]! """ League-wide offensive context per MLB season — average runs per game, league batting line, ERA, and the offensive baseline used to normalize player and team stats across eras. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_run_environments( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season. Defaults to the current season. """ season_id: Int ): [MLBSeasonRunEnvironments!]! """ Season totals for each MLB team — wins and losses, runs scored and allowed, batting and pitching aggregates, fielding stats, and advanced team metrics (BaseRuns, pythagorean expectation, run differential). Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_team_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season. Defaults to the current season. """ season_id: Int, """ Filter by team. """ team_id: Int ): [MLBSeasonTeamStats!]! """ Each MLB season — spring training, the 162-game regular season, the Wild Card Series, the Division Series, the League Championship Series, and the World Series. Metered by rows resolved across all nested lists — the same record unit as REST. """ seasons( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [MLBSeasons!]! """ Day-by-day player-to-team affiliations across the MLB season — who was on each 40-man roster, who was on the IL, who was optioned to the minors, and who was designated for assignment. Requires at least one of these filter sets: `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_player_rosters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int ): [MLBTeamPlayerRosters!]! """ Each batter in each MLB starting lineup — position in the order (1 through 9), defensive position, and batting handedness for the day. Requires at least one of these filter sets: `team_starting_lineup_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_starting_lineup_batters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single starting lineup. """ team_starting_lineup_id: Int ): [MLBTeamStartingLineupBatters!]! """ Each MLB team's starting lineup for each game — the nine batters in batting order plus the starting pitcher (and DH where applicable). Requires at least one of these filter sets: `team_id` | `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_starting_lineups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a single game. """ game_id: Int ): [MLBTeamStartingLineups!]! """ The 30 MLB franchises, organized into the American and National Leagues with three divisions in each. Metered by rows resolved across all nested lists — the same record unit as REST. """ teams( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [MLBTeams!]! """ MLB umpires — the four-person crew of home-plate, first-base, second-base, and third-base umpires who work each game (six in the postseason with outfield umpires added). Metered by rows resolved across all nested lists — the same record unit as REST. """ umpires( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [MLBUmpires!]! """ Outfield dimensions and wall heights for each MLB ballpark — distances to left field, center field, right field, and the power alleys, plus the height of the outfield walls. Requires at least one of these filter sets: `venue_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ venue_dimensions( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by venue. """ venue_id: Int ): [MLBVenueDimensions!]! """ On-field weather throughout each MLB game — temperature, wind direction and speed, humidity, and precipitation captured at fixed intervals from first pitch. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ venue_weathers( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by venue. """ venue_id: Int ): [MLBVenueWeathers!]! """ MLB ballparks — current home stadiums and historical venues, with dimensions, surface, capacity, and roof type. Metered by rows resolved across all nested lists — the same record unit as REST. """ venues( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [MLBVenues!]! """ The weighted on-base average coefficients for each MLB season — the run values assigned to walks, singles, doubles, triples, and home runs, used to compute wOBA and wRC+. Metered by rows resolved across all nested lists — the same record unit as REST. """ woba_weights( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [MLBWobaWeights!]! } """ Season totals for each MLB player — the full batting line (AVG, OBP, SLG, OPS), counting stats (HR, RBI, SB, R), and pitching line (W, L, ERA, WHIP, K, BB). Advanced run-value metrics (wRC+, FIP, WAR) are not carried here. Scope is not split by season type. """ type MLBSeasonPlayerStats { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt games_played: Int games_started: Int at_bats: Int plate_appearances: Int hits: Int doubles: Int triples: Int home_runs: Int runs: Int runs_batted_in: Int stolen_bases: Int caught_stealing: Int walks: Int strikeouts: Int hit_by_pitch: Int sacrifice_hits: Int sacrifice_flies: Int grounded_into_double_play: Int batting_average: Float on_base_percentage: Float slugging_percentage: Float on_base_plus_slugging: Float wins: Int losses: Int games_pitched: Int games_started_pitching: Int complete_games: Int shutouts: Int saves: Int save_opportunities: Int holds: Int blown_saves: Int """ Innings pitched in MLB notation (6.2 = 6 and 2/3 innings) """ innings_pitched: Float hits_allowed: Int runs_allowed: Int earned_runs: Int walks_allowed: Int strikeouts_pitched: Int home_runs_allowed: Int batters_faced: Int earned_run_average: Float whip: Float strikeouts_per_nine: Float walks_per_nine: Float hits_per_nine: Float home_runs_per_nine: Float fielding_position: String fielding_games: Int fielding_games_started: Int total_chances: Int putouts: Int assists: Int errors: Int double_plays: Int fielding_percentage: Float passed_balls: Int stolen_bases_allowed: Int caught_stealing_by: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Derivable from hits - doubles - triples - home_runs """ singles: Int """ Derivable: 1B + 2*2B + 3*3B + 4*HR """ total_bases: Int intentional_walks: Int left_on_base: Int pitches_thrown: Int strikes: Int balls: Int quality_starts: Int """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons } """ League-wide offensive context per MLB season — average runs per game, league batting line, ERA, and the offensive baseline used to normalize player and team stats across eras. """ type MLBSeasonRunEnvironments { """ Primary Key """ id: BigInt season_id: BigInt """ League average runs per plate appearance """ runs_per_plate_appearance: Float """ League average runs per out made """ runs_per_out: Float """ League average HR/FB rate """ home_run_per_fly_ball: Float """ League average BABIP """ batting_average_on_balls_in_play: Float """ League average strikeout rate """ strikeout_rate: Float """ League average walk rate """ walk_rate: Float """ FIP constant to scale FIP to ERA """ fip_constant: Float updated_date: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons } """ Season totals for each MLB team — wins and losses, runs scored and allowed, batting and pitching aggregates, fielding stats, and advanced team metrics (BaseRuns, pythagorean expectation, run differential). """ type MLBSeasonTeamStats { """ Primary Key """ id: BigInt team_id: BigInt season_id: BigInt games_played: Int wins: Int losses: Int ties: Int runs_scored: Int runs_allowed: Int at_bats: Int hits: Int doubles: Int triples: Int home_runs: Int runs_batted_in: Int stolen_bases: Int caught_stealing: Int walks: Int strikeouts: Int batting_average: Float on_base_percentage: Float slugging_percentage: Float on_base_plus_slugging: Float """ Innings pitched in MLB notation (6.2 = 6 and 2/3 innings) """ innings_pitched: Float earned_runs: Int earned_run_average: Float whip: Float complete_games: Int shutouts: Int saves: Int save_opportunities: Int holds: Int blown_saves: Int errors: Int fielding_percentage: Float double_plays: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ Each MLB season — spring training, the 162-game regular season, the Wild Card Series, the Division Series, the League Championship Series, and the World Series. """ type MLBSeasons { """ Primary Key """ id: BigInt """ Official MLB season identifier """ league_id: String start_date: String end_date: String start_year: Int regular_season_start_date: String post_season_start_date: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ mlb.game_lines rows whose `season_id` references this row. """ game_lines( """ Page size (default 50, max 500). """ first: Int ): [MLBGameLines!]! """ mlb.games rows whose `season_id` references this row. """ games( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.park_factors rows whose `season_id` references this row. """ park_factors( """ Page size (default 50, max 500). """ first: Int ): [MLBParkFactors!]! """ mlb.player_awards rows whose `season_id` references this row. """ player_awards( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerAwards!]! """ mlb.player_injuries rows whose `season_id` references this row. """ player_injuries( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerInjuries!]! """ mlb.playoffs rows whose `season_id` references this row. """ playoffs( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayoffs!]! """ mlb.season_player_stats rows whose `season_id` references this row. """ season_player_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBSeasonPlayerStats!]! """ mlb.season_run_environments rows whose `season_id` references this row. """ season_run_environments( """ Page size (default 50, max 500). """ first: Int ): [MLBSeasonRunEnvironments!]! """ mlb.season_team_stats rows whose `season_id` references this row. """ season_team_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBSeasonTeamStats!]! """ mlb.team_player_rosters rows whose `season_id` references this row. """ team_player_rosters( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamPlayerRosters!]! """ mlb.woba_weights rows whose `season_id` references this row. """ woba_weights( """ Page size (default 50, max 500). """ first: Int ): [MLBWobaWeights!]! } """ Day-by-day player-to-team affiliations across the MLB season — who was on each 40-man roster, who was on the IL, who was optioned to the minors, and who was designated for assignment. """ type MLBTeamPlayerRosters { """ Primary Key """ id: BigInt team_id: BigInt player_id: BigInt season_id: BigInt position: String position_group: String roster_type: String position_depth: Int day: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams } """ Each batter in each MLB starting lineup — position in the order (1 through 9), defensive position, and batting handedness for the day. """ type MLBTeamStartingLineupBatters { """ Primary Key """ id: BigInt team_starting_lineup_id: BigInt player_id: BigInt batting_order: String position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.players row referenced by `player_id`; null when unlinked. """ player: MLBPlayers """ The mlb.team_starting_lineups row referenced by `team_starting_lineup_id`; null when unlinked. """ team_starting_lineup: MLBTeamStartingLineups } """ Each MLB team's starting lineup for each game — the nine batters in batting order plus the starting pitcher (and DH where applicable). """ type MLBTeamStartingLineups { """ Primary Key """ id: BigInt team_id: BigInt game_id: BigInt pitcher_id: BigInt pitcher_status: Int batter_status: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.players row referenced by `pitcher_id`; null when unlinked. """ pitcher: MLBPlayers """ The mlb.teams row referenced by `team_id`; null when unlinked. """ team: MLBTeams """ mlb.team_starting_lineup_batters rows whose `team_starting_lineup_id` references this row. """ team_starting_lineup_batters( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamStartingLineupBatters!]! } """ The 30 MLB franchises, organized into the American and National Leagues with three divisions in each. """ type MLBTeams { """ Primary Key """ id: BigInt abbreviation: String city: String """ Official MLB team ID from statsapi.mlb.com """ league_team_id: Int league: String division: String full_name: String name: String active: Boolean venue_id: BigInt """ URL to team logo image """ logo_url: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.venues row referenced by `venue_id`; null when unlinked. """ venue: MLBVenues """ mlb.game_player_batter_stats rows whose `team_id` references this row. """ game_player_batter_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGamePlayerBatterStats!]! """ mlb.game_player_pitching_stats rows whose `team_id` references this row. """ game_player_pitching_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGamePlayerPitchingStats!]! """ mlb.game_team_rosters rows whose `team_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [MLBGameTeamRosters!]! """ mlb.game_team_stats rows whose `team_id` references this row. """ game_team_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBGameTeamStats!]! """ mlb.games rows whose `away_team_id` references this row. """ games_by_away_team_id( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.games rows whose `home_team_id` references this row. """ games_by_home_team_id( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.play_by_plays rows whose `team_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayByPlays!]! """ mlb.player_awards rows whose `team_id` references this row. """ player_awards( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerAwards!]! """ mlb.player_injuries rows whose `team_id` references this row. """ player_injuries( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerInjuries!]! """ mlb.player_news rows whose `team_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayerNews!]! """ mlb.players rows whose `team_id` references this row. """ players( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayers!]! """ mlb.season_team_stats rows whose `team_id` references this row. """ season_team_stats( """ Page size (default 50, max 500). """ first: Int ): [MLBSeasonTeamStats!]! """ mlb.team_player_rosters rows whose `team_id` references this row. """ team_player_rosters( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamPlayerRosters!]! """ mlb.team_starting_lineups rows whose `team_id` references this row. """ team_starting_lineups( """ Page size (default 50, max 500). """ first: Int ): [MLBTeamStartingLineups!]! """ mlb.playoffs rows whose `home_team_id` references this row. """ playoffs_by_home_team_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayoffs!]! """ mlb.playoffs rows whose `away_team_id` references this row. """ playoffs_by_away_team_id( """ Page size (default 50, max 500). """ first: Int ): [MLBPlayoffs!]! } """ MLB umpires — the four-person crew of home-plate, first-base, second-base, and third-base umpires who work each game (six in the postseason with outfield umpires added). """ type MLBUmpires { """ Primary Key """ id: BigInt first_name: String last_name: String full_name: String mlb_umpire_id: Int experience: Int active: Boolean birth_date: String birth_city: String birth_state: String birth_country: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ mlb.game_umpires rows whose `umpire_id` references this row. """ game_umpires( """ Page size (default 50, max 500). """ first: Int ): [MLBGameUmpires!]! } """ Outfield dimensions and wall heights for each MLB ballpark — distances to left field, center field, right field, and the power alleys, plus the height of the outfield walls. """ type MLBVenueDimensions { """ Primary Key """ id: BigInt mlb_venue_id: Int venue_name: String year: Int venue_id: BigInt foul_territory_sq_ft: Float fair_territory_sq_ft: Float total_territory_sq_ft: Float description: String orientation: Float left_field: Float left_center_field: Float center_field: Float right_center_field: Float right_field: Float left_field_fence_height: Float right_field_fence_height: Float center_field_fence_height: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Distance from home plate to backstop (feet) """ backstop_distance: Float """ Relative foul territory size (1.0 = average, >1 = large) """ foul_territory_rating: Float """ Venue altitude in feet (denormalized from venue for query convenience) """ altitude_ft: Float """ The mlb.venues row referenced by `venue_id`; null when unlinked. """ venue: MLBVenues } """ On-field weather throughout each MLB game — temperature, wind direction and speed, humidity, and precipitation captured at fixed intervals from first pitch. """ type MLBVenueWeathers { """ Primary Key """ id: BigInt game_id: BigInt venue_id: BigInt """ Minutes from game start (0, 30, 60, 90, 120, 150, 180 for 3-hour game) """ time_minutes: Int temperature: Float feels_like_temperature: Float humidity: Float dew_point: Float pressure: Float wind_speed: Float wind_direction: Float wind_gust: Float visibility: Float uv_index: Float cloud_cover: Float precipitation: Float precipitation_probability: Float weather_condition: String weather_description: String is_dome: Boolean """ open, closed, retractable_open, retractable_closed """ roof_status: String recorded_at: String """ Wind direction relative to batter's box (degrees) """ wind_direction_relative: Float """ Calculated air density (lb/ft³) """ air_density: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ True if wind is blowing from home plate toward outfield """ wind_blowing_out: Boolean """ Wind speed component blowing out to CF (mph, negative = blowing in) """ wind_component_out: Float """ Estimated ball carry factor (1.0 = neutral, >1 = carries more) """ ball_carry_factor: Float """ The mlb.games row referenced by `game_id`; null when unlinked. """ game: MLBGames """ The mlb.venues row referenced by `venue_id`; null when unlinked. """ venue: MLBVenues } """ MLB ballparks — current home stadiums and historical venues, with dimensions, surface, capacity, and roof type. """ type MLBVenues { """ Primary Key """ id: BigInt name: String """ Official MLB venue ID from statsapi.mlb.com """ league_venue_id: Int longitude: Float latitude: Float """ Elevation in feet above sea level """ elevation: Float """ Field orientation in degrees (0-360). Direction home plate faces. 0/360=North, 90=East, 180=South, 270=West """ orientation: Float description: String city: String state: String country: String capacity: Int surface: String """ Open, Dome, Retractable """ roof_type: String opened_date: String closed_date: String team_name: String """ IANA timezone (e.g., America/New_York) """ timezone: String address: String """ URL to aerial/overview image of ballpark """ image_url: String """ Historical home run park factor (1.0 = neutral) """ hr_factor: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ mlb.games rows whose `venue_id` references this row. """ games( """ Page size (default 50, max 500). """ first: Int ): [MLBGames!]! """ mlb.park_factors rows whose `venue_id` references this row. """ park_factors( """ Page size (default 50, max 500). """ first: Int ): [MLBParkFactors!]! """ mlb.teams rows whose `venue_id` references this row. """ teams( """ Page size (default 50, max 500). """ first: Int ): [MLBTeams!]! """ mlb.venue_dimensions rows whose `venue_id` references this row. """ venue_dimensions( """ Page size (default 50, max 500). """ first: Int ): [MLBVenueDimensions!]! """ mlb.venue_weathers rows whose `venue_id` references this row. """ venue_weathers( """ Page size (default 50, max 500). """ first: Int ): [MLBVenueWeathers!]! } """ The weighted on-base average coefficients for each MLB season — the run values assigned to walks, singles, doubles, triples, and home runs, used to compute wOBA and wRC+. """ type MLBWobaWeights { """ Primary Key """ id: BigInt season_id: BigInt """ Weight for unintentional walks (wBB) """ walk_weight: Float """ Weight for hit by pitch (wHBP) """ hit_by_pitch_weight: Float """ Weight for singles (w1B) """ single_weight: Float """ Weight for doubles (w2B) """ double_weight: Float """ Weight for triples (w3B) """ triple_weight: Float """ Weight for home runs (wHR) """ home_run_weight: Float """ League average wOBA for the season """ league_woba: Float """ League average OBP for calibration """ league_obp: Float """ Scale factor to convert wOBA to runs """ woba_scale: Float """ When these weights were last updated """ updated_date: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The mlb.seasons row referenced by `season_id`; null when unlinked. """ season: MLBSeasons } """ Networks, regional sports networks, and streaming services that air NBA games — ESPN, TNT, ABC, NBA TV, plus team-local RSNs like YES, MSG, and Bally Sports. """ type NBABroadcasters { """ Primary Key """ id: BigInt broadcaster_scope: String broadcaster_media: String broadcaster_id: Int broadcaster_display: String broadcaster_abbreviation: String broadcaster_description: String tape_delay_comments: String broadcaster_video_link: String region_id: Int broadcaster_team_id: Int broadcaster_ranking: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nba.game_broadcasters rows whose `broadcaster_id` references this row. """ game_broadcasters( """ Page size (default 50, max 500). """ first: Int ): [NBAGameBroadcasters!]! } """ NBA coaches and staff — head coaches, lead assistants, player-development coaches, and other basketball-operations staff who appear on team benches. """ type NBACoachingStaffs { """ Primary Key """ id: BigInt first_name: String last_name: String name: String """ Official NBA coach/staff ID from stats.nba.com """ coach_id: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nba.team_coaching_staffs rows whose `coaching_staff_id` references this row. """ team_coaching_staffs( """ Page size (default 50, max 500). """ first: Int ): [NBATeamCoachingStaffs!]! } """ Which networks broadcast each NBA game — the national TV partner, home and away regional carriers, radio calls, and streaming providers. """ type NBAGameBroadcasters { """ Primary Key """ id: BigInt game_id: BigInt broadcaster_id: BigInt broadcaster_type: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.broadcasters row referenced by `broadcaster_id`; null when unlinked. """ broadcaster: NBABroadcasters """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames } """ NBA game betting lines — point spreads, moneylines, and over/under totals from sportsbooks, captured over time as the lines move from opening to closing. """ type NBAGameLines { """ Primary Key """ id: BigInt game_id: BigInt """ Denormalized for efficient season-level queries """ season_id: BigInt """ Sportsbook id: 6 Consensus (full history); per-book ids (1 DraftKings, 2 FanDuel, 1683 Pinnacle, 1684 BetMGM, 1685 Caesars, 1686 BetRivers, 1687 ESPN BET) begin 2026-05. """ operator_id: BigInt """ Home team spread (e.g., -3.5 means home favored by 3.5) """ spread: Float """ American odds for home spread (e.g., -110) """ spread_home_odds: Int """ American odds for away spread """ spread_away_odds: Int """ American odds for home team win """ moneyline_home: Int """ American odds for away team win """ moneyline_away: Int """ Combined score total line (e.g., 224.5) """ total: Float """ American odds for over """ over_odds: Int """ American odds for under """ under_odds: Int """ Calculated from spread + total """ implied_home_score: Float implied_away_score: Float """ From moneyline, 0-1 """ implied_home_win_pct: Float implied_away_win_pct: Float """ When this snapshot was captured """ captured_at: String """ True if this is the opening line """ is_opening: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String spread_bet_pct_home: Int spread_bet_pct_away: Int spread_money_pct_home: Int spread_money_pct_away: Int moneyline_bet_pct_home: Int moneyline_bet_pct_away: Int moneyline_money_pct_home: Int moneyline_money_pct_away: Int total_bet_pct_over: Int total_bet_pct_under: Int total_money_pct_over: Int total_money_pct_under: Int """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons } """ Period-specific NBA betting lines — first-half, second-half, and individual-quarter spreads, moneylines, and totals offered alongside the full-game markets. """ type NBAGamePeriodLines { """ Primary Key """ id: BigInt game_id: BigInt """ Denormalized for efficient season-level queries """ season_id: BigInt """ Data source (consensus, DraftKings, FanDuel, etc.) """ operator_id: BigInt """ Market period code (1H, 2H, Q1, Q2, Q3, Q4) """ period_code: String """ Home team spread for this period """ spread: Float """ American odds for home spread (e.g., -110) """ spread_home_odds: Int """ American odds for away spread """ spread_away_odds: Int """ American odds for home team win in this period """ moneyline_home: Int """ American odds for away team win in this period """ moneyline_away: Int """ Combined score total line for this period """ total: Float """ American odds for over """ over_odds: Int """ American odds for under """ under_odds: Int """ From moneyline, 0-1 """ implied_home_win_pct: Float implied_away_win_pct: Float """ When this snapshot was captured """ captured_at: String """ True if this is the first captured line for this period """ is_opening: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons } """ NBA player prop bets for each game — points, rebounds, assists, threes made, steals, blocks, and other player-statistic markets offered by sportsbooks. """ type NBAGamePlayerProps { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt """ Denormalized for efficient season-level queries """ season_id: BigInt """ Usually consensus """ operator_id: BigInt """ Canonical category (points, rebounds, assists, pra, etc.) """ category: String """ Raw market key from source API (e.g., player_points) """ market_key: String """ Optional subtype (alternate, boosted, etc.) """ subcategory: String """ Optional period code (Q1, 1H) """ period_code: String """ ou | yes_no """ outcome_type: String """ Prop line for over/under markets (e.g., 24.5) """ line: Float """ American odds for over """ over_odds: Int """ American odds for under """ under_odds: Int """ American odds for yes """ yes_odds: Int """ American odds for no """ no_odds: Int """ Number of curated books contributing to this consensus value """ book_count: Int """ When this snapshot was captured """ captured_at: String """ True if this is the first captured line for this player/market """ is_opening: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons } """ Each NBA player's stat line for each game — points, rebounds, assists, steals, blocks, shooting line, three-point line, free-throw line, plus-minus, and minutes played. """ type NBAGamePlayerStats { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt player_id: BigInt comment: String start_position: String minutes: Float pts: Int assists: Int rebounds: Int steals: Int blocks: Int turnovers: Int fouls: Int field_goals_made: Int field_goals_attempted: Int three_pointers_made: Int three_pointers_attempted: Int free_throws_made: Int free_throws_attempted: Int offensive_rebounds: Int defensive_rebounds: Int potential_assists: Int shots_blocked: Int deflections: Int contests: Int charges_taken: Int passes_deflected: Int balls_stolen: Int loose_balls_recovered: Int personal_fouls: Int offensive_fouls: Int technical_fouls: Int flagrant_fouls_type_1: Int flagrant_fouls_type_2: Int clear_path_fouls: Int fouls_drawn: Int and_ones: Int traveling_violations: Int double_dribble_violations: Int carrying_palming_violations: Int backcourt_violations: Int shot_clock_violations: Int lane_violations: Int goaltending_violations: Int basket_interference_violations: Int substitutions_in: Int substitutions_out: Int jump_balls_won: Int jump_balls_lost: Int timeouts_called: Int challenges_requested: Int shot_contested_count: Int dunks: Int layups: Int alley_oops: Int put_backs: Int fast_break_pts: Int second_chance_pts: Int hockey_assists: Int screen_assists: Int box_outs: Int ejections: Int plus_minus: Int field_goal_percentage: Float three_point_percentage: Float free_throw_percentage: Float triple_doubles: Int double_doubles: Int estimated_offensive_rating: Float offensive_rating: Float estimated_defensive_rating: Float defensive_rating: Float estimated_net_rating: Float net_rating: Float assist_percentage: Float assist_to_turnover: Float assist_ratio: Float offensive_rebound_percentage: Float defensive_rebound_percentage: Float rebound_percentage: Float turnover_ratio: Float effective_field_goal_percentage: Float true_shooting_percentage: Float usage_percentage: Float estimated_usage_percentage: Float estimated_pace: Float possessions: Int touches: Int front_court_touches: Int avg_seconds_per_touch: Float avg_dribbles_per_touch: Float elbow_touches: Int paint_touches: Int time_of_possession: Float post_touches: Int pts_per_touch: Float pts_per_elbow_touch: Float pts_per_post_touch: Float pts_per_paint_touch: Float player_impact_estimate: Float drives: Int passes: Int pass_percentage: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String game_date: Int rotation_context: String foul_trouble_severity: Int abnormal_exit_period: Int abnormal_exit_clock: Int garbage_time_minutes: Float competitive_minutes: Float rotation_context_confidence: Float minutes_deviation_pct: Float role_archetype: String role_archetype_confidence: Float role_anomalous_game: Boolean """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Each offensive possession in an NBA game (regular season, play-in, IST, and playoffs — no preseason) — which team had the ball, how the possession started, how it ended (made shot, missed shot, turnover, foul), and how long it lasted. """ type NBAGamePossessions { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt start_nba_event_num: Int end_nba_event_num: Int period: Int home_score: Int away_score: Int start_clock: Int end_clock: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String fga: Int fgm: Int fg3a: Int fg3m: Int fta: Int ftm: Int oreb: Int dreb: Int ast: Int stl: Int blk: Int tov: Int pf: Int pts: Int cum_home_poss: Int cum_away_poss: Int game_seconds_elapsed: Int time_actual_start: String time_actual_end: String """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams """ nba.play_by_plays rows whose `game_possession_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! } """ The officiating crew assigned to each NBA game — the three referees who worked the matchup. """ type NBAGameReferees { """ Primary Key """ id: BigInt game_id: BigInt referee_id: BigInt position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.referees row referenced by `referee_id`; null when unlinked. """ referee: NBAReferees } """ Each continuous stretch an NBA team had the same five players on the floor (regular season, play-in, IST, and playoffs — no preseason) — the five-man unit, when it started and ended, and the team's net production while it was in. """ type NBAGameTeamLineupStints { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt period: Int player1_id: BigInt player2_id: BigInt player3_id: BigInt player4_id: BigInt player5_id: BigInt start_clock: Int end_clock: Int start_event_seq: Int end_event_seq: Int possessions: Int pts_scored: Int pts_allowed: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String pace: Float offensive_rating: Float defensive_rating: Float net_rating: Float offensive_rebound_pct: Float defensive_rebound_pct: Float assist_pct: Float turnover_pct: Float player_stats: JSON """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.players row referenced by `player1_id`; null when unlinked. """ player1: NBAPlayers """ The nba.players row referenced by `player2_id`; null when unlinked. """ player2: NBAPlayers """ The nba.players row referenced by `player3_id`; null when unlinked. """ player3: NBAPlayers """ The nba.players row referenced by `player4_id`; null when unlinked. """ player4: NBAPlayers """ The nba.players row referenced by `player5_id`; null when unlinked. """ player5: NBAPlayers """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ The gameday roster for each NBA game — every player available that night, who started, who sat, and who was on a minutes restriction, with the pre-tip snapshot and the reconciled post-game truth side by side. """ type NBAGameTeamRosters { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt player_id: BigInt position: String comment: String day: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Pre-tip roster availability: 1=Active, 2=Inactive, 3=Out """ pre_game_status: Int """ Pre-tip expected starter flag from lineup sources """ pre_game_starter: Boolean """ Pre-tip injury designation: OUT, DOUBTFUL, QUESTIONABLE, PROBABLE """ pre_game_injury_status: String """ Pre-tip lineup confidence from source (e.g. RotoWire confirmed vs expected) """ pre_game_confirmed: Boolean """ Reconciled final roster availability: 1=Active, 2=Inactive, 3=Out """ status: Int """ Whether the player was in the starting five (reconciled post-game) """ starter: Boolean """ Reconciled final injury designation for the roster row """ injury_status: String """ Whether the starter truth was established from post-game evidence """ confirmed: Boolean """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Each NBA team's stat line for each game — the same offensive, defensive, rebounding, and shooting counters as the season aggregate, broken out per game with home/away context. """ type NBAGameTeamStats { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt win: Int loss: Int minutes: Int pts: Int assists: Int rebounds: Int steals: Int blocks: Int turnovers: Int fouls: Int field_goals_made: Int field_goals_attempted: Int field_goal_percentage: Float three_pointers_made: Int three_pointers_attempted: Int three_point_percentage: Float free_throws_made: Int free_throws_attempted: Int free_throw_percentage: Float offensive_rebounds: Int defensive_rebounds: Int fast_break_pts: Int pts_in_paint: Int second_chance_pts: Int pts_off_turnovers: Int bench_pts: Int timeouts_remaining: Int assists_to_turnovers: Float steals_to_turnovers: Float defensive_rating: Float offensive_rating: Float net_rating: Float assist_percentage: Float assist_ratio: Float offensive_rebound_percentage: Float defensive_rebound_percentage: Float rebound_percentage: Float turnover_percentage: Float possessions: Int pace: Float pace_per40: Float true_shooting_percentage: Float effective_field_goal_percentage: Float player_impact_estimate: Float estimated_offensive_rating: Float estimated_defensive_rating: Float estimated_net_rating: Float estimated_pace: Float free_throw_attempt_rate: Float pct_fga_2pt: Float pct_fga_3pt: Float pct_pts_2pt: Float pct_pts_2pt_mr: Float pct_pts_3pt: Float pct_pts_fb: Float pct_pts_ft: Float pct_pts_off_tov: Float pct_pts_paint: Float pct_ast_2pm: Float pct_uast_2pm: Float pct_ast_3pm: Float pct_uast_3pm: Float pct_ast_fgm: Float pct_uast_fgm: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Cumulative wins """ wins: Int """ Cumulative losses """ losses: Int """ Conference rank entering game """ conference_rank: Int """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Every scheduled and played NBA game from the 2020-21 season onward — preseason, the 82-game regular season, the In-Season Tournament, the play-in round, and the four-round playoffs through the NBA Finals. All-Star exhibitions are not included. """ type NBAGames { """ Primary Key """ id: BigInt season_id: BigInt game_time: String """ Official NBA game ID from stats.nba.com """ league_game_id: String home_team_id: BigInt away_team_id: BigInt status: String start_time: String end_time: String season_type: String day: Int away_team: String home_team: String stadium_id: Int channel: String attendance: Int away_team_score: Int home_team_score: Int home_rotation_number: Int away_rotation_number: Int neutral_venue: Boolean series_name: String if_necessary: Boolean series_game_number: String game_label: String game_sub_label: String series_text: String postponed_status: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `home_team_id`; null when unlinked. """ home_team_ref: NBATeams """ The nba.teams row referenced by `away_team_id`; null when unlinked. """ away_team_ref: NBATeams """ The nba.stadiums row referenced by `stadium_id`; null when unlinked. """ stadium: NBAStadiums """ nba.game_broadcasters rows whose `game_id` references this row. """ game_broadcasters( """ Page size (default 50, max 500). """ first: Int ): [NBAGameBroadcasters!]! """ nba.game_lines rows whose `game_id` references this row. """ game_lines( """ Page size (default 50, max 500). """ first: Int ): [NBAGameLines!]! """ nba.game_period_lines rows whose `game_id` references this row. """ game_period_lines( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePeriodLines!]! """ nba.game_player_props rows whose `game_id` references this row. """ game_player_props( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerProps!]! """ nba.game_player_stats rows whose `game_id` references this row. """ game_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerStats!]! """ nba.game_possessions rows whose `game_id` references this row. """ game_possessions( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePossessions!]! """ nba.game_referees rows whose `game_id` references this row. """ game_referees( """ Page size (default 50, max 500). """ first: Int ): [NBAGameReferees!]! """ nba.game_team_lineup_stints rows whose `game_id` references this row. """ game_team_lineup_stints( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_rosters rows whose `game_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamRosters!]! """ nba.game_team_stats rows whose `game_id` references this row. """ game_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamStats!]! """ nba.play_by_plays rows whose `game_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.team_game_contexts rows whose `game_id` references this row. """ team_game_contexts( """ Page size (default 50, max 500). """ first: Int ): [NBATeamGameContexts!]! } """ How each sportsbook and fantasy operator names every NBA player — the mapping from each operator's player identifier to a unified player record. """ type NBAOperatorPlayerLookups { """ Primary Key """ id: BigInt """ Operator id: 1 DraftKings, 2 FanDuel, 3 Yahoo, 13 sportsdata.io, 83 stats.nba.com. """ operator_id: BigInt """ External player ID from operator """ operator_player_id: String """ Internal nba.players.id reference """ player_id: BigInt """ Player name for reconciliation """ player_name: String """ Position for reconciliation """ position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers } """ How each sportsbook and fantasy operator names every NBA team — the mapping from each operator's team code to the unified franchise record. """ type NBAOperatorTeamLookups { """ Primary Key """ id: BigInt """ Reference to main.operator entity """ operator_id: BigInt """ External team ID from operator """ operator_team_id: String """ Internal nba.teams.id reference """ team_id: BigInt """ Team name for reconciliation """ team_name: String """ Team abbreviation for reconciliation """ abbreviation: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Every individual event in every NBA game (regular season, play-in, IST, and playoffs — no preseason) — made and missed shots, rebounds, assists, fouls, turnovers, blocks, steals, substitutions, and timeouts, with the game clock at the moment. Period and score context live on game_possessions (FK game_possession_id). """ type NBAPlayByPlays { """ Primary Key """ id: BigInt play_id: String nba_event_num: Int game_possession_id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt event_type: Int event_sub_type: Int home_description: String visitor_description: String neutral_description: String start_clock: Int end_clock: Int player2_id: BigInt player2_team_id: BigInt player3_id: BigInt player3_team_id: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String time_actual: String event_seq: Int possession_seq: Int """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.game_possessions row referenced by `game_possession_id`; null when unlinked. """ game_possession: NBAGamePossessions """ The nba.players row referenced by `player2_id`; null when unlinked. """ player2: NBAPlayers """ The nba.teams row referenced by `player2_team_id`; null when unlinked. """ player2_team: NBATeams """ The nba.players row referenced by `player3_id`; null when unlinked. """ player3: NBAPlayers """ The nba.teams row referenced by `player3_team_id`; null when unlinked. """ player3_team: NBATeams """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ News about NBA players — trades, injuries, lineup decisions, suspensions, and general beat-reporter updates. """ type NBAPlayerNews { """ Primary Key """ id: BigInt player_id: BigInt team_id: BigInt title: String description: String analysis: String source: String link: String news_time: String priority: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String content: String author: String """ injury, transaction, lineup, general """ category: String external_id: String ai_processed: Boolean situational_impact: JSON """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Every individual who has played in the NBA — current rosters, two-way and 10-day contracts, G-League call-ups, free agents, and retired veterans. The roster signal lives in `roster_status` (the canonical cross-league vocabulary) and `team_id` (null for free agents and retired players). Pass `?team_id=` to scope to one franchise's current roster, or omit it to scan the full historical roster pool. """ type NBAPlayers { """ Primary Key """ id: BigInt """ Player's legal first name as registered with the league. """ first_name: String """ Player's legal last name. """ last_name: String """ Convenience concatenation of first_name + last_name. Use this for display. """ full_name: String """ Current jersey number as a string (some leagues allow leading zeros, e.g., "00"). """ jersey: String """ Official NBA player ID from stats.nba.com. Stable across seasons; use for cross-API joins to nba_stats sources. """ league_player_id: Int """ Primary position. One of G, F, C, G-F, F-C. (True PG/SG/SF/PF splits live in team_depth_charts.position.) """ primary_position: String """ Hyphenated full-word position list (e.g., "Guard-Forward", "Center-Forward"). """ full_position_list: String """ FK to nba.teams. Null for free agents and retired players. """ team_id: BigInt """ NBA-issued URL slug (e.g., for stats.nba.com player page). """ league_slug: String """ Coarse positional grouping. One of Guard, Forward, Center, Utility. """ position_category: String """ Height in inches. """ height: Int """ Listed weight in pounds. """ weight: Int """ Birth date in YYYY-MM-DD form. """ birth_date: String """ City of birth. """ birth_city: String """ State / province of birth (US/Canadian players). """ birth_state: String """ Country of birth (ISO English name). """ birth_country: String """ Last school attended before the NBA (college, prep, or international club). """ school: String """ Years of NBA experience as of the most recent season. Rookies = 0. """ experience: Int """ Display name in "Last, First" form. Useful for sorted lists. """ display_last_comma_first: String """ Display name in "F. Last" form. """ display_fi_last: String """ Most recent pre-NBA affiliation (school, league, or team). """ last_affiliation: String """ Current team's mascot name (denormalized from teams.name for read convenience). """ team_name: String """ Current team's tri-letter code. """ team_abbreviation: String """ Current team's lowercase URL slug. """ team_code: String """ Current team's city name. """ team_city: String """ NBA-issued player code (lastname_firstname format). """ playercode: String """ Player's NBA debut year as a string (per stats.nba.com). """ from_year: String """ Player's most recent NBA season year. Equal to from_year for rookies. """ to_year: String """ Two-character bit-string from stats.nba.com: "00" no G-League history, "01" G-League experience, "11" currently G-League-affiliated (two-way / assignment). """ dleague_flag: String """ String "Y"/"N" indicating NBA experience. Almost always "Y" in this table. """ nba_flag: String """ String "Y"/"N" indicating whether the player has played at least one regular-season game. """ games_played_flag: String """ Year the player was drafted (string form). Empty for undrafted players. """ draft_year: String """ Draft round (string). Empty for undrafted players. """ draft_round: String """ Overall pick number within the draft (string). Empty for undrafted. """ draft_number: String """ Canonical roster status, shared across leagues. NBA source granularity is coarse: "active" (on an NBA roster), "free_agent" (no team), "inactive" (not currently rostered); injured_reserve/retired appear where derivable. The "on a team now" set is {active, injured_reserve}. """ roster_status: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Current injury status snapshot derived from player_news. Values: "OUT", "QUESTIONABLE"; null = no active injury designation (healthy). """ injury_status: String """ Affected body part for the most recent injury (e.g., "Knee", "Ankle"). Null when injury_status is null. """ injury_body_part: String """ Free-text injury description from the source feed. """ injury_detail: String """ Timestamp of the injury status snapshot. Updated when player_news produces a new injury entry. """ injury_since: String """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams """ nba.game_player_props rows whose `player_id` references this row. """ game_player_props( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerProps!]! """ nba.game_player_stats rows whose `player_id` references this row. """ game_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerStats!]! """ nba.game_team_lineup_stints rows whose `player1_id` references this row. """ game_team_lineup_stints_by_player1_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_lineup_stints rows whose `player2_id` references this row. """ game_team_lineup_stints_by_player2_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_lineup_stints rows whose `player3_id` references this row. """ game_team_lineup_stints_by_player3_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_lineup_stints rows whose `player4_id` references this row. """ game_team_lineup_stints_by_player4_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_lineup_stints rows whose `player5_id` references this row. """ game_team_lineup_stints_by_player5_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_rosters rows whose `player_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamRosters!]! """ nba.operator_player_lookups rows whose `player_id` references this row. """ operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [NBAOperatorPlayerLookups!]! """ nba.play_by_plays rows whose `player2_id` references this row. """ play_by_plays_by_player2_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.play_by_plays rows whose `player3_id` references this row. """ play_by_plays_by_player3_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.play_by_plays rows whose `player_id` references this row. """ play_by_plays_by_player_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.player_news rows whose `player_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayerNews!]! """ nba.season_player_stats rows whose `player_id` references this row. """ season_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NBASeasonPlayerStats!]! """ nba.team_depth_charts rows whose `player_id` references this row. """ team_depth_charts( """ Page size (default 50, max 500). """ first: Int ): [NBATeamDepthCharts!]! } """ The NBA postseason bracket — the play-in tournament, the four conference series rounds, and the NBA Finals, tracked as best-of-seven matchups with seeds, wins, and outcomes. """ type NBAPlayoffs { """ Primary Key """ id: BigInt season_id: BigInt series_id: BigInt series_name: String home_team_id: BigInt away_team_id: BigInt home_team_wins: Int away_team_wins: Int games_played: Int max_games: Int status: String series_text: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `home_team_id`; null when unlinked. """ home_team: NBATeams """ The nba.teams row referenced by `away_team_id`; null when unlinked. """ away_team: NBATeams } type NBAQuery { """ Networks, regional sports networks, and streaming services that air NBA games — ESPN, TNT, ABC, NBA TV, plus team-local RSNs like YES, MSG, and Bally Sports. Metered by rows resolved across all nested lists — the same record unit as REST. """ broadcasters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NBABroadcasters!]! """ NBA coaches and staff — head coaches, lead assistants, player-development coaches, and other basketball-operations staff who appear on team benches. Metered by rows resolved across all nested lists — the same record unit as REST. """ coaching_staffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NBACoachingStaffs!]! """ Which networks broadcast each NBA game — the national TV partner, home and away regional carriers, radio calls, and streaming providers. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_broadcasters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by broadcaster. """ broadcaster_id: Int, """ Filter by broadcaster role. """ broadcaster_type: String ): [NBAGameBroadcasters!]! """ NBA game betting lines — point spreads, moneylines, and over/under totals from sportsbooks, captured over time as the lines move from opening to closing. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_lines( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by season. """ season_id: Int, """ Filter by sportsbook id: 6 Consensus (full history), 1 DraftKings, 2 FanDuel, 1683 Pinnacle, 1684 BetMGM, 1685 Caesars, 1686 BetRivers, 1687 ESPN BET (per-book rows begin 2026-05). """ operator_id: Int, """ Filter to opening lines only. Reliable from the 2025-26 season; earlier seasons largely lack opener flags. """ is_opening: Boolean ): [NBAGameLines!]! """ Period-specific NBA betting lines — first-half, second-half, and individual-quarter spreads, moneylines, and totals offered alongside the full-game markets. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_period_lines( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by season. """ season_id: Int, """ Filter by sportsbook. """ operator_id: Int, """ Filter by period (1H, 2H, Q1, Q2, Q3, Q4). """ period_code: String ): [NBAGamePeriodLines!]! """ NBA player prop bets for each game — points, rebounds, assists, threes made, steals, blocks, and other player-statistic markets offered by sportsbooks. Requires at least one of these filter sets: `game_id` | `player_id + season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_props( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. With season_id: the player's prop history across a season. """ player_id: Int, """ Filter by season. """ season_id: Int, """ Filter by sportsbook. Historical rows are operator 6 (Consensus); per-book rows (1 DraftKings, 2 FanDuel, 1683 Pinnacle, 1684 BetMGM, 1685 Caesars, 1686 BetRivers, 1687 ESPN BET) begin 2026-05. """ operator_id: Int, """ Filter by prop category (points, rebounds, assists, pra, etc.). """ category: String, """ Filter by raw market key (e.g., player_points). """ market_key: String ): [NBAGamePlayerProps!]! """ Each NBA player's stat line for each game — points, rebounds, assists, steals, blocks, shooting line, three-point line, free-throw line, plus-minus, and minutes played. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player — their full game log, newest first. Combine with game_date ranges to window it. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by game day (YYYYMMDD integer, US Eastern). """ game_date: Int, """ `gte` comparison on `game_date`. """ game_date__gte: Int, """ `lte` comparison on `game_date`. """ game_date__lte: Int, """ Range filter on `game_date` — pass "lo,hi". """ game_date__between: String ): [NBAGamePlayerStats!]! """ Each offensive possession in an NBA game (regular season, play-in, IST, and playoffs — no preseason) — which team had the ball, how the possession started, how it ended (made shot, missed shot, turnover, foul), and how long it lasted. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_possessions( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team in possession. """ team_id: Int ): [NBAGamePossessions!]! """ The officiating crew assigned to each NBA game — the three referees who worked the matchup. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_referees( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by referee. """ referee_id: Int ): [NBAGameReferees!]! """ Each continuous stretch an NBA team had the same five players on the floor (regular season, play-in, IST, and playoffs — no preseason) — the five-man unit, when it started and ended, and the team's net production while it was in. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_lineup_stints( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int ): [NBAGameTeamLineupStints!]! """ The gameday roster for each NBA game — every player available that night, who started, who sat, and who was on a minutes restriction, with the pre-tip snapshot and the reconciled post-game truth side by side. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_rosters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int, """ Filter to a single player. """ player_id: Int ): [NBAGameTeamRosters!]! """ Each NBA team's stat line for each game — the same offensive, defensive, rebounding, and shooting counters as the season aggregate, broken out per game with home/away context. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int ): [NBAGameTeamStats!]! """ Every scheduled and played NBA game from the 2020-21 season onward — preseason, the 82-game regular season, the In-Season Tournament, the play-in round, and the four-round playoffs through the NBA Finals. All-Star exhibitions are not included. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ games( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season. Defaults to the current season. """ season_id: Int, """ Filter by home team. """ home_team_id: Int, """ Filter by away team. """ away_team_id: Int, """ Filter by game status. """ status: String, """ Filter by calendar day (YYYYMMDD integer, US Eastern) — e.g. day=20260609 for tonight's slate. Note season_id defaults to the current season; pass season_id explicitly when querying a past season's day. """ day: Int, """ `gte` comparison on `day`. """ day__gte: Int, """ `lte` comparison on `day`. """ day__lte: Int, """ Range filter on `day` — pass "lo,hi". """ day__between: String, """ Filter by season phase (regular_season, preseason, postseason, play_in, in_season_tournament, all_star). """ season_type: String ): [NBAGames!]! """ How each sportsbook and fantasy operator names every NBA player — the mapping from each operator's player identifier to a unified player record. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ operator_player_lookups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by operator id: 1 DraftKings, 2 FanDuel, 3 Yahoo, 13 sportsdata.io, 83 stats.nba.com. """ operator_id: Int, """ Filter to a single player. """ player_id: Int ): [NBAOperatorPlayerLookups!]! """ How each sportsbook and fantasy operator names every NBA team — the mapping from each operator's team code to the unified franchise record. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ operator_team_lookups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by operator. """ operator_id: Int, """ Filter by team. """ team_id: Int ): [NBAOperatorTeamLookups!]! """ Every individual event in every NBA game (regular season, play-in, IST, and playoffs — no preseason) — made and missed shots, rebounds, assists, fouls, turnovers, blocks, steals, substitutions, and timeouts, with the game clock at the moment. Period and score context live on game_possessions (FK game_possession_id). Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ play_by_plays( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to plays involving a specific player. """ player_id: Int, """ Filter to plays by a specific team. """ team_id: Int, """ Filter by event type code: 1 made shot, 2 missed shot, 3 free throw, 4 rebound, 5 turnover, 6 foul, 7 violation, 8 substitution, 9 timeout, 10 jump ball, 11 ejection, 12 period start, 13 period end, 18 instant replay (stats.nba.com codes). """ event_type: Int ): [NBAPlayByPlays!]! """ News about NBA players — trades, injuries, lineup decisions, suspensions, and general beat-reporter updates. Requires at least one of these filter sets: `player_id` | `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_news( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to news about a single player. """ player_id: Int, """ Filter by team — a team-level news feed, newest first. """ team_id: Int, """ Filter by news category (injury, transaction, lineup, general). """ category: String, """ Filter by publication time (ISO 8601). Use news_time__gte to poll for items since your last check. """ news_time: String, """ `gte` comparison on `news_time`. """ news_time__gte: String, """ `lte` comparison on `news_time`. """ news_time__lte: String, """ Range filter on `news_time` — pass "lo,hi". """ news_time__between: String ): [NBAPlayerNews!]! """ Every individual who has played in the NBA — current rosters, two-way and 10-day contracts, G-League call-ups, free agents, and retired veterans. The roster signal lives in `roster_status` (the canonical cross-league vocabulary) and `team_id` (null for free agents and retired players). Pass `?team_id=` to scope to one franchise's current roster, or omit it to scan the full historical roster pool. Requires at least one of these filter sets: `roster_status`. Metered by rows resolved across all nested lists — the same record unit as REST. """ players( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to players whose current team_id matches. Null team_id rows (free agents, retired) are excluded when this filter is applied. """ team_id: Int, """ Filter by canonical roster status. Defaults to active (current roster); pass roster_status= explicitly for other tiers (injured_reserve, free_agent, retired, inactive). The "on a team now" set is {active, injured_reserve}. """ roster_status: String ): [NBAPlayers!]! """ The NBA postseason bracket — the play-in tournament, the four conference series rounds, and the NBA Finals, tracked as best-of-seven matchups with seeds, wins, and outcomes. Metered by rows resolved across all nested lists — the same record unit as REST. """ playoffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NBAPlayoffs!]! """ NBA officials — the three-person crew of referees who work each game. Metered by rows resolved across all nested lists — the same record unit as REST. """ referees( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [NBAReferees!]! """ Season totals for each NBA player — scoring, rebounding, assists, steals, blocks, shooting splits, advanced metrics, plus-minus, and minutes played. Regular-season games only; playoff, play-in, and preseason totals are not included. Players traded mid-season have one merged row (no per-team split). Requires at least one of these filter sets: `season_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_player_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single season. Defaults to the current season. """ season_id: Int, """ Filter to a single player. """ player_id: Int ): [NBASeasonPlayerStats!]! """ Season totals for each NBA team — wins and losses, points scored and allowed, pace, offensive and defensive ratings, rebounding margins, shooting splits, and turnover differentials. Regular-season games only; playoff, play-in, and preseason totals are not included. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_team_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single season. Defaults to the current season. """ season_id: Int, """ Filter by team. """ team_id: Int ): [NBASeasonTeamStats!]! """ Each NBA league year, running from October through June — the 82-game regular season, the play-in tournament, and the four-round playoffs that end with the NBA Finals. Metered by rows resolved across all nested lists — the same record unit as REST. """ seasons( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NBASeasons!]! """ NBA arenas — current home venues and historical buildings the league's teams have played in. Metered by rows resolved across all nested lists — the same record unit as REST. """ stadiums( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NBAStadiums!]! """ The coaching staff each NBA team carries through the season — head coach, assistants, trainers — with the dates each staff member started and ended their tenure. Requires at least one of these filter sets: `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_coaching_staffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a season. """ season_id: Int, """ Filter by coach role (Head Coach, Assistant Coach, Trainer). """ coach_type: String ): [NBATeamCoachingStaffs!]! """ Each NBA team's depth chart by position on each date — the starter, second-unit, and bench order at point guard, shooting guard, small forward, power forward, and center, with injury designations layered in. Requires at least one of these filter sets: `team_id + season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_depth_charts( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a season. Defaults to the current season. """ season_id: Int, """ Filter by position (PG, SG, SF, PF, C). """ position: String, """ Snapshot day (YYYYMMDD integer). The table holds one snapshot per day; pass the latest day for the current depth chart. """ day: Int, """ `gte` comparison on `day`. """ day__gte: Int, """ `lte` comparison on `day`. """ day__lte: Int, """ Range filter on `day` — pass "lo,hi". """ day__between: String ): [NBATeamDepthCharts!]! """ Situational context for each NBA team in each game — how much the game matters (playoff push, tanking, contender mode, In-Season Tournament stakes), what phase of the season it's in, and how far along the schedule the team is. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_game_contexts( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int, """ Filter by season. """ season_id: Int ): [NBATeamGameContexts!]! """ Conference and division standings throughout the NBA season — wins, losses, win percentage, games behind, last-10 record, win/loss streak, and home/away splits as of each date. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_standings( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single season. Defaults to the current season. """ season_id: Int, """ Filter by team. """ team_id: Int, """ Standings as of this day (YYYYMMDD integer). Omit for all daily snapshots, newest first; pass a day for a point-in-time table. """ day: Int, """ `gte` comparison on `day`. """ day__gte: Int, """ `lte` comparison on `day`. """ day__lte: Int, """ Range filter on `day` — pass "lo,hi". """ day__between: String ): [NBATeamStandings!]! """ The 30 NBA franchises, organized into the Eastern and Western Conferences with three divisions in each. Metered by rows resolved across all nested lists — the same record unit as REST. """ teams( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [NBATeams!]! } """ NBA officials — the three-person crew of referees who work each game. """ type NBAReferees { """ Primary Key """ id: BigInt first_name: String last_name: String full_name: String jersey_number: String nba_referee_id: Int experience: Int active: Boolean birth_date: String birth_city: String birth_state: String birth_country: String college: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nba.game_referees rows whose `referee_id` references this row. """ game_referees( """ Page size (default 50, max 500). """ first: Int ): [NBAGameReferees!]! } """ Season totals for each NBA player — scoring, rebounding, assists, steals, blocks, shooting splits, advanced metrics, plus-minus, and minutes played. Regular-season games only; playoff, play-in, and preseason totals are not included. Players traded mid-season have one merged row (no per-team split). """ type NBASeasonPlayerStats { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt games_played: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String wins: Int losses: Int minutes: Float pts: Int assists: Int rebounds: Int steals: Int blocks: Int turnovers: Int fouls: Int field_goals_made: Int field_goals_attempted: Int three_pointers_made: Int three_pointers_attempted: Int free_throws_made: Int free_throws_attempted: Int offensive_rebounds: Int defensive_rebounds: Int plus_minus: Int double_doubles: Int triple_doubles: Int field_goal_percentage: Float three_point_percentage: Float free_throw_percentage: Float offensive_rating: Float defensive_rating: Float net_rating: Float assist_percentage: Float assist_to_turnover: Float assist_ratio: Float offensive_rebound_percentage: Float defensive_rebound_percentage: Float rebound_percentage: Float turnover_percentage: Float effective_field_goal_percentage: Float true_shooting_percentage: Float usage_percentage: Float pace: Float player_impact_estimate: Float possessions: Int touches: Int front_court_touches: Int time_of_possession: Float avg_seconds_per_touch: Float avg_dribbles_per_touch: Float """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons } """ Season totals for each NBA team — wins and losses, points scored and allowed, pace, offensive and defensive ratings, rebounding margins, shooting splits, and turnover differentials. Regular-season games only; playoff, play-in, and preseason totals are not included. """ type NBASeasonTeamStats { """ Primary Key """ id: BigInt team_id: BigInt season_id: BigInt games_played: Int wins: Int losses: Int ties: Int pts_scored: Int pts_allowed: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Each NBA league year, running from October through June — the 82-game regular season, the play-in tournament, and the four-round playoffs that end with the NBA Finals. """ type NBASeasons { """ Primary Key """ id: BigInt start_date: String end_date: String start_year: Int regular_season_start_date: String post_season_start_date: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nba.game_lines rows whose `season_id` references this row. """ game_lines( """ Page size (default 50, max 500). """ first: Int ): [NBAGameLines!]! """ nba.game_period_lines rows whose `season_id` references this row. """ game_period_lines( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePeriodLines!]! """ nba.game_player_props rows whose `season_id` references this row. """ game_player_props( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerProps!]! """ nba.games rows whose `season_id` references this row. """ games( """ Page size (default 50, max 500). """ first: Int ): [NBAGames!]! """ nba.playoffs rows whose `season_id` references this row. """ playoffs( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayoffs!]! """ nba.season_player_stats rows whose `season_id` references this row. """ season_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NBASeasonPlayerStats!]! """ nba.season_team_stats rows whose `season_id` references this row. """ season_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NBASeasonTeamStats!]! """ nba.team_coaching_staffs rows whose `season_id` references this row. """ team_coaching_staffs( """ Page size (default 50, max 500). """ first: Int ): [NBATeamCoachingStaffs!]! """ nba.team_depth_charts rows whose `season_id` references this row. """ team_depth_charts( """ Page size (default 50, max 500). """ first: Int ): [NBATeamDepthCharts!]! """ nba.team_game_contexts rows whose `season_id` references this row. """ team_game_contexts( """ Page size (default 50, max 500). """ first: Int ): [NBATeamGameContexts!]! """ nba.team_standings rows whose `season_id` references this row. """ team_standings( """ Page size (default 50, max 500). """ first: Int ): [NBATeamStandings!]! } """ NBA arenas — current home venues and historical buildings the league's teams have played in. """ type NBAStadiums { """ Primary Key """ id: BigInt name: String """ Official NBA arena ID from stats.nba.com """ league_stadium_id: Int longitude: Float latitude: Float """ Elevation in feet above sea level """ elevation: Float description: String city: String state: String country: String capacity: Int surface: String """ Arena roof type (all indoor) """ roof_type: String opened_date: String closed_date: String team_name: String """ IANA timezone (e.g., America/New_York) """ timezone: String address: String """ URL to aerial/overview image of arena """ image_url: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nba.teams rows whose `stadium_id` references this row. """ teams( """ Page size (default 50, max 500). """ first: Int ): [NBATeams!]! """ nba.games rows whose `stadium_id` references this row. """ games( """ Page size (default 50, max 500). """ first: Int ): [NBAGames!]! } """ The coaching staff each NBA team carries through the season — head coach, assistants, trainers — with the dates each staff member started and ended their tenure. """ type NBATeamCoachingStaffs { """ Primary Key """ id: BigInt team_id: BigInt """ First season of this tenure """ season_id: BigInt """ Head Coach, Assistant Coach, Trainer """ coach_type: String is_assistant: Boolean sort_sequence: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Tenure start date (derived from season start) """ start_date: String """ Tenure end date. NULL = still active. """ end_date: String coaching_staff_id: BigInt """ The nba.coaching_staffs row referenced by `coaching_staff_id`; null when unlinked. """ coaching_staff: NBACoachingStaffs """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Each NBA team's depth chart by position on each date — the starter, second-unit, and bench order at point guard, shooting guard, small forward, power forward, and center, with injury designations layered in. """ type NBATeamDepthCharts { """ Primary Key """ id: BigInt team_id: BigInt player_id: BigInt season_id: BigInt """ YYYYMMDD snapshot day """ day: Int """ PG, SG, SF, PF, C """ position: String """ 1-based rank within position (1 = starter) """ depth_rank: Int """ Day-To-Day, Out, etc. from ESPN """ injury_status: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.players row referenced by `player_id`; null when unlinked. """ player: NBAPlayers """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ Situational context for each NBA team in each game — how much the game matters (playoff push, tanking, contender mode, In-Season Tournament stakes), what phase of the season it's in, and how far along the schedule the team is. """ type NBATeamGameContexts { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt season_id: BigInt opponent_team_id: BigInt """ contender, playoff_lock, seeding_battle, playoff_push, play_in, fringe, tanking, eliminated, early_season, playoff_comfortable, playoff_competitive, playoff_desperate, playoff_elimination, playoff_clinch, ist_contending, ist_eliminated, ist_knockout """ motivation: String """ 1-10 motivation intensity scale """ intensity: Int """ early, mid, late, final_push, postseason """ season_phase: String """ 0.0-1.0 how far through regular season """ season_pct: Float """ regular, playoff, play_in, ist_group, ist_knockout, preseason, allstar """ game_type: String conference_rank: Int win_pct: Float games_remaining: Int team_series_wins: Int is_elimination: Boolean is_clinch: Boolean ist_group_rank: Int """ e.g. 2-1 """ ist_group_record: String rest_days: Int is_back_to_back: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.games row referenced by `game_id`; null when unlinked. """ game: NBAGames """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams """ The nba.teams row referenced by `opponent_team_id`; null when unlinked. """ opponent_team: NBATeams } """ Conference and division standings throughout the NBA season — wins, losses, win percentage, games behind, last-10 record, win/loss streak, and home/away splits as of each date. """ type NBATeamStandings { """ Primary Key """ id: BigInt season_id: BigInt team_id: BigInt """ YYYYMMDD — standings as of this date (before games on this day) """ day: Int wins: Int losses: Int win_pct: Float """ 1-15 within conference """ conference_rank: Int """ 1-5 within division """ division_rank: Int """ Games back from conference leader """ conference_gb: Float """ Games back from 6th seed (auto-qualify cutoff) """ playoff_gb: Float """ Games back from 10th seed (play-in cutoff) """ playin_gb: Float games_played: Int games_remaining: Int l10_wins: Int l10_losses: Int """ Positive = win streak, negative = loss streak """ streak: Int home_wins: Int home_losses: Int away_wins: Int away_losses: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.seasons row referenced by `season_id`; null when unlinked. """ season: NBASeasons """ The nba.teams row referenced by `team_id`; null when unlinked. """ team: NBATeams } """ The 30 NBA franchises, organized into the Eastern and Western Conferences with three divisions in each. """ type NBATeams { """ Primary Key """ id: BigInt abbreviation: String city: String """ Official NBA team ID from stats.nba.com """ league_team_id: Int conference: String division: String full_name: String name: String active: Boolean stadium_id: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nba.stadiums row referenced by `stadium_id`; null when unlinked. """ stadium: NBAStadiums """ nba.game_player_stats rows whose `team_id` references this row. """ game_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerStats!]! """ nba.game_possessions rows whose `team_id` references this row. """ game_possessions( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePossessions!]! """ nba.game_team_lineup_stints rows whose `team_id` references this row. """ game_team_lineup_stints( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamLineupStints!]! """ nba.game_team_rosters rows whose `team_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamRosters!]! """ nba.game_team_stats rows whose `team_id` references this row. """ game_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NBAGameTeamStats!]! """ nba.operator_team_lookups rows whose `team_id` references this row. """ operator_team_lookups( """ Page size (default 50, max 500). """ first: Int ): [NBAOperatorTeamLookups!]! """ nba.play_by_plays rows whose `player2_team_id` references this row. """ play_by_plays_by_player2_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.play_by_plays rows whose `player3_team_id` references this row. """ play_by_plays_by_player3_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.play_by_plays rows whose `team_id` references this row. """ play_by_plays_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayByPlays!]! """ nba.player_news rows whose `team_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayerNews!]! """ nba.players rows whose `team_id` references this row. """ players( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayers!]! """ nba.season_team_stats rows whose `team_id` references this row. """ season_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NBASeasonTeamStats!]! """ nba.team_coaching_staffs rows whose `team_id` references this row. """ team_coaching_staffs( """ Page size (default 50, max 500). """ first: Int ): [NBATeamCoachingStaffs!]! """ nba.team_depth_charts rows whose `team_id` references this row. """ team_depth_charts( """ Page size (default 50, max 500). """ first: Int ): [NBATeamDepthCharts!]! """ nba.team_game_contexts rows whose `team_id` references this row. """ team_game_contexts_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBATeamGameContexts!]! """ nba.team_standings rows whose `team_id` references this row. """ team_standings( """ Page size (default 50, max 500). """ first: Int ): [NBATeamStandings!]! """ nba.games rows whose `home_team_id` references this row. """ games_by_home_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGames!]! """ nba.games rows whose `away_team_id` references this row. """ games_by_away_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAGames!]! """ nba.playoffs rows whose `home_team_id` references this row. """ playoffs_by_home_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayoffs!]! """ nba.playoffs rows whose `away_team_id` references this row. """ playoffs_by_away_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBAPlayoffs!]! """ nba.team_game_contexts rows whose `opponent_team_id` references this row. """ team_game_contexts_by_opponent_team_id( """ Page size (default 50, max 500). """ first: Int ): [NBATeamGameContexts!]! } """ Every coaching change across NFL history with dates — when each head coach, offensive coordinator, and defensive coordinator started, when they left, and why (fired, resigned, promoted, retired). """ type NFLCoachingStaffTenures { """ Primary Key """ id: BigInt """ Reference to the team """ team_id: BigInt """ Reference to the season """ season_id: BigInt """ Coaching position (HC, OC, DC) """ position: String """ Coach full name """ full_name: String first_name: String last_name: String """ Date this coach started in this role """ effective_date: String """ Date this coach ended (null if current) """ end_date: String is_interim: Boolean """ Reason for change (fired, resigned, hired, promoted) """ reason: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ The coaching staff for each NFL team at a given season — head coach, offensive coordinator, defensive coordinator, special teams coordinator, and position coaches. """ type NFLCoachingStaffs { """ Primary Key """ id: BigInt team_id: BigInt season_id: BigInt first_name: String last_name: String full_name: String position: String experience: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ NFL Scouting Combine results — every prospect's measurables and drill times from the annual Indianapolis combine (height, weight, 40-yard dash, vertical jump, bench press, broad jump, three-cone, shuttle). """ type NFLCombineResults { """ Primary Key """ id: BigInt player_id: BigInt """ Calendar year of the Combine (e.g., 2024 for the February 2024 combine). """ season: Int team_id: BigInt """ Position the player was measured as (e.g., QB, WR, RB, CB). """ position: String """ College or last-affiliation school name. """ school: String """ Height as reported by the Combine (e.g., `6-2` for 6 feet 2 inches). """ ht: String """ Weight in pounds. """ wt: Int """ 40-yard dash time in seconds. """ forty: Float """ Bench press repetitions at 225 lbs. """ bench: Int """ Vertical jump in inches. """ vertical: Float """ Broad jump distance in inches. """ broad_jump: Int """ 3-cone drill time in seconds. """ cone: Float """ 20-yard shuttle time in seconds. """ shuttle: Float """ Pro Football Reference player ID (external lookup). """ pfr_id: String """ College Football Reference player ID (external lookup). """ cfb_id: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Where each player sits on the depth chart — position, depth order (starter, second-string, backup), and the formation grouping (offense, defense, special teams). Child rows of depth_chart_snapshots; for the canonical per-game weekly chart use depth_charts instead. """ type NFLDepthChartEntries { """ Primary Key """ id: BigInt snapshot_id: BigInt player_id: BigInt """ Position abbreviation (QB, RB, WR, etc.) """ position: String """ Specific depth position (QB1, RB2, etc.) """ depth_position: String """ Order within position (1=starter, 2=backup, etc.) """ depth_order: Int """ Formation group (offense, defense, special_teams) """ formation: String jersey_number: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers } """ A team's full depth chart captured at a specific moment in the season — the season-opening baseline, plus any week the team published a fresh full chart. For the canonical per-game weekly chart use depth_charts instead; this snapshot/entry pair is the point-in-time scrape representation. """ type NFLDepthChartSnapshots { """ Primary Key """ id: BigInt team_id: BigInt season_id: BigInt """ When this snapshot was taken """ snapshot_at: String """ NFL week number (0=preseason) """ week: Int """ True if this is the season baseline snapshot """ is_baseline: Boolean """ Number of entries in this snapshot """ entry_count: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ One player's depth-chart slot for a given team in a given NFL week — position, depth order (starter, backup, …), roster status, and game-type context. One row per (game × team × player × depth-position) combination. """ type NFLDepthCharts { """ Primary key — sequential row identifier. """ id: BigInt """ FK to nfl.players — the player occupying this depth-chart slot. """ player_id: BigInt """ FK to nfl.games — the game this depth chart is associated with. """ game_id: BigInt """ FK to nfl.teams — the team whose depth chart this row belongs to. """ team_id: BigInt """ FK to nfl.seasons — the season containing this game. """ season_id: BigInt """ NFL week number within the season (1-18 regular season; postseason weeks use higher numbers per league convention). """ week: Int """ Phase of the season: REG (regular season), WC (Wild Card), DIV (Divisional), CON (Conference Championship), SB (Super Bowl). """ game_type: String """ Sub-team designation within the depth chart when present (e.g., a formation-specific team grouping). Sparse — typically NULL. """ depth_team: String """ Formation unit this slot belongs to (e.g., OFF, DEF, ST). Sparse — typically NULL. """ formation: String """ Player's jersey number on the team for this game (nullable — populated when the depth chart includes uniform numbers). """ jersey_number: Int """ Player's listed position abbreviation (e.g., QB, RB, WR, T, DT, CB, MLB, K, P). """ position: String """ Position slot on the depth chart, which can differ from the player's primary position when they're listed at a secondary position (e.g., a player whose primary position is T may also appear on the depth chart at G). """ depth_position: String """ Elias Sports Bureau player identifier (nullable — populated only when the source feed includes Elias IDs). """ elias_id: String """ Depth-chart rank at this position — 1 for the starter, 2 for the primary backup, etc. NFL depth charts typically run 1–5 deep at each position. """ depth_order: Int """ NFL roster status code at the time of the chart: ACT (active), DEV (practice squad / developmental), INA (inactive), RES (reserve / IR), EXE (exempt), CUT (released), TRC (traded — pending), TRD (traded), RET (retired), E01 (other transactional status). """ status: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Every NFL Draft selection from the modern draft era — round, pick number, drafting team, college, and the career stats that followed (Pro Bowls, All-Pros, Hall of Fame, total games played, career statistics by position). """ type NFLDraftPicks { """ Primary Key """ id: BigInt """ Calendar year of the draft. """ season: Int """ Draft round (1-7). """ round: Int """ Pick number within the round. """ pick: Int team_id: BigInt player_id: BigInt """ Game Statistics and Information System ID (NFL official cross-system join key). """ gsis_id: String """ Pro Football Reference player ID. """ pfr_player_id: String """ College Football Reference player ID. """ cfb_player_id: String """ Player name as recorded on Pro Football Reference. """ pfr_player_name: String """ True if the player is enshrined in the Pro Football Hall of Fame. """ is_hof: Boolean """ Position the player was drafted at (e.g., QB, WR, DE). """ position: String """ Position category (e.g., `OFF`, `DEF`, `ST`). """ category: String """ Side of the ball (`OFF` or `DEF`). """ side: String """ College the player was drafted out of. """ college: String """ Player age at the time of the draft. """ age: Int """ Most recent NFL season the player appeared in (calendar year). """ career_to_year: Int """ Career All-Pro selections. """ allpro_count: Int """ Career Pro Bowl selections. """ probowl_count: Int """ Number of NFL seasons in which the player was a primary starter. """ seasons_started: Int """ Weighted Approximate Value (Pro Football Reference career composite metric). """ w_av: Int """ Career Approximate Value (Pro Football Reference, unweighted sum across seasons). """ car_av: Int """ Approximate Value accumulated while with the drafting team. """ dr_av: Int """ Total career regular-season games played. """ games_played: Int """ Career pass completions. """ pass_completions: Int """ Career pass attempts. """ pass_attempts: Int """ Career passing yards. """ pass_yds: Int """ Career passing touchdowns. """ pass_tds: Int """ Career interceptions thrown. """ pass_ints: Int """ Career rushing attempts. """ rush_atts: Int """ Career rushing yards. """ rush_yds: Int """ Career rushing touchdowns. """ rush_tds: Int """ Career receptions. """ receptions: Int """ Career receiving yards. """ rec_yds: Int """ Career receiving touchdowns. """ rec_tds: Int """ Career solo defensive tackles. """ def_solo_tackles: Int """ Career defensive interceptions. """ def_ints: Int """ Career sacks (defensive; half-sacks supported as decimals). """ def_sacks: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Each offensive possession in an NFL game — how the drive started, how it ended (touchdown, field goal, punt, turnover), starting and ending field position, time of possession, and play count. """ type NFLGameDrives { """ Primary Key """ id: BigInt game_id: BigInt """ Team with possession (FK to teams) """ possession_team_id: BigInt """ Drive sequence number in game (1-indexed) """ drive_number: Int """ Corrected drive number from nflverse """ fixed_drive: Int """ Quarter when drive started """ quarter_start: Int """ Quarter when drive ended """ quarter_end: Int """ How possession was gained (KICKOFF, PUNT, TURNOVER, etc.) """ start_transition: String """ How possession ended (PUNT, TOUCHDOWN, TURNOVER, etc.) """ end_transition: String """ Drive outcome (Touchdown, Field goal, Punt, Turnover, etc.) """ result: String """ Starting field position (e.g., "KC 25") """ start_yard_line: String """ Ending field position (e.g., "OPP 10") """ end_yard_line: String """ Game clock at drive start (mm:ss) """ game_clock_start: String """ Game clock at drive end (mm:ss) """ game_clock_end: String """ Drive duration (mm:ss format) """ time_of_possession: String """ Number of plays in drive """ play_count: Int """ First downs gained """ first_downs: Int """ Penalty yards on drive """ yds_penalized: Int """ Drive reached red zone """ inside_20: Boolean """ Drive resulted in points """ ended_with_score: Boolean """ play_id of first play in drive """ first_play_id: BigInt """ play_id of last play in drive """ last_play_id: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.teams row referenced by `possession_team_id`; null when unlinked. """ possession_team: NFLTeams """ The nfl.play_by_plays row referenced by `first_play_id`; null when unlinked. """ first_play: NFLPlayByPlays """ The nfl.play_by_plays row referenced by `last_play_id`; null when unlinked. """ last_play: NFLPlayByPlays """ nfl.play_by_plays rows whose `drive_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! } """ NFL game betting lines — point spreads, moneylines, and over/under totals. Currently one consensus closing line per game (nflverse-sourced; captured_at equals kickoff time); multi-snapshot open-to-close history is not yet captured. Regular-season games only. """ type NFLGameLines { """ Primary Key """ id: BigInt game_id: BigInt """ Denormalized for efficient season-level queries """ season_id: BigInt """ Data source (ESPN, DraftKings, FanDuel, nflverse, etc.) """ operator_id: BigInt """ Home team spread (e.g., -3.5 means home favored by 3.5) """ spread: Float """ American odds for home spread (e.g., -110) """ spread_home_odds: Int """ American odds for away spread """ spread_away_odds: Int """ American odds for home team win """ moneyline_home: Int """ American odds for away team win """ moneyline_away: Int """ Combined score total line (e.g., 47.5) """ total: Float """ American odds for over """ over_odds: Int """ American odds for under """ under_odds: Int """ Calculated from spread + total """ implied_home_score: Float """ Calculated from spread + total """ implied_away_score: Float """ From moneyline, 0-1 """ implied_home_win_pct: Float """ From moneyline, 0-1 """ implied_away_win_pct: Float """ When this snapshot was captured """ captured_at: String """ True if this is the opening line """ is_opening: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons } """ Per-game player stats restricted to first-down plays — the same first-down production breakouts as the season aggregate, for each individual game. """ type NFLGamePlayerFirstdownStats { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt opponent_team_id: BigInt """ True if player's team is the home team """ is_home: Boolean """ Player position at time of game """ position: String """ Passing attempts on first down """ passing_attempts: Int """ Completed passes on first down """ passing_completions: Int """ Passing yards on first down """ passing_yds: Int """ Passing touchdowns on first down """ passing_tds: Int """ Interceptions thrown on first down """ passing_interceptions: Int """ Passer rating on first down """ passing_rating: Float """ Completion percentage on first down """ passing_completion_percentage: Float """ Passing yards per attempt on first down """ passing_yds_per_attempt: Float """ Passing yards per completion on first down """ passing_yds_per_completion: Float """ Longest pass completion on first down """ passing_long: Int """ Times sacked on first down """ passing_sacks: Int """ Yards lost to sacks on first down """ passing_sack_yds: Int """ Rushing attempts on first down """ rushing_attempts: Int """ Rushing yards on first down """ rushing_yds: Int """ Rushing touchdowns on first down """ rushing_tds: Int """ Rushing yards per attempt on first down """ rushing_yds_per_attempt: Float """ Longest rush on first down """ rushing_long: Int """ Times targeted on first down """ targets: Int """ Receptions on first down """ receptions: Int """ Receiving yards on first down """ receiving_yds: Int """ Receiving touchdowns on first down """ receiving_tds: Int """ Yards per reception on first down """ receiving_yds_per_reception: Float """ Longest reception on first down """ receiving_long: Int """ Reception percentage (receptions/targets) on first down """ reception_percentage: Float """ Receiving yards per target on first down """ receiving_yds_per_target: Float """ Fumbles on first down """ fumbles: Int """ Fumbles lost on first down """ fumbles_lost: Int """ Total offensive touchdowns on first down """ offensive_tds: Int """ Total touchdowns scored on first down """ total_tds: Int two_pt_pass_conversions: Int two_pt_rush_conversions: Int two_pt_reception_conversions: Int """ Offensive snaps played on first down """ offensive_snaps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Solo tackles on first down """ solo_tackles: Int """ Assisted tackles on first down """ assisted_tackles: Int """ Tackles for loss on first down """ tackles_for_loss: Int """ Sacks on first down (0.5 for half sacks) """ sacks: Float """ QB hits on first down """ quarterback_hits: Int """ Passes defended on first down """ passes_defended: Int """ Interceptions on first down """ interceptions: Int """ Interception return yards on first down """ interception_yds: Int """ Interception return touchdowns on first down """ interception_tds: Int """ Forced fumbles on first down """ forced_fumbles: Int """ Fumbles recovered on first down """ fumbles_recovered: Int """ Fumble recovery yards on first down """ fumble_recovery_yds: Int """ Fumble recovery touchdowns on first down """ fumble_recovery_tds: Int """ Total defensive touchdowns on first down """ defensive_tds: Int """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams """ The nfl.teams row referenced by `opponent_team_id`; null when unlinked. """ opponent_team: NFLTeams } """ NFL Next Gen Stats for quarterbacks per game — RFID-tracked passing metrics like time to throw, average depth of target, completed air yards, on-target throw rate, and aggressiveness against tight coverage. """ type NFLGamePlayerNgsPassings { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt season: Int week: Int """ Canonical season phase. """ season_type: String """ Average time from snap to throw (seconds) """ avg_time_to_throw: Float """ Average air yards on completed passes """ avg_completed_air_yds: Float """ Average air yards on all pass attempts """ avg_intended_air_yds: Float """ Difference between intended and completed air yards """ avg_air_yds_differential: Float """ Percentage of throws into tight windows (defender within 1 yard) """ aggressiveness: Float """ Longest completed pass distance (ball travel) """ max_completed_air_distance: Float """ Average air yards relative to first down marker """ avg_air_yds_to_sticks: Float """ Average ball travel distance on all attempts """ avg_air_distance: Float """ Maximum ball travel distance """ max_air_distance: Float """ Model-predicted completion percentage based on throw difficulty """ expected_completion_percentage: Float """ CPOE - Actual completion % minus expected (positive = better than expected) """ completion_percentage_above_expectation: Float attempts: Int completions: Int completion_percentage: Float pass_yds: Int pass_tds: Int interceptions: Int passer_rating: Float """ GSIS ID for cross-reference """ player_gsis_id: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ NFL Next Gen Stats for receivers per game — RFID-tracked receiving metrics like separation at the throw, cushion at the snap, target separation, and yards over expected. """ type NFLGamePlayerNgsReceivings { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt season: Int week: Int """ Canonical season phase. """ season_type: String """ Average distance from nearest defender at snap (yards) """ avg_cushion: Float """ Average distance from nearest defender at catch point (yards) """ avg_separation: Float """ Average depth of targets """ avg_intended_air_yds: Float """ Percentage of team total intended air yards (deep target share) """ percent_share_of_intended_air_yds: Float """ Average yards after catch """ avg_yac: Float """ Model-predicted YAC based on catch location/defenders """ avg_expected_yac: Float """ Actual YAC minus expected (positive = creates extra yards) """ avg_yac_above_expectation: Float targets: Int receptions: Int catch_percentage: Float yards: Int rec_tds: Int """ GSIS ID for cross-reference """ player_gsis_id: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ NFL Next Gen Stats for ball carriers per game — RFID-tracked rushing metrics like efficiency, expected rushing yards, rushing yards over expected, and time behind the line of scrimmage. """ type NFLGamePlayerNgsRushings { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt season: Int week: Int """ Canonical season phase. """ season_type: String """ Distance traveled per rushing yard gained (lower = more efficient) """ efficiency: Float """ Percentage of rushes facing 8+ defenders in box """ percent_attempts_gte_eight_defenders: Float """ Average time to reach line of scrimmage (seconds) """ avg_time_to_los: Float """ Model-predicted rushing yards based on blocking/defense """ expected_rush_yds: Float """ RYOE - Actual yards minus expected (positive = better) """ rush_yds_over_expected: Float """ RYOE per attempt """ rush_yds_over_expected_per_att: Float """ RYOE as percentage over expected """ rush_pct_over_expected: Float rush_attempts: Int rush_yds: Int avg_rush_yds: Float rush_tds: Int """ GSIS ID for cross-reference """ player_gsis_id: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Per-game advanced player stats in the Pro Football Reference tradition — drop rates, time under pressure, yards before and after contact, broken tackles, passer rating allowed in coverage. """ type NFLGamePlayerPfrAdvstats { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt """ Opposing team in this matchup (FK to `teams`). """ opponent_team_id: BigInt """ Pass attempts dropped by the receiver (charged to the QB's catchable-target count). """ passing_drops: Int """ Drop rate on catchable passes (0.0-100.0). """ passing_drop_pct: Float """ Drops charged to this receiver. """ receiving_drop: Int """ Receiver drop rate on catchable targets (0.0-100.0). """ receiving_drop_pct: Float """ Pass attempts charged as bad throws by PFR scoring. """ passing_bad_throws: Int """ Bad-throw rate on pass attempts (0.0-100.0). """ passing_bad_throw_pct: Float """ Sacks taken by this QB. """ times_sacked: Int """ Dropbacks the QB faced a blitz. """ times_blitzed: Int """ Dropbacks the QB was hurried but not pressured. """ times_hurried: Int """ QB hits (defender contacted the QB on the throw). """ times_hit: Int """ Total pressures faced (sum of hurries/hits/sacks-allowed indicators). """ times_pressured: Int """ Pressure rate per dropback (0.0-100.0). """ times_pressured_pct: Float """ Rushing attempts. """ carries: Int """ Total rushing yards gained before first contact. """ rushing_yds_before_contact: Int """ Yards before contact averaged per rush. """ rushing_yds_before_contact_avg: Float """ Total rushing yards gained after first contact. """ rushing_yds_after_contact: Int """ Yards after contact averaged per rush. """ rushing_yds_after_contact_avg: Float """ Tackles the runner broke on rushing plays. """ rushing_broken_tackles: Int """ Tackles the receiver broke on receiving plays. """ receiving_broken_tackles: Int """ Interceptions thrown when this player was the target. """ receiving_int: Int """ Passer rating generated when targeted (0-158.3). """ receiving_rat: Float """ Interceptions made by this defender in coverage. """ def_ints: Int """ Pass targets thrown at this defender's coverage assignment. """ def_targets: Int """ Receptions allowed in coverage. """ def_completions_allowed: Int """ Completion percentage allowed (0.0-100.0). """ def_completion_pct: Float """ Receiving yards allowed in coverage. """ def_yds_allowed: Int """ Yards allowed per reception. """ def_yds_allowed_per_cmp: Float """ Yards allowed per target. """ def_yds_allowed_per_tgt: Float """ Receiving touchdowns allowed in coverage. """ def_receiving_td_allowed: Int """ Passer rating allowed when targeted (0-158.3). """ def_passer_rating_allowed: Float """ Average depth of target (yards) when this defender was in coverage. """ def_adot: Float """ Air yards completed on receptions allowed. """ def_air_yds_completed: Int """ Yards-after-catch allowed in coverage. """ def_yds_after_catch: Int """ Pass-rushing snaps as a blitzer. """ def_times_blitzed: Int """ Hurries generated as a pass rusher. """ def_times_hurried: Int """ QB hits generated as a pass rusher. """ def_times_hitqb: Int """ Sacks recorded (half-sacks supported as decimals). """ def_sacks: Float """ Total pressures generated (hurries + hits + sacks). """ def_pressures: Int """ Combined tackles (solo + assisted). """ def_tackles_combined: Int """ Tackle attempts missed by this defender. """ def_missed_tackles: Int """ Missed-tackle rate on tackle opportunities (0.0-100.0). """ def_missed_tackle_pct: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams """ The nfl.teams row referenced by `opponent_team_id`; null when unlinked. """ opponent_team: NFLTeams } """ Per-game player stats restricted to red-zone plays — the same red-zone breakouts as the season aggregate, for each individual game. """ type NFLGamePlayerRedzoneStats { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt opponent_team_id: BigInt """ True if player's team is the home team """ is_home: Boolean """ Player position at time of game """ position: String """ Passing attempts in the red zone """ passing_attempts: Int """ Completed passes in the red zone """ passing_completions: Int """ Passing yards in the red zone """ passing_yds: Int """ Passing touchdowns in the red zone """ passing_tds: Int """ Interceptions thrown in the red zone """ passing_interceptions: Int """ Passer rating in the red zone """ passing_rating: Float """ Completion percentage in the red zone """ passing_completion_percentage: Float """ Passing yards per attempt in the red zone """ passing_yds_per_attempt: Float """ Passing yards per completion in the red zone """ passing_yds_per_completion: Float """ Longest pass completion in the red zone """ passing_long: Int """ Times sacked in the red zone """ passing_sacks: Int """ Yards lost to sacks in the red zone """ passing_sack_yds: Int """ Rushing attempts in the red zone """ rushing_attempts: Int """ Rushing yards in the red zone """ rushing_yds: Int """ Rushing touchdowns in the red zone """ rushing_tds: Int """ Rushing yards per attempt in the red zone """ rushing_yds_per_attempt: Float """ Longest rush in the red zone """ rushing_long: Int """ Times targeted in the red zone """ targets: Int """ Receptions in the red zone """ receptions: Int """ Receiving yards in the red zone """ receiving_yds: Int """ Receiving touchdowns in the red zone """ receiving_tds: Int """ Yards per reception in the red zone """ receiving_yds_per_reception: Float """ Longest reception in the red zone """ receiving_long: Int """ Reception percentage (receptions/targets) in the red zone """ reception_percentage: Float """ Receiving yards per target in the red zone """ receiving_yds_per_target: Float """ Fumbles in the red zone """ fumbles: Int """ Fumbles lost in the red zone """ fumbles_lost: Int """ Total offensive touchdowns in the red zone """ offensive_tds: Int """ Total touchdowns scored in the red zone """ total_tds: Int """ Successful two-point conversion passes in the red zone """ two_pt_pass_conversions: Int """ Successful two-point conversion runs in the red zone """ two_pt_rush_conversions: Int """ Successful two-point conversion receptions in the red zone """ two_pt_reception_conversions: Int """ Offensive snaps played in red zone situations """ offensive_snaps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Solo tackles in red zone """ solo_tackles: Int """ Assisted tackles in red zone """ assisted_tackles: Int """ Tackles for loss in red zone """ tackles_for_loss: Int """ Sacks in red zone (0.5 for half sacks) """ sacks: Float """ QB hits in red zone """ quarterback_hits: Int """ Passes defended in red zone """ passes_defended: Int """ Interceptions in red zone """ interceptions: Int """ Interception return yards in red zone """ interception_yds: Int """ Interception return touchdowns in red zone """ interception_tds: Int """ Forced fumbles in red zone """ forced_fumbles: Int """ Fumbles recovered in red zone """ fumbles_recovered: Int """ Fumble recovery yards in red zone """ fumble_recovery_yds: Int """ Fumble recovery touchdowns in red zone """ fumble_recovery_tds: Int """ Total defensive touchdowns in red zone """ defensive_tds: Int """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams """ The nfl.teams row referenced by `opponent_team_id`; null when unlinked. """ opponent_team: NFLTeams } """ Each NFL player's stat line for each game — every passing, rushing, receiving, defensive, special-teams, and scoring statistic recorded that day. """ type NFLGamePlayerStats { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt opponent_team_id: BigInt """ True if player's team is the home team """ is_home: Boolean """ Player position at time of game """ position: String """ Position group (QB, RB, WR, TE, etc.) """ position_group: String completions: Int pass_attempts: Int passing_yds: Int passing_tds: Int interceptions_thrown: Int sacks_allowed: Int sack_yds: Int sack_fumbles: Int sack_fumbles_lost: Int passing_air_yds: Int passing_yds_after_catch: Int passing_first_downs: Int """ Expected points added from passing """ passing_epa: Float passing_2pt_conversions: Int """ Passer air conversion ratio """ pacr: Float """ DAKOTA: adjusted completion % + EPA metric """ dakota: Float rushing_attempts: Int rushing_yds: Int rushing_tds: Int rushing_fumbles: Int rushing_fumbles_lost: Int rushing_first_downs: Int """ Expected points added from rushing """ rushing_epa: Float rushing_2pt_conversions: Int receptions: Int targets: Int receiving_yds: Int receiving_tds: Int receiving_fumbles: Int receiving_fumbles_lost: Int receiving_air_yds: Int receiving_yds_after_catch: Int receiving_first_downs: Int """ Expected points added from receiving """ receiving_epa: Float receiving_2pt_conversions: Int """ Receiver air conversion ratio """ racr: Float """ Percentage of team targets """ target_share: Float """ Percentage of team air yards """ air_yds_share: Float """ Weighted opportunity rating """ wopr: Float special_teams_tds: Int """ Standard fantasy points (nflverse calculation) """ fantasy_pts: Float """ PPR fantasy points (nflverse calculation) """ fantasy_pts_ppr: Float """ Passer rating """ passing_rating: Float """ Longest pass completion (yards) """ passing_long: Int """ Completion percentage """ passing_completion_percentage: Float """ Longest rush (yards) """ rushing_long: Int """ Rushing yards per attempt """ rushing_yds_per_attempt: Float """ Longest reception (yards) """ receiving_long: Int """ Yards per reception """ receiving_yds_per_reception: Float """ Reception percentage (receptions/targets) """ reception_percentage: Float """ Number of punt returns """ punt_returns: Int """ Total punt return yards """ punt_return_yds: Int """ Punt return touchdowns """ punt_return_tds: Int """ Longest punt return (yards) """ punt_return_long: Int """ Number of kick returns """ kick_returns: Int """ Total kick return yards """ kick_return_yds: Int """ Kick return touchdowns """ kick_return_tds: Int """ Longest kick return (yards) """ kick_return_long: Int """ Solo tackles """ solo_tackles: Int """ Assisted tackles """ assisted_tackles: Int """ Tackles for loss """ tackles_for_loss: Int """ Defensive sacks (can be half sacks) """ defensive_sacks: Float """ Quarterback hits """ quarterback_hits: Int """ Passes defended """ passes_defended: Int """ Forced fumbles """ forced_fumbles: Int """ Fumbles recovered """ fumbles_recovered: Int """ Defensive interceptions """ defensive_interceptions: Int """ Interception return yards """ interception_return_yds: Int """ Interception return touchdowns """ interception_return_tds: Int """ Safeties """ safeties: Int """ Field goals made """ field_goals_made: Int """ Field goals attempted """ field_goals_attempted: Int """ Field goal percentage """ field_goal_percentage: Float """ Longest field goal made (yards) """ field_goals_longest: Int """ Field goals made 0-19 yards """ field_goals_made_0_19: Int """ Field goals made 20-29 yards """ field_goals_made_20_29: Int """ Field goals made 30-39 yards """ field_goals_made_30_39: Int """ Field goals made 40-49 yards """ field_goals_made_40_49: Int """ Field goals made 50+ yards """ field_goals_made_50_plus: Int """ Extra points made """ extra_pts_made: Int """ Extra points attempted """ extra_pts_attempted: Int """ Number of punts """ punts: Int """ Total punt yards """ punt_yds: Int """ Punt average (yards) """ punt_average: Float """ Punts inside 20 yard line """ punt_inside_20: Int """ Punt touchbacks """ punt_touchbacks: Int """ Longest punt (yards) """ punt_long: Int """ Offensive snaps played """ offensive_snaps: Int """ Defensive snaps played """ defensive_snaps: Int """ Special teams snaps played """ special_teams_snaps: Int """ Depth chart position (QB1, RB2, etc.) - joined from depth charts """ depth_position: String """ Depth order within position (1=starter, 2=backup, etc.) - joined from depth charts """ depth_order: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Total team offensive snaps (for calculating snap %) """ offensive_team_snaps: Int """ Total team defensive snaps (for calculating snap %) """ defensive_team_snaps: Int """ Total team special teams snaps (for calculating snap %) """ special_teams_team_snaps: Int """ Yards lost on defensive sacks """ defensive_sack_yds: Int """ Fumble return yards """ fumble_return_yds: Int """ Fumble return touchdowns """ fumble_return_tds: Int """ Blocked kicks (FG, XP, punts) """ blocked_kicks: Int """ Total defensive touchdowns (INT + fumble return TDs) """ defensive_tds: Int """ Punt return average (yards per return) """ punt_return_avg: Float """ Fair catches on punt returns """ punt_return_fair_catches: Int """ Kick return average (yards per return) """ kick_return_avg: Float """ Fair catches on kick returns """ kick_return_fair_catches: Int """ Blocked kick return yards """ blocked_kick_return_yds: Int """ Blocked kick return touchdowns """ blocked_kick_return_tds: Int """ Field goal return yards (missed FG returns) """ field_goal_return_yds: Int """ Field goal return touchdowns """ field_goal_return_tds: Int """ Solo tackles on special teams """ special_teams_solo_tackles: Int """ Assisted tackles on special teams """ special_teams_assisted_tackles: Int """ Fumbles forced on special teams """ special_teams_fumbles_forced: Int """ Fumbles recovered on special teams """ special_teams_fumbles_recovered: Int """ Miscellaneous solo tackles """ misc_solo_tackles: Int """ Miscellaneous assisted tackles """ misc_assisted_tackles: Int """ Miscellaneous fumbles forced """ misc_fumbles_forced: Int """ Miscellaneous fumbles recovered """ misc_fumbles_recovered: Int """ Own fumbles recovered """ fumbles_own_recoveries: Int """ Fumbles out of bounds """ fumbles_out_of_bounds: Int """ Field goals blocked by opponent """ field_goals_had_blocked: Int """ Extra points blocked by opponent """ extra_pts_had_blocked: Int """ Net punt average (gross - return yards) """ punt_net_average: Float """ Punts blocked by opponent """ punts_had_blocked: Int """ Net punt yards (gross - return yards) """ punt_net_yds: Int """ Two-point conversion returns (defensive) """ two_pt_returns: Int """ Stadium name """ stadium: String """ Playing surface type (grass, turf, etc.) """ playing_surface: String """ Game temperature (Fahrenheit) """ temperature: Int """ Humidity percentage """ humidity: Int """ Wind speed (mph) """ wind_speed: Int """ Fumbles on punt returns (includes muffs) """ punt_return_fumbles: Int """ Fumbles lost on punt returns """ punt_return_fumbles_lost: Int """ Fumbles on kick returns """ kick_return_fumbles: Int """ Fumbles lost on kick returns """ kick_return_fumbles_lost: Int """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams """ The nfl.teams row referenced by `opponent_team_id`; null when unlinked. """ opponent_team: NFLTeams } """ Per-game player stats restricted to third-down plays — the same third-down breakouts as the season aggregate, for each individual game. """ type NFLGamePlayerThirddownStats { """ Primary Key """ id: BigInt game_id: BigInt player_id: BigInt team_id: BigInt opponent_team_id: BigInt """ True if player's team is the home team """ is_home: Boolean """ Player position at time of game """ position: String """ Passing attempts on third down """ passing_attempts: Int """ Completed passes on third down """ passing_completions: Int """ Passing yards on third down """ passing_yds: Int """ Passing touchdowns on third down """ passing_tds: Int """ Interceptions thrown on third down """ passing_interceptions: Int """ Passer rating on third down """ passing_rating: Float """ Completion percentage on third down """ passing_completion_percentage: Float """ Passing yards per attempt on third down """ passing_yds_per_attempt: Float """ Passing yards per completion on third down """ passing_yds_per_completion: Float """ Longest pass completion on third down """ passing_long: Int """ Times sacked on third down """ passing_sacks: Int """ Yards lost to sacks on third down """ passing_sack_yds: Int """ Rushing attempts on third down """ rushing_attempts: Int """ Rushing yards on third down """ rushing_yds: Int """ Rushing touchdowns on third down """ rushing_tds: Int """ Rushing yards per attempt on third down """ rushing_yds_per_attempt: Float """ Longest rush on third down """ rushing_long: Int """ Times targeted on third down """ targets: Int """ Receptions on third down """ receptions: Int """ Receiving yards on third down """ receiving_yds: Int """ Receiving touchdowns on third down """ receiving_tds: Int """ Yards per reception on third down """ receiving_yds_per_reception: Float """ Longest reception on third down """ receiving_long: Int """ Reception percentage (receptions/targets) on third down """ reception_percentage: Float """ Receiving yards per target on third down """ receiving_yds_per_target: Float """ Fumbles on third down """ fumbles: Int """ Fumbles lost on third down """ fumbles_lost: Int """ Total offensive touchdowns on third down """ offensive_tds: Int """ Total touchdowns scored on third down """ total_tds: Int two_pt_pass_conversions: Int two_pt_rush_conversions: Int two_pt_reception_conversions: Int """ Offensive snaps played on third down """ offensive_snaps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Solo tackles on third down """ solo_tackles: Int """ Assisted tackles on third down """ assisted_tackles: Int """ Tackles for loss on third down """ tackles_for_loss: Int """ Sacks on third down (0.5 for half sacks) """ sacks: Float """ QB hits on third down """ quarterback_hits: Int """ Passes defended on third down """ passes_defended: Int """ Interceptions on third down """ interceptions: Int """ Interception return yards on third down """ interception_yds: Int """ Interception return touchdowns on third down """ interception_tds: Int """ Forced fumbles on third down """ forced_fumbles: Int """ Fumbles recovered on third down """ fumbles_recovered: Int """ Fumble recovery yards on third down """ fumble_recovery_yds: Int """ Fumble recovery touchdowns on third down """ fumble_recovery_tds: Int """ Total defensive touchdowns on third down """ defensive_tds: Int """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams """ The nfl.teams row referenced by `opponent_team_id`; null when unlinked. """ opponent_team: NFLTeams } """ The officiating crew working each NFL game — who refereed, who umpired, who judged each part of the field. """ type NFLGameReferees { """ Primary Key """ id: BigInt game_id: BigInt referee_id: BigInt position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.referees row referenced by `referee_id`; null when unlinked. """ referee: NFLReferees } """ The gameday roster for each NFL game — every player who suited up that day, who started, who was inactive, and at what position. """ type NFLGameTeamRosters { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt player_id: BigInt """ Position the player suited up at for this game. """ position: String """ Roster status for the game, readable single-word vocabulary (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Cut`, `Retired`, `Exempt`, `PracticeSquadReleased`). """ status: String """ Optional note from the gameday roster report (e.g., reason for inactive). """ comment: String """ True if the player started this game. """ starter: Boolean """ Day-of-year integer (matches `game.day` for partitioning). """ day: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ The coaching staff on the sideline for each NFL game — head coach, offensive coordinator, defensive coordinator, for both teams. """ type NFLGameTeamStaffs { """ Primary Key """ id: BigInt """ Reference to the game """ game_id: BigInt """ Reference to the team """ team_id: BigInt """ Head coach name (from nflverse) """ head_coach: String """ Offensive coordinator name """ offensive_coordinator: String """ Defensive coordinator name """ defensive_coordinator: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Each NFL team's stat line for each game — the same offensive, defensive, scoring, and situational counters as the season aggregate, broken out per game with home/away context. """ type NFLGameTeamStats { """ Primary Key """ id: BigInt game_id: BigInt team_id: BigInt """ True if team is the home team """ is_home: Boolean win: Int loss: Int tie: Int pts: Int total_yds: Int passing_yds: Int rushing_yds: Int first_downs: Int first_downs_passing: Int first_downs_rushing: Int first_downs_penalty: Int third_down_conversions: Int third_down_attempts: Int third_down_percentage: Float fourth_down_conversions: Int fourth_down_attempts: Int fourth_down_percentage: Float completions: Int pass_attempts: Int completion_percentage: Float yds_per_pass_attempt: Float passing_tds: Int interceptions_thrown: Int sacks_allowed: Int sack_yds: Int passer_rating: Float rushing_attempts: Int yds_per_carry: Float rushing_tds: Int receptions: Int receiving_yds: Int receiving_tds: Int tackles: Int tackles_for_loss: Int defensive_sacks: Int quarterback_hits: Int defensive_interceptions: Int passes_defended: Int forced_fumbles: Int fumbles_recovered: Int defensive_tds: Int safeties: Int turnovers: Int fumbles_lost: Int turnover_differential: Int penalties: Int penalty_yds: Int time_of_possession: Int red_zone_attempts: Int red_zone_conversions: Int red_zone_percentage: Float field_goals_made: Int field_goals_attempted: Int field_goal_percentage: Float extra_pts_made: Int extra_pts_attempted: Int two_point_conversions: Int two_point_conversion_attempts: Int punts: Int punt_yds: Int punt_average: Float kick_return_yds: Int kick_return_tds: Int punt_return_yds: Int punt_return_tds: Int """ Points allowed for DST scoring (DraftKings/Yahoo). Includes return TDs against - real scoreboard points. """ pts_allowed_dst: Int """ Points allowed for DEF scoring (FanDuel). Excludes return TDs against - only offensive points allowed. """ pts_allowed_def: Int """ Total blocked kicks (FGs + XPs + punts) for DST fantasy scoring """ blocked_kicks: Int blocked_field_goals: Int blocked_extra_pts: Int blocked_punts: Int """ Total offensive snaps by team in game """ offensive_team_snaps: Int """ Total defensive snaps by team in game """ defensive_team_snaps: Int """ Total special teams snaps by team in game """ special_teams_team_snaps: Int """ Points scored in Q1 """ score_q1: Int """ Points scored in Q2 """ score_q2: Int """ Points scored in Q3 """ score_q3: Int """ Points scored in Q4 """ score_q4: Int """ Points scored in overtime """ score_ot: Int """ Total offensive plays run """ offensive_plays: Int """ Total offensive yards gained """ offensive_yds: Int """ Average yards per offensive play """ yds_per_play: Float """ Total touchdowns scored """ touchdowns: Int """ Number of passing dropbacks """ passing_dropbacks: Int """ Passing yards per completion """ yds_per_completion: Float """ Percentage of passes intercepted """ interception_percentage: Float """ Rushing yards per attempt """ rushing_yds_per_attempt: Float """ Number of punt returns """ punt_returns: Int """ Longest punt return """ punt_return_long: Int """ Number of kick returns """ kick_returns: Int """ Longest kick return """ kick_return_long: Int """ Total punt and kick return yards """ total_return_yds: Int """ Number of kickoffs """ kickoffs: Int """ Kickoffs that reached the end zone """ kickoffs_in_endzone: Int """ Kickoffs resulting in touchbacks """ kickoff_touchbacks: Int """ Net punt average yards """ punt_net_average: Float """ Total net punt yards """ punt_net_yds: Int """ Number of punts blocked """ punts_blocked: Int """ Field goals that were blocked """ field_goals_blocked: Int """ Extra points that were blocked """ extra_pts_blocked: Int """ Number of interception returns """ interception_returns: Int """ Interception return yards """ interception_return_yds: Int """ Interception return touchdowns """ interception_return_tds: Int """ Fumble return yards """ fumble_return_yds: Int """ Fumble return touchdowns """ fumble_return_tds: Int """ Blocked kick return yards """ blocked_kick_return_yds: Int """ Blocked kick return touchdowns """ blocked_kick_return_tds: Int """ Field goal return yards (missed FGs) """ field_goal_return_yds: Int """ Field goal return touchdowns """ field_goal_return_tds: Int """ Two-point conversion pass attempts """ two_pt_pass_attempts: Int """ Two-point conversion pass conversions """ two_pt_pass_conversions: Int """ Two-point conversion rush attempts """ two_pt_rush_attempts: Int """ Two-point conversion rush conversions """ two_pt_rush_conversions: Int """ Defensive two-point conversion returns """ two_pt_conversion_returns: Int """ Points scored minus points allowed """ point_differential: Int """ QB hits made minus QB hits allowed """ qb_hits_differential: Int """ Tackles for loss made minus allowed """ tfl_differential: Int """ Sacks made minus sacks allowed """ sacks_differential: Int """ Opponent penalty yards minus own penalty yards """ penalty_yds_differential: Int """ Punt return yards minus opponent punt return yards """ punt_return_yds_differential: Int """ Kick return yards minus opponent kick return yards """ kick_return_yds_differential: Int """ Extra point conversion percentage """ extra_pt_percentage: Float """ Average yards per punt return """ punt_return_avg: Float """ Average yards per kick return """ kick_return_avg: Float """ Percentage of plays resulting in TFL """ tfl_percentage: Float """ Percentage of dropbacks resulting in QB hit """ qb_hits_percentage: Float """ Percentage of dropbacks resulting in sack """ sacked_percentage: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ On-field weather throughout each NFL game — temperature, wind, humidity, and precipitation captured at fixed intervals from kickoff. Useful for outdoor-game performance analysis. """ type NFLGameWeathers { """ Primary Key """ id: BigInt game_id: BigInt stadium_id: BigInt """ Minutes from game start (0, 30, 60, 90, 120, 150) """ minutes_from_start: Int temperature: Int feels_like_temperature: Int humidity: Float wind_speed: Float wind_direction: Float wind_gust: Float precipitation: Float precipitation_probability: Float weather_condition: String weather_description: String is_dome: Boolean roof_status: String field_condition: String recorded_at: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Dew point (°F) at this interval. """ dew_point: Float """ Snowfall rate (inches/hour) at this interval. """ snowfall: Float """ Snow depth on the ground (inches) at this interval. """ snow_depth: Float """ Cumulative liquid rain (inches) from 3 hours before kickoff through this interval. """ rain_accum: Float """ Cumulative snowfall (inches) from 3 hours before kickoff through this interval. """ snow_accum: Float """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.stadiums row referenced by `stadium_id`; null when unlinked. """ stadium: NFLStadiums } """ Every scheduled and played NFL game — preseason exhibitions, the 18-week regular season, the playoffs from Wild Card weekend through the Super Bowl. """ type NFLGames { """ Primary Key """ id: BigInt season_id: BigInt """ Scheduled kickoff time (timezone-aware). """ game_time: String """ Official NFL game ID from league source """ league_game_id: String home_team_id: BigInt away_team_id: BigInt """ Game classification (`Regular`, `Playoff`, `Super Bowl`, `Preseason`). """ type: String """ Game status. Currently always `Scheduled` (status reconciliation is pending) — detect completed games via populated scores, not this field. """ status: String """ Actual kickoff timestamp; null before the game starts. """ start_time: String """ Actual game end timestamp; null until the game completes. """ end_time: String """ Canonical season phase. Postseason round detail (Wild Card / Divisional / Conference Championship / Super Bowl) lives in `playoff_round`. """ season_type: String """ Week number within the season stage — 1-18 for regular season, restarting at 1 in the postseason (1 Wild Card, 2 Divisional, 3 Conference Championship, 4 Super Bowl). Note nfl.injuries.week uses the continuous 19-22 convention instead. """ week: Int """ Calendar day as a YYYYMMDD integer (e.g. 20240915), US Eastern. """ day: Int """ Denormalized team abbreviation for the away side at game time (snapshot copy of `teams.abbreviation`). """ away_team: String """ Denormalized team abbreviation for the home side at game time (snapshot copy of `teams.abbreviation`). """ home_team: String """ Stadium hosting the game (FK to `stadiums`). """ stadium_id: Int """ Primary broadcast network/channel (e.g., `CBS`, `FOX`, `Prime Video`). """ channel: String """ Reported attendance count; null when not published. """ attendance: Int """ Final away-team score; 0 (not null) until the game completes. """ away_team_score: Int """ Final home-team score; 0 (not null) until the game completes. """ home_team_score: Int """ Sportsbook rotation number for the home team (3-4 digit cross-book reference). """ home_rotation_number: Int """ Sportsbook rotation number for the away team (3-4 digit cross-book reference). """ away_rotation_number: Int """ True if the game is played at a neutral site (Super Bowl, international games, etc.). """ neutral_venue: Boolean """ Postseason round (`WildCard`, `Divisional`, `Conference Championship`, `Super Bowl`); null outside the postseason. """ playoff_round: String """ Home-team playoff seed (1-7); null outside the postseason. """ playoff_seed_home: Int """ Away-team playoff seed (1-7); null outside the postseason. """ playoff_seed_away: Int """ Display label for special games (e.g., `Thanksgiving Day`, `Monday Night Football`). """ game_label: String """ Secondary label or sub-category for the game. """ game_sub_label: String """ Reason for postponement (e.g., `Weather`, `COVID`); null for games played as scheduled. """ postponed_status: String """ True if the game went to overtime. """ overtime: Boolean """ Number of overtime periods played (1+ when `overtime` is true). """ overtime_periods: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `home_team_id`; null when unlinked. """ home_team_ref: NFLTeams """ The nfl.teams row referenced by `away_team_id`; null when unlinked. """ away_team_ref: NFLTeams """ The nfl.stadiums row referenced by `stadium_id`; null when unlinked. """ stadium: NFLStadiums """ nfl.depth_charts rows whose `game_id` references this row. """ depth_charts( """ Page size (default 50, max 500). """ first: Int ): [NFLDepthCharts!]! """ nfl.game_drives rows whose `game_id` references this row. """ game_drives( """ Page size (default 50, max 500). """ first: Int ): [NFLGameDrives!]! """ nfl.game_lines rows whose `game_id` references this row. """ game_lines( """ Page size (default 50, max 500). """ first: Int ): [NFLGameLines!]! """ nfl.game_player_firstdown_stats rows whose `game_id` references this row. """ game_player_firstdown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerFirstdownStats!]! """ nfl.game_player_ngs_passings rows whose `game_id` references this row. """ game_player_ngs_passings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsPassings!]! """ nfl.game_player_ngs_receivings rows whose `game_id` references this row. """ game_player_ngs_receivings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsReceivings!]! """ nfl.game_player_ngs_rushings rows whose `game_id` references this row. """ game_player_ngs_rushings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsRushings!]! """ nfl.game_player_pfr_advstats rows whose `game_id` references this row. """ game_player_pfr_advstats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerPfrAdvstats!]! """ nfl.game_player_redzone_stats rows whose `game_id` references this row. """ game_player_redzone_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerRedzoneStats!]! """ nfl.game_player_stats rows whose `game_id` references this row. """ game_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerStats!]! """ nfl.game_player_thirddown_stats rows whose `game_id` references this row. """ game_player_thirddown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerThirddownStats!]! """ nfl.game_referees rows whose `game_id` references this row. """ game_referees( """ Page size (default 50, max 500). """ first: Int ): [NFLGameReferees!]! """ nfl.game_team_rosters rows whose `game_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamRosters!]! """ nfl.game_team_staffs rows whose `game_id` references this row. """ game_team_staffs( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamStaffs!]! """ nfl.game_team_stats rows whose `game_id` references this row. """ game_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamStats!]! """ nfl.game_weathers rows whose `game_id` references this row. """ game_weathers( """ Page size (default 50, max 500). """ first: Int ): [NFLGameWeathers!]! """ nfl.injuries rows whose `game_id` references this row. """ injuries( """ Page size (default 50, max 500). """ first: Int ): [NFLInjuries!]! """ nfl.play_by_plays rows whose `game_id` references this row. """ play_by_plays( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! """ nfl.play_participations rows whose `game_id` references this row. """ play_participations( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayParticipations!]! } """ The weekly NFL injury report — every player listed each game week with their practice participation, game-status designation (Out, Doubtful, Questionable, Probable), and the body part affected. """ type NFLInjuries { """ Primary Key """ id: BigInt player_id: BigInt game_id: BigInt team_id: BigInt season_id: BigInt """ NFL week the report covers — 1-18 regular season, continuing 19 Wild Card, 20 Divisional, 21 Conference Championship, 22 Super Bowl. Note nfl.games.week restarts at 1 in the postseason instead. """ week: Int """ Game classification for the upcoming game (`REG`, `WC`, `DIV`, `CON`, `SB`). """ game_type: String """ Position the player was listed at on the report. """ position: String """ Primary injury body part listed on the official Wednesday/Thursday report (e.g., `Hamstring`, `Knee`). """ report_primary_injury: String """ Secondary injury listed on the official injury report. """ report_secondary_injury: String """ Game-status designation (`Out`, `Doubtful`, `Questionable`; occasionally `Note` or blank when no designation was issued). """ report_status: String """ Primary injury reported on the practice participation report. """ practice_primary_injury: String """ Secondary injury reported on the practice participation report. """ practice_secondary_injury: String """ Practice participation as long-form strings — `Did Not Participate In Practice`, `Limited Participation in Practice`, `Full Participation in Practice` (occasionally `Note` or blank). """ practice_status: String """ Timestamp of the most recent NFL feed update for this report. """ date_modified: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ How each sportsbook and fantasy operator names every NFL player — the mapping from each operator's own player identifier to a unified player record. """ type NFLOperatorPlayerLookups { """ Primary Key """ id: BigInt """ Reference to main.operator entity """ operator_id: BigInt """ External player ID from operator """ operator_player_id: String """ Internal nfl.players.id reference """ player_id: BigInt """ Player name as provided by operator """ player_name: String """ Position as provided by operator """ position: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers } """ How each sportsbook and fantasy operator names every NFL team — the mapping from each operator's team code or abbreviation to the unified franchise record. """ type NFLOperatorTeamLookups { """ Primary Key """ id: BigInt """ Reference to main.operator entity """ operator_id: BigInt """ External team ID from operator """ operator_team_id: String """ Internal nfl.teams.id reference """ team_id: BigInt """ Team name for reconciliation """ team_name: String """ Team abbreviation for reconciliation """ abbreviation: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Every individual play of every NFL game — what happened, where on the field, with what result. Includes pass and rush attempts, penalties, special teams, EPA, win probability, and the full game-clock and down-and-distance context. """ type NFLPlayByPlays { """ Primary Key """ id: BigInt """ Numeric play identifier unique to game """ play_id: String """ FK to games table """ game_id: BigInt """ Ten digit identifier for NFL game (nflverse format) """ nflverse_game_id: String """ Legacy NFL game ID format """ old_game_id: String """ UUID from NFL API """ nfl_api_id: String """ Quarter (1-4, 5=OT) """ quarter: Int """ Seconds remaining in quarter """ quarter_seconds_remaining: Int """ Seconds remaining in half """ half_seconds_remaining: Int """ Seconds remaining in game """ game_seconds_remaining: Int """ Half1, Half2, or Overtime """ game_half: String """ Binary quarter-end marker """ quarter_end: Boolean """ Game clock at play start (mm:ss) """ time: String """ Play clock at snap """ play_clock: Int """ Kickoff time (eastern) """ start_time: String """ Play time in UTC """ time_of_day: String """ Game clock at play end """ end_clock_time: String """ NFL play-ordering column """ order_sequence: Float """ Home team abbreviation """ home_team: String """ Away team abbreviation """ away_team: String """ Possession team abbreviation """ posteam: String """ home or away """ posteam_type: String """ Defensive team abbreviation """ defteam: String """ FK to teams table for possession team """ possession_team_id: BigInt """ FK to teams table for defensive team """ defensive_team_id: BigInt """ Team abbreviation whose side of field """ side_of_field: String """ Yards from opponent endzone (0-100) """ yardline_100: Int """ Yard line string (e.g., "KC 25") """ yrdln: String """ Yard line number (0-50) """ yard_line: Int """ Yard line at play end """ end_yard_line: String """ Down (1-4) """ down: Int """ Yards to first down/goal """ ydstogo: Int """ Goal-to-go situation """ goal_to_go: Boolean """ Total net yards on drive """ ydsnet: Int """ Drive number in game """ drive: Int """ FK to game_drives table """ drive_id: BigInt """ Manual drive number correction """ fixed_drive: Int """ Manual drive result correction """ fixed_drive_result: String """ Scoring play indicator """ sp: Boolean """ Drive start time (real clock) """ drive_real_start_time: String """ Number of plays in drive """ drive_play_count: Int """ Drive time of possession (mm:ss) """ drive_time_of_possession: String """ First downs gained in drive """ drive_first_downs: Int """ Drive reached red zone """ drive_inside20: Boolean """ Drive resulted in score """ drive_ended_with_score: Boolean """ Quarter when drive started """ drive_quarter_start: Int """ Quarter when drive ended """ drive_quarter_end: Int """ Penalty yards during drive """ drive_yds_penalized: Int """ How possession was obtained """ drive_start_transition: String """ How drive ended """ drive_end_transition: String """ Game clock at drive start """ drive_game_clock_start: String """ Game clock at drive end """ drive_game_clock_end: String """ Yard line at drive start """ drive_start_yard_line: String """ Yard line at drive end """ drive_end_yard_line: String """ First play_id of drive """ drive_play_id_started: String """ Last play_id of drive """ drive_play_id_ended: String """ Series counter within game """ series: Int """ Series resulted in first down or TD """ series_success: Boolean """ First down, Touchdown, Punt, etc. """ series_result: String """ Full play description text """ desc: String """ pass, run, punt, field_goal, kickoff, extra_point, qb_kneel, qb_spike, no_play """ play_type: String """ NFL source play type """ play_type_nfl: String """ Special teams play indicator """ special_teams_play: Boolean """ Type of special teams play """ st_play_type: String """ Regular play (1) vs special event (0) """ play: Boolean """ Special teams indicator """ special: Boolean """ Play was aborted """ aborted_play: Boolean """ Play was deleted """ play_deleted: Boolean """ Shotgun formation """ shotgun: Boolean """ No-huddle offense """ no_huddle: Boolean """ QB dropback (pass or scramble) """ qb_dropback: Boolean """ Rushing play indicator """ rush_attempt: Boolean """ Rush play (no scrambles) """ rush: Boolean """ left, middle, or right """ run_location: String """ end, guard, or tackle """ run_gap: String """ Yards gained on play """ yds_gained: Int """ Official rushing yards """ rushing_yds: Int """ Rusher GSIS ID """ rusher_player_id: String """ Rusher name """ rusher_player_name: String """ Rusher jersey number """ rusher_jersey_number: Int """ FK to players table """ rusher_id: BigInt """ Lateral receiver GSIS ID (rush) """ lateral_rusher_player_id: String """ Lateral receiver name (rush) """ lateral_rusher_player_name: String """ Yards after lateral (rush) """ lateral_rushing_yds: Int """ Lateral on rush play """ lateral_rush: Boolean """ Pass attempt (includes sacks) """ pass_attempt: Boolean """ Pass play indicator """ pass: Boolean """ short or deep """ pass_length: String """ left, middle, or right """ pass_location: String """ Yards in air (perpendicular to LOS) """ air_yds: Int """ YAC yards """ yds_after_catch: Int """ Pass completed """ complete_pass: Boolean """ Pass incomplete """ incomplete_pass: Boolean """ Official passing yards """ passing_yds: Int """ Passer GSIS ID """ passer_player_id: String """ Passer name """ passer_player_name: String """ Passer jersey number """ passer_jersey_number: Int """ FK to players table """ passer_id: BigInt """ Dropback player name (includes scrambles) """ passer: String """ Receiver GSIS ID """ receiver_player_id: String """ Receiver name """ receiver_player_name: String """ Receiver jersey number """ receiver_jersey_number: Int """ FK to players table """ receiver_id: BigInt """ Targeted receiver name """ receiver: String """ Official receiving yards """ receiving_yds: Int """ Lateral receiver GSIS ID (pass) """ lateral_receiver_player_id: String """ Lateral receiver name (pass) """ lateral_receiver_player_name: String """ Yards after lateral (pass) """ lateral_receiving_yds: Int """ Lateral on pass play """ lateral_reception: Boolean """ QB scramble """ qb_scramble: Boolean """ QB kneel """ qb_kneel: Boolean """ QB spike """ qb_spike: Boolean """ QB was hit """ qb_hit: Boolean """ QB hitter GSIS ID """ qb_hit_1_player_id: String """ QB hitter name """ qb_hit_1_player_name: String """ Second QB hitter GSIS ID """ qb_hit_2_player_id: String """ Second QB hitter name """ qb_hit_2_player_name: String """ Sack indicator """ sack: Boolean """ Sacker GSIS ID """ sack_player_id: String """ Sacker name """ sack_player_name: String """ Half-sack player 1 GSIS ID """ half_sack_1_player_id: String """ Half-sack player 1 name """ half_sack_1_player_name: String """ Half-sack player 2 GSIS ID """ half_sack_2_player_id: String """ Half-sack player 2 name """ half_sack_2_player_name: String """ Lateral after sack GSIS ID """ lateral_sack_player_id: String """ Lateral after sack name """ lateral_sack_player_name: String """ Interception indicator """ interception: Boolean """ Interceptor GSIS ID """ interception_player_id: String """ Interceptor name """ interception_player_name: String """ Lateral after INT GSIS ID """ lateral_interception_player_id: String """ Lateral after INT name """ lateral_interception_player_name: String """ Fumble occurred """ fumble: Boolean """ Fumble was forced """ fumble_forced: Boolean """ Fumble was not forced """ fumble_not_forced: Boolean """ Fumble went OOB """ fumble_out_of_bounds: Boolean """ Fumble was lost """ fumble_lost: Boolean """ First fumbler GSIS ID """ fumbled_1_player_id: String """ First fumbler name """ fumbled_1_player_name: String """ First fumbler team """ fumbled_1_team: String """ Second fumbler GSIS ID """ fumbled_2_player_id: String """ Second fumbler name """ fumbled_2_player_name: String """ Second fumbler team """ fumbled_2_team: String """ Recovery team 1 """ fumble_recovery_1_team: String """ Recovery yards 1 """ fumble_recovery_1_yds: Int """ Recovery player 1 GSIS ID """ fumble_recovery_1_player_id: String """ Recovery player 1 name """ fumble_recovery_1_player_name: String """ Recovery team 2 """ fumble_recovery_2_team: String """ Recovery yards 2 """ fumble_recovery_2_yds: Int """ Recovery player 2 GSIS ID """ fumble_recovery_2_player_id: String """ Recovery player 2 name """ fumble_recovery_2_player_name: String """ Forced fumble team 1 """ forced_fumble_player_1_team: String """ Forced fumble player 1 GSIS ID """ forced_fumble_player_1_player_id: String """ Forced fumble player 1 name """ forced_fumble_player_1_player_name: String """ Forced fumble team 2 """ forced_fumble_player_2_team: String """ Forced fumble player 2 GSIS ID """ forced_fumble_player_2_player_id: String """ Forced fumble player 2 name """ forced_fumble_player_2_player_name: String """ Solo tackle on play """ solo_tackle: Boolean """ Solo tackler 1 GSIS ID """ solo_tackle_1_player_id: String """ Solo tackler 1 name """ solo_tackle_1_player_name: String """ Solo tackler 1 team """ solo_tackle_1_team: String """ Solo tackler 2 GSIS ID """ solo_tackle_2_player_id: String """ Solo tackler 2 name """ solo_tackle_2_player_name: String """ Solo tackler 2 team """ solo_tackle_2_team: String """ Assist tackle on play """ assist_tackle: Boolean """ Assist tackler 1 GSIS ID """ assist_tackle_1_player_id: String """ Assist tackler 1 name """ assist_tackle_1_player_name: String """ Assist tackler 1 team """ assist_tackle_1_team: String """ Assist tackler 2 GSIS ID """ assist_tackle_2_player_id: String """ Assist tackler 2 name """ assist_tackle_2_player_name: String """ Assist tackler 2 team """ assist_tackle_2_team: String """ Assist tackler 3 GSIS ID """ assist_tackle_3_player_id: String """ Assist tackler 3 name """ assist_tackle_3_player_name: String """ Assist tackler 3 team """ assist_tackle_3_team: String """ Assist tackler 4 GSIS ID """ assist_tackle_4_player_id: String """ Assist tackler 4 name """ assist_tackle_4_player_name: String """ Assist tackler 4 team """ assist_tackle_4_team: String """ Tackle with assistance """ tackle_with_assist: Boolean """ Tackle-assist player 1 GSIS ID """ tackle_with_assist_1_player_id: String """ Tackle-assist player 1 name """ tackle_with_assist_1_player_name: String """ Tackle-assist player 1 team """ tackle_with_assist_1_team: String """ Tackle-assist player 2 GSIS ID """ tackle_with_assist_2_player_id: String """ Tackle-assist player 2 name """ tackle_with_assist_2_player_name: String """ Tackle-assist player 2 team """ tackle_with_assist_2_team: String """ Tackle for loss """ tackled_for_loss: Boolean """ TFL player 1 GSIS ID """ tackle_for_loss_1_player_id: String """ TFL player 1 name """ tackle_for_loss_1_player_name: String """ TFL player 2 GSIS ID """ tackle_for_loss_2_player_id: String """ TFL player 2 name """ tackle_for_loss_2_player_name: String """ Pass defense player 1 GSIS ID """ pass_defense_1_player_id: String """ Pass defense player 1 name """ pass_defense_1_player_name: String """ Pass defense player 2 GSIS ID """ pass_defense_2_player_id: String """ Pass defense player 2 name """ pass_defense_2_player_name: String """ Field goal attempt """ field_goal_attempt: Boolean """ made, missed, or blocked """ field_goal_result: String """ Kick distance in yards """ kick_distance: Int """ Kicker GSIS ID """ kicker_player_id: String """ Kicker name """ kicker_player_name: String """ Blocked kick player GSIS ID """ blocked_player_id: String """ Blocked kick player name """ blocked_player_name: String """ Extra point attempt """ extra_point_attempt: Boolean """ good, failed, blocked, safety, aborted """ extra_point_result: String """ Two-point conversion attempt """ two_point_attempt: Boolean """ success, failure, safety, return """ two_point_conv_result: String """ Defense two-point attempt """ defensive_two_point_attempt: Boolean """ Defense two-point conversion success """ defensive_two_point_conv: Boolean """ Defense extra point attempt """ defensive_extra_point_attempt: Boolean """ Defense extra point success """ defensive_extra_point_conv: Boolean """ Kickoff attempt """ kickoff_attempt: Boolean """ Kickoff returner GSIS ID """ kickoff_returner_player_id: String """ Kickoff returner name """ kickoff_returner_player_name: String """ Kickoff inside 20 """ kickoff_inside_twenty: Boolean """ Kickoff in endzone """ kickoff_in_endzone: Boolean """ Kickoff OOB """ kickoff_out_of_bounds: Boolean """ Kickoff downed """ kickoff_downed: Boolean """ Kickoff fair catch """ kickoff_fair_catch: Boolean """ Lateral kickoff returner GSIS ID """ lateral_kickoff_returner_player_id: String """ Lateral kickoff returner name """ lateral_kickoff_returner_player_name: String """ Own kickoff recovery """ own_kickoff_recovery: Boolean """ Own kickoff recovery TD """ own_kickoff_recovery_td: Boolean """ Own kickoff recovery player GSIS ID """ own_kickoff_recovery_player_id: String """ Own kickoff recovery player name """ own_kickoff_recovery_player_name: String """ Punt attempt """ punt_attempt: Boolean """ Punter GSIS ID """ punter_player_id: String """ Punter name """ punter_player_name: String """ Punt returner GSIS ID """ punt_returner_player_id: String """ Punt returner name """ punt_returner_player_name: String """ Punt blocked """ punt_blocked: Boolean """ Punt inside 20 """ punt_inside_twenty: Boolean """ Punt in endzone """ punt_in_endzone: Boolean """ Punt OOB """ punt_out_of_bounds: Boolean """ Punt downed """ punt_downed: Boolean """ Punt fair catch """ punt_fair_catch: Boolean """ Lateral punt returner GSIS ID """ lateral_punt_returner_player_id: String """ Lateral punt returner name """ lateral_punt_returner_player_name: String """ Returning team """ return_team: String """ Return yards """ return_yds: Int """ Lateral on return """ lateral_return: Boolean """ Touchdown scored """ touchdown: Boolean """ Passing touchdown """ pass_touchdown: Boolean """ Rushing touchdown """ rush_touchdown: Boolean """ Return touchdown """ return_touchdown: Boolean """ Team scoring TD """ td_team: String """ TD scorer name """ td_player_name: String """ TD scorer GSIS ID """ td_player_id: String """ Safety scored """ safety: Boolean """ Safety scorer name """ safety_player_name: String """ Safety scorer GSIS ID """ safety_player_id: String """ Touchback """ touchback: Boolean """ Ran/pushed/sacked out of bounds """ out_of_bounds: Boolean """ First down achieved """ first_down: Boolean """ Rushing first down """ first_down_rush: Boolean """ Passing first down """ first_down_pass: Boolean """ First down via penalty """ first_down_penalty: Boolean """ Third down conversion """ third_down_converted: Boolean """ Third down failure """ third_down_failed: Boolean """ Fourth down conversion """ fourth_down_converted: Boolean """ Fourth down failure """ fourth_down_failed: Boolean """ Penalty on play """ penalty: Boolean """ Penalized team """ penalty_team: String """ Penalized player GSIS ID """ penalty_player_id: String """ Penalized player name """ penalty_player_name: String """ Penalty yards """ penalty_yds: Int """ Type of penalty """ penalty_type: String """ Replay/challenge occurred """ replay_or_challenge: Boolean """ Replay result """ replay_or_challenge_result: String """ Timeout called """ timeout: Boolean """ Team calling timeout """ timeout_team: String """ Home timeouts remaining """ home_timeouts_remaining: Int """ Away timeouts remaining """ away_timeouts_remaining: Int """ Possession team timeouts """ posteam_timeouts_remaining: Int """ Defensive team timeouts """ defteam_timeouts_remaining: Int """ Home score at play start """ total_home_score: Int """ Away score at play start """ total_away_score: Int """ Possession team score at start """ posteam_score: Int """ Defense team score at start """ defteam_score: Int """ Score gap at play start """ score_differential: Int """ Possession team score at end """ posteam_score_post: Int """ Defense team score at end """ defteam_score_post: Int """ Score gap at play end """ score_differential_post: Int """ Total home points """ home_score: Int """ Total away points """ away_score: Int """ Probability of no score """ no_score_prob: Float """ Opponent FG probability """ opp_fg_prob: Float """ Opponent safety probability """ opp_safety_prob: Float """ Opponent TD probability """ opp_td_prob: Float """ FG probability """ fg_prob: Float """ Safety probability """ safety_prob: Float """ TD probability """ td_prob: Float """ Extra point probability """ extra_point_prob: Float """ Two-point conversion probability """ two_point_conversion_prob: Float """ Expected points before play """ ep: Float """ Expected points added """ epa: Float """ Cumulative home EPA """ total_home_epa: Float """ Cumulative away EPA """ total_away_epa: Float """ Cumulative home rushing EPA """ total_home_rush_epa: Float """ Cumulative away rushing EPA """ total_away_rush_epa: Float """ Cumulative home passing EPA """ total_home_pass_epa: Float """ Cumulative away passing EPA """ total_away_pass_epa: Float """ EPA from air yards """ air_epa: Float """ EPA from yards after catch """ yac_epa: Float """ Completion air EPA """ comp_air_epa: Float """ Completion YAC EPA """ comp_yac_epa: Float """ Cumulative home completion air EPA """ total_home_comp_air_epa: Float """ Cumulative away completion air EPA """ total_away_comp_air_epa: Float """ Cumulative home completion YAC EPA """ total_home_comp_yac_epa: Float """ Cumulative away completion YAC EPA """ total_away_comp_yac_epa: Float """ Cumulative home raw air EPA """ total_home_raw_air_epa: Float """ Cumulative away raw air EPA """ total_away_raw_air_epa: Float """ Cumulative home raw YAC EPA """ total_home_raw_yac_epa: Float """ Cumulative away raw YAC EPA """ total_away_raw_yac_epa: Float """ QB EPA credit """ qb_epa: Float """ Expected EPA after catch """ xyac_epa: Float """ Average expected YAC """ xyac_mean_yardage: Float """ Median expected YAC """ xyac_median_yardage: Float """ Positive EPA probability """ xyac_success: Float """ First down probability (xYAC) """ xyac_fd: Float """ Win probability for possession team """ wp: Float """ Win probability for defense """ def_wp: Float """ Home team win probability """ home_wp: Float """ Away team win probability """ away_wp: Float """ Win probability added """ wpa: Float """ Vegas-adjusted WPA """ vegas_wpa: Float """ Vegas home WPA """ vegas_home_wpa: Float """ Home WP after play """ home_wp_post: Float """ Away WP after play """ away_wp_post: Float """ Vegas win probability """ vegas_wp: Float """ Vegas home win probability """ vegas_home_wp: Float """ Cumulative home rushing WPA """ total_home_rush_wpa: Float """ Cumulative away rushing WPA """ total_away_rush_wpa: Float """ Cumulative home passing WPA """ total_home_pass_wpa: Float """ Cumulative away passing WPA """ total_away_pass_wpa: Float """ WPA from air yards """ air_wpa: Float """ WPA from yards after catch """ yac_wpa: Float """ Completion air WPA """ comp_air_wpa: Float """ Completion YAC WPA """ comp_yac_wpa: Float """ Cumulative home completion air WPA """ total_home_comp_air_wpa: Float """ Cumulative away completion air WPA """ total_away_comp_air_wpa: Float """ Cumulative home completion YAC WPA """ total_home_comp_yac_wpa: Float """ Cumulative away completion YAC WPA """ total_away_comp_yac_wpa: Float """ Cumulative home raw air WPA """ total_home_raw_air_wpa: Float """ Cumulative away raw air WPA """ total_away_raw_air_wpa: Float """ Cumulative home raw YAC WPA """ total_home_raw_yac_wpa: Float """ Cumulative away raw YAC WPA """ total_away_raw_yac_wpa: Float """ Completion probability """ cp: Float """ Completion percentage over expected """ cpoe: Float """ Dropback probability """ xpass: Float """ Dropback percent over expected """ pass_oe: Float """ Play success (based on down/distance) """ success: Boolean """ Primary player name (passer or rusher) """ name: String """ Primary player jersey """ jersey_number: Int """ Primary player GSIS ID """ primary_player_gsis_id: String """ Fantasy designation player name """ fantasy_player_name: String """ Fantasy designation player ID """ fantasy_player_id: String """ Fantasy designation """ fantasy: String """ Fantasy identifier """ fantasy_id: String """ Stadium name """ stadium: String """ Stadium ID """ stadium_id: Int """ Game stadium name """ game_stadium: String """ Home or Neutral """ location: String """ dome, outdoors, closed, open """ roof: String """ Playing surface type """ surface: String """ Temperature """ temp: Int """ Wind speed (mph) """ wind: Int """ Weather conditions description """ weather: String """ Home team head coach """ home_coach: String """ Away team head coach """ away_coach: String """ Division game """ div_game: Boolean """ Vegas spread line """ spread_line: Float """ Vegas total line """ total_line: Float """ Home score - Away score """ result: Int """ Home score + Away score """ total: Int """ Home team had opening kickoff """ home_opening_kickoff: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames """ The nfl.players row referenced by `passer_id`; null when unlinked. """ passer_ref: NFLPlayers """ The nfl.players row referenced by `rusher_id`; null when unlinked. """ rusher_ref: NFLPlayers """ The nfl.players row referenced by `receiver_id`; null when unlinked. """ receiver_ref: NFLPlayers """ The nfl.teams row referenced by `possession_team_id`; null when unlinked. """ possession_team: NFLTeams """ The nfl.teams row referenced by `defensive_team_id`; null when unlinked. """ defensive_team: NFLTeams """ The nfl.game_drives row referenced by `drive_id`; null when unlinked. """ drive_ref: NFLGameDrives """ nfl.game_drives rows whose `first_play_id` references this row. """ game_drives_by_first_play_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGameDrives!]! """ nfl.game_drives rows whose `last_play_id` references this row. """ game_drives_by_last_play_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGameDrives!]! } """ The personnel and pre-snap setup on every NFL play (one row per play, not per player) — offensive formation, personnel grouping, defensive look, coverage scheme, and the on-field player ids as comma-joined text columns. 2024 season coverage. """ type NFLPlayParticipations { """ Primary Key """ id: BigInt """ Play identifier matching `play_by_plays.play_id` for the same game. """ play_id: String game_id: BigInt """ Team in possession on this play (FK to `teams`). """ possession_team_id: BigInt """ Offensive formation alignment (e.g., `SHOTGUN`, `SINGLEBACK`, `I_FORM`, `PISTOL`). """ offense_formation: String """ Offensive personnel grouping in `RB-TE-WR` shorthand (e.g., `1 RB, 2 TE, 2 WR` → `12 personnel`). """ offense_personnel: String """ Number of defenders within ~8 yards of the line of scrimmage at the snap. """ defenders_in_box: Int """ Defensive personnel grouping (e.g., `4 DL, 2 LB, 5 DB`). """ defense_personnel: String """ Number of defenders who rushed the passer on this play (Next Gen Stats). """ number_of_pass_rushers: Int """ GSIS IDs of every player on the field for this play (comma-separated or JSON-encoded depending on source vintage). """ players_on_play_gsis_ids: String """ GSIS IDs of offensive players on the field for this play. """ offense_players_gsis_ids: String """ GSIS IDs of defensive players on the field for this play. """ defense_players_gsis_ids: String """ Count of offensive players on the field (typically 11). """ n_offense: Int """ Count of defensive players on the field (typically 11). """ n_defense: Int """ Air yards traveled by the pass from the line of scrimmage to where the receiver caught/dropped it (Next Gen Stats). """ ngs_air_yds: Float """ Time from snap to pass release in seconds (Next Gen Stats). """ time_to_throw: Float """ True if the quarterback faced pass-rush pressure on this play. """ was_pressure: Boolean """ Route the targeted receiver ran (e.g., `GO`, `SLANT`, `OUT`, `POST`). """ route: String """ Man- vs. zone-coverage classification (`MAN`, `ZONE`). """ defense_man_zone_type: String """ Specific coverage scheme (e.g., `COVER_1`, `COVER_2_MAN`, `COVER_3`, `COVER_4`). """ defense_coverage_type: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.games row referenced by `game_id`; null when unlinked. """ game: NFLGames } """ NFL player contracts — total value, average annual pay, guaranteed money, and salary cap impact for every signed deal, with cap-inflated comparisons across eras. """ type NFLPlayerContracts { """ Primary Key """ id: BigInt player_id: BigInt """ OverTheCap unique contract identifier (external). """ otc_id: String team_id: BigInt """ Player position at the time the contract was signed. """ position: String """ True for the player's currently-active contract; false for historical contracts. """ is_active: Boolean """ Calendar year the contract was signed. """ year_signed: Int """ Total contract length in years. """ years: Int """ Total contract value in U.S. dollars as reported by OverTheCap. """ value: BigInt """ Average annual value (APY) in U.S. dollars — total `value` divided by `years`. """ apy: BigInt """ Total guaranteed money over the life of the contract, in U.S. dollars. """ guaranteed: BigInt """ APY as a percentage of the league salary cap in the signing year (0.0-100.0). """ apy_cap_pct: Float """ `value` adjusted to the most recent salary cap, in U.S. dollars. """ inflated_value: BigInt """ `apy` adjusted to the most recent salary cap. """ inflated_apy: BigInt """ `guaranteed` adjusted to the most recent salary cap. """ inflated_guaranteed: BigInt """ Direct URL to the player's page on overthecap.com. """ player_page_url: String date_of_birth: String """ Height as reported by OverTheCap (e.g., `6-2`). """ height: String """ Weight in pounds. """ weight: Int college: String """ JSON-encoded year-by-year cap-hit breakdown for the life of the contract (stored as a string). """ season_history_json: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ News about NFL players — transactions, injuries, lineup announcements, suspensions, and general beat-reporter updates. """ type NFLPlayerNews { """ Primary Key """ id: BigInt player_id: BigInt team_id: BigInt title: String description: String analysis: String source: String link: String news_time: String priority: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String ai_processed: Boolean situational_impact: JSON content: String author: String """ injury, transaction, lineup, general """ category: String external_id: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Every individual who has played in the NFL — current rosters, free agents, retired veterans — plus team-defense entries used for fantasy and DST scoring. """ type NFLPlayers { """ Primary Key """ id: BigInt first_name: String last_name: String full_name: String """ Official NFL player ID (UUID) from nfl.com """ league_player_id: String """ Jersey number with the player's current team (string to preserve leading zeros and special codes). """ jersey: String """ Game Statistics and Information System ID (e.g. 00-0028830) """ gsis_id: String """ Primary roster position (e.g., QB, WR, RB, CB). """ primary_position: String """ Broad position group classification used by nflverse (e.g., `OFFENSE`, `DEFENSE`, `ST`). """ position_group: String """ All positions the player is eligible at (semicolon-joined when multiple, e.g., `RB;WR`). """ full_position_list: String """ Current NFL team (FK to `teams`); null for free agents and retired players. """ team_id: BigInt """ URL slug used on nfl.com (e.g., `patrick-mahomes`). """ nfl_slug: String """ Height in inches. """ height: Int """ Weight in pounds. """ weight: Int birth_date: String birth_city: String birth_state: String birth_country: String """ College or last football affiliation before turning pro. """ college: String """ Years of NFL experience (rookies = 0). """ experience: Int """ Calendar year the player was drafted; null or `UDFA` if undrafted. """ draft_year: String """ Draft round (1-7); null or `UDFA` if undrafted. """ draft_round: String """ Pick number within the round; null or `UDFA` if undrafted. """ draft_number: String """ Overall pick number across all rounds (1-262); null if undrafted. """ overall_pick: Int """ Canonical roster status, shared across leagues. NFL has the richest source vocabulary. The "on a team now" set is {active, injured_reserve, practice_squad, reserve, suspended}; free_agent/waived/retired/inactive are off-roster. """ roster_status: String """ URL to player profile picture image """ profile_pic_url: String """ True for synthetic team-level entities (DST, team defense). Used to distinguish team defense 'players' from individual players. """ is_team: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams """ nfl.combine_results rows whose `player_id` references this row. """ combine_results( """ Page size (default 50, max 500). """ first: Int ): [NFLCombineResults!]! """ nfl.depth_chart_entries rows whose `player_id` references this row. """ depth_chart_entries( """ Page size (default 50, max 500). """ first: Int ): [NFLDepthChartEntries!]! """ nfl.depth_charts rows whose `player_id` references this row. """ depth_charts( """ Page size (default 50, max 500). """ first: Int ): [NFLDepthCharts!]! """ nfl.draft_picks rows whose `player_id` references this row. """ draft_picks( """ Page size (default 50, max 500). """ first: Int ): [NFLDraftPicks!]! """ nfl.game_player_firstdown_stats rows whose `player_id` references this row. """ game_player_firstdown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerFirstdownStats!]! """ nfl.game_player_ngs_passings rows whose `player_id` references this row. """ game_player_ngs_passings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsPassings!]! """ nfl.game_player_ngs_receivings rows whose `player_id` references this row. """ game_player_ngs_receivings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsReceivings!]! """ nfl.game_player_ngs_rushings rows whose `player_id` references this row. """ game_player_ngs_rushings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsRushings!]! """ nfl.game_player_pfr_advstats rows whose `player_id` references this row. """ game_player_pfr_advstats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerPfrAdvstats!]! """ nfl.game_player_redzone_stats rows whose `player_id` references this row. """ game_player_redzone_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerRedzoneStats!]! """ nfl.game_player_stats rows whose `player_id` references this row. """ game_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerStats!]! """ nfl.game_player_thirddown_stats rows whose `player_id` references this row. """ game_player_thirddown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerThirddownStats!]! """ nfl.game_team_rosters rows whose `player_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamRosters!]! """ nfl.injuries rows whose `player_id` references this row. """ injuries( """ Page size (default 50, max 500). """ first: Int ): [NFLInjuries!]! """ nfl.operator_player_lookups rows whose `player_id` references this row. """ operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [NFLOperatorPlayerLookups!]! """ nfl.player_contracts rows whose `player_id` references this row. """ player_contracts( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayerContracts!]! """ nfl.player_news rows whose `player_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayerNews!]! """ nfl.season_player_firstdown_stats rows whose `player_id` references this row. """ season_player_firstdown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerFirstdownStats!]! """ nfl.season_player_redzone_stats rows whose `player_id` references this row. """ season_player_redzone_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerRedzoneStats!]! """ nfl.season_player_stats rows whose `player_id` references this row. """ season_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerStats!]! """ nfl.season_player_thirddown_stats rows whose `player_id` references this row. """ season_player_thirddown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerThirddownStats!]! """ nfl.team_player_rosters rows whose `player_id` references this row. """ team_player_rosters( """ Page size (default 50, max 500). """ first: Int ): [NFLTeamPlayerRosters!]! """ nfl.play_by_plays rows whose `passer_id` references this row. """ play_by_plays_by_passer_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! """ nfl.play_by_plays rows whose `rusher_id` references this row. """ play_by_plays_by_rusher_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! """ nfl.play_by_plays rows whose `receiver_id` references this row. """ play_by_plays_by_receiver_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! } """ The NFL postseason bracket — Wild Card weekend, the Divisional Round, the Conference Championships, and the Super Bowl, with seeds, scores, and outcomes. """ type NFLPlayoffs { """ Primary Key """ id: BigInt season_id: BigInt """ Postseason round (`WildCard`, `Divisional`, `Conference Championship`, `Super Bowl`). """ playoff_round: String """ Conference the matchup is contested within (`AFC`, `NFC`); null for the Super Bowl (inter-conference). """ conference: String home_team_id: BigInt away_team_id: BigInt """ Playoff seed (1-7) of the home team for this matchup. """ home_team_seed: Int """ Playoff seed (1-7) of the away team for this matchup. """ away_team_seed: Int """ Sequence number within the round (used to order multiple games in the same round). """ game_number: Int """ Winning team (FK to `teams`); null until the game completes. """ winner_team_id: BigInt """ Matchup status (`Scheduled`, `InProgress`, `Final`). """ status: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `home_team_id`; null when unlinked. """ home_team: NFLTeams """ The nfl.teams row referenced by `away_team_id`; null when unlinked. """ away_team: NFLTeams """ The nfl.teams row referenced by `winner_team_id`; null when unlinked. """ winner_team: NFLTeams } type NFLQuery { """ Every coaching change across NFL history with dates — when each head coach, offensive coordinator, and defensive coordinator started, when they left, and why (fired, resigned, promoted, retired). Requires at least one of these filter sets: `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ coaching_staff_tenures( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by player position. """ position: String ): [NFLCoachingStaffTenures!]! """ The coaching staff for each NFL team at a given season — head coach, offensive coordinator, defensive coordinator, special teams coordinator, and position coaches. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ coaching_staffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by player position. """ position: String ): [NFLCoachingStaffs!]! """ NFL Scouting Combine results — every prospect's measurables and drill times from the annual Indianapolis combine (height, weight, 40-yard dash, vertical jump, bench press, broad jump, three-cone, shuttle). Requires at least one of these filter sets: `player_id` | `season + position`. Metered by rows resolved across all nested lists — the same record unit as REST. """ combine_results( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter by season start year. """ season: Int, """ Filter by player position. """ position: String ): [NFLCombineResults!]! """ Where each player sits on the depth chart — position, depth order (starter, second-string, backup), and the formation grouping (offense, defense, special teams). Child rows of depth_chart_snapshots; for the canonical per-game weekly chart use depth_charts instead. Requires at least one of these filter sets: `snapshot_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ depth_chart_entries( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by depth-chart snapshot. """ snapshot_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by player position. """ position: String ): [NFLDepthChartEntries!]! """ A team's full depth chart captured at a specific moment in the season — the season-opening baseline, plus any week the team published a fresh full chart. For the canonical per-game weekly chart use depth_charts instead; this snapshot/entry pair is the point-in-time scrape representation. Requires at least one of these filter sets: `team_id + season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ depth_chart_snapshots( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by week of the season. """ week: Int ): [NFLDepthChartSnapshots!]! """ One player's depth-chart slot for a given team in a given NFL week — position, depth order (starter, backup, …), roster status, and game-type context. One row per (game × team × player × depth-position) combination. Requires at least one of these filter sets: `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ depth_charts( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int, """ Filter to a single season. """ season_id: Int, """ Filter by week of the season. """ week: Int, """ Filter to a single player. """ player_id: Int, """ Filter by player position. """ position: String ): [NFLDepthCharts!]! """ Every NFL Draft selection from the modern draft era — round, pick number, drafting team, college, and the career stats that followed (Pro Bowls, All-Pros, Hall of Fame, total games played, career statistics by position). Requires at least one of these filter sets: `season`. Metered by rows resolved across all nested lists — the same record unit as REST. """ draft_picks( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by season start year. """ season: Int, """ Filter by draft round. """ round: Int, """ Filter by team. """ team_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by player position. """ position: String ): [NFLDraftPicks!]! """ Each offensive possession in an NFL game — how the drive started, how it ended (touchdown, field goal, punt, turnover), starting and ending field position, time of possession, and play count. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_drives( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team in possession. """ possession_team_id: Int ): [NFLGameDrives!]! """ NFL game betting lines — point spreads, moneylines, and over/under totals. Currently one consensus closing line per game (nflverse-sourced; captured_at equals kickoff time); multi-snapshot open-to-close history is not yet captured. Regular-season games only. Requires at least one of these filter sets: `game_id` | `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_lines( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by sportsbook / operator. """ operator_id: Int ): [NFLGameLines!]! """ Per-game player stats restricted to first-down plays — the same first-down production breakouts as the season aggregate, for each individual game. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_firstdown_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by opponent team. """ opponent_team_id: Int, """ Filter by player position. """ position: String ): [NFLGamePlayerFirstdownStats!]! """ NFL Next Gen Stats for quarterbacks per game — RFID-tracked passing metrics like time to throw, average depth of target, completed air yards, on-target throw rate, and aggressiveness against tight coverage. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_ngs_passings( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by season start year. """ season: Int, """ Filter by week of the season. """ week: Int ): [NFLGamePlayerNgsPassings!]! """ NFL Next Gen Stats for receivers per game — RFID-tracked receiving metrics like separation at the throw, cushion at the snap, target separation, and yards over expected. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_ngs_receivings( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by season start year. """ season: Int, """ Filter by week of the season. """ week: Int ): [NFLGamePlayerNgsReceivings!]! """ NFL Next Gen Stats for ball carriers per game — RFID-tracked rushing metrics like efficiency, expected rushing yards, rushing yards over expected, and time behind the line of scrimmage. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_ngs_rushings( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by season start year. """ season: Int, """ Filter by week of the season. """ week: Int ): [NFLGamePlayerNgsRushings!]! """ Per-game advanced player stats in the Pro Football Reference tradition — drop rates, time under pressure, yards before and after contact, broken tackles, passer rating allowed in coverage. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_pfr_advstats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by opponent team. """ opponent_team_id: Int ): [NFLGamePlayerPfrAdvstats!]! """ Per-game player stats restricted to red-zone plays — the same red-zone breakouts as the season aggregate, for each individual game. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_redzone_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by opponent team. """ opponent_team_id: Int, """ Filter by player position. """ position: String ): [NFLGamePlayerRedzoneStats!]! """ Each NFL player's stat line for each game — every passing, rushing, receiving, defensive, special-teams, and scoring statistic recorded that day. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by opponent team. """ opponent_team_id: Int, """ Filter by player position. """ position: String ): [NFLGamePlayerStats!]! """ Per-game player stats restricted to third-down plays — the same third-down breakouts as the season aggregate, for each individual game. Requires at least one of these filter sets: `game_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_player_thirddown_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by opponent team. """ opponent_team_id: Int, """ Filter by player position. """ position: String ): [NFLGamePlayerThirddownStats!]! """ The officiating crew working each NFL game — who refereed, who umpired, who judged each part of the field. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_referees( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by referee. """ referee_id: Int, """ Filter by crew position (e.g., `Referee`, `Umpire`). """ position: String ): [NFLGameReferees!]! """ The gameday roster for each NFL game — every player who suited up that day, who started, who was inactive, and at what position. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_rosters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by player position. """ position: String, """ Filter by game-roster status (readable single-word vocabulary; PracticeSquadReleased covers the nflverse TRC/TRD codes). """ status: String ): [NFLGameTeamRosters!]! """ The coaching staff on the sideline for each NFL game — head coach, offensive coordinator, defensive coordinator, for both teams. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_staffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int ): [NFLGameTeamStaffs!]! """ Each NFL team's stat line for each game — the same offensive, defensive, scoring, and situational counters as the season aggregate, broken out per game with home/away context. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_team_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int ): [NFLGameTeamStats!]! """ On-field weather throughout each NFL game — temperature, wind, humidity, and precipitation captured at fixed intervals from kickoff. Useful for outdoor-game performance analysis. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ game_weathers( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. """ game_id: Int, """ Filter by stadium. """ stadium_id: Int ): [NFLGameWeathers!]! """ Every scheduled and played NFL game — preseason exhibitions, the 18-week regular season, the playoffs from Wild Card weekend through the Super Bowl. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ games( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by week of the season. """ week: Int, """ `gte` comparison on `week`. """ week__gte: Int, """ `lte` comparison on `week`. """ week__lte: Int, """ Range filter on `week` — pass "lo,hi". """ week__between: String, """ Filter by season phase. Postseason round detail is in `playoff_round`. """ season_type: String, """ Filter by home team. """ home_team_id: Int, """ Filter by away team. """ away_team_id: Int, """ Filter by row status. """ status: String ): [NFLGames!]! """ The weekly NFL injury report — every player listed each game week with their practice participation, game-status designation (Out, Doubtful, Questionable, Probable), and the body part affected. Requires at least one of these filter sets: `player_id` | `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ injuries( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a single game. """ game_id: Int, """ Filter by team. """ team_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by week of the season. """ week: Int ): [NFLInjuries!]! """ How each sportsbook and fantasy operator names every NFL player — the mapping from each operator's own player identifier to a unified player record. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ operator_player_lookups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by sportsbook / operator. """ operator_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by player position. """ position: String ): [NFLOperatorPlayerLookups!]! """ How each sportsbook and fantasy operator names every NFL team — the mapping from each operator's team code or abbreviation to the unified franchise record. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ operator_team_lookups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by sportsbook / operator. """ operator_id: Int, """ Filter by team. """ team_id: Int ): [NFLOperatorTeamLookups!]! """ Every individual play of every NFL game — what happened, where on the field, with what result. Includes pass and rush attempts, penalties, special teams, EPA, win probability, and the full game-clock and down-and-distance context. Requires at least one of these filter sets: `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ play_by_plays( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single game. Required — querying NFL play-by-play across all games is impractical (millions of rows). """ game_id: Int, """ Filter by team in possession. """ possession_team_id: Int, """ Filter by team on defense. """ defensive_team_id: Int, """ Filter by drive. """ drive_id: Int ): [NFLPlayByPlays!]! """ The personnel and pre-snap setup on every NFL play (one row per play, not per player) — offensive formation, personnel grouping, defensive look, coverage scheme, and the on-field player ids as comma-joined text columns. 2024 season coverage. Requires at least one of these filter sets: `play_id` | `game_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ play_participations( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by play. """ play_id: String, """ Filter to a single game. """ game_id: Int, """ Filter by team in possession. """ possession_team_id: Int ): [NFLPlayParticipations!]! """ NFL player contracts — total value, average annual pay, guaranteed money, and salary cap impact for every signed deal, with cap-inflated comparisons across eras. Requires at least one of these filter sets: `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_contracts( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by player position. """ position: String ): [NFLPlayerContracts!]! """ News about NFL players — transactions, injuries, lineup announcements, suspensions, and general beat-reporter updates. Requires at least one of these filter sets: `player_id` | `team_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_news( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter by team. """ team_id: Int, """ Filter by category. """ category: String, """ Filter by source provider. """ source: String, """ Filter by publication time (ISO 8601). Use news_time__gte to poll for items since your last check. """ news_time: String, """ `gte` comparison on `news_time`. """ news_time__gte: String, """ `lte` comparison on `news_time`. """ news_time__lte: String, """ Range filter on `news_time` — pass "lo,hi". """ news_time__between: String ): [NFLPlayerNews!]! """ Every individual who has played in the NFL — current rosters, free agents, retired veterans — plus team-defense entries used for fantasy and DST scoring. Requires at least one of these filter sets: `team_id` | `roster_status` | `gsis_id` | `primary_position`. Metered by rows resolved across all nested lists — the same record unit as REST. """ players( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter by canonical roster status (shared cross-league vocabulary). The "on a team now" set is {active, injured_reserve, practice_squad, reserve, suspended}. """ roster_status: String, """ Filter by GSIS external player id. """ gsis_id: String, """ Filter by player primary position (e.g. QB, WR, RB). """ primary_position: String ): [NFLPlayers!]! """ The NFL postseason bracket — Wild Card weekend, the Divisional Round, the Conference Championships, and the Super Bowl, with seeds, scores, and outcomes. Requires at least one of these filter sets: `season_id` | `home_team_id` | `away_team_id` | `status`. Metered by rows resolved across all nested lists — the same record unit as REST. """ playoffs( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by home team. """ home_team_id: Int, """ Filter by away team. """ away_team_id: Int, """ Filter by row status. """ status: String ): [NFLPlayoffs!]! """ NFL on-field officials — the seven-person crew of referees, umpires, head linesmen, line judges, field judges, side judges, and back judges who work each game. Metered by rows resolved across all nested lists — the same record unit as REST. """ referees( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [NFLReferees!]! """ Season player stats restricted to first-down plays — passing, rushing, and receiving production filtered to first-down attempts, useful for early-down efficiency analysis. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_player_firstdown_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int ): [NFLSeasonPlayerFirstdownStats!]! """ Season player stats restricted to red-zone plays (inside the opponent's 20) — scoring efficiency, touchdown rate, and yardage production in the most-valuable area of the field. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_player_redzone_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int ): [NFLSeasonPlayerRedzoneStats!]! """ Season totals for each NFL player — passing, rushing, receiving, defensive, special-teams, and scoring stats accumulated across the year. Regular-season games only; playoff totals are not included. Requires at least one of these filter sets: `season_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_player_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int ): [NFLSeasonPlayerStats!]! """ Season player stats restricted to third-down plays — conversion rates and production on the down that most often decides whether a drive lives or dies. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_player_thirddown_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int ): [NFLSeasonPlayerThirddownStats!]! """ Season totals for each NFL team — wins and losses, points scored and allowed, yards on offense and defense, turnovers, red-zone and down-conversion efficiency, kicking accuracy. Regular-season games only. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ season_team_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int ): [NFLSeasonTeamStats!]! """ Each NFL league year, from the opening of training camp through the Super Bowl. The 2025 season refers to the 2025-26 league year, kicking off in early August and ending in February. Metered by rows resolved across all nested lists — the same record unit as REST. """ seasons( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NFLSeasons!]! """ Venues that have hosted NFL games — current home stadiums, neutral-site locations like international and Super Bowl venues, and historical fields no longer in use. Metered by rows resolved across all nested lists — the same record unit as REST. """ stadiums( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [NFLStadiums!]! """ Day-by-day player-to-team affiliations across the season — who was on which roster, at what position, on every day from training camp through the Super Bowl. Requires at least one of these filter sets: `team_id + season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ team_player_rosters( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by team. """ team_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season. """ season_id: Int, """ Filter by player position. """ position: String ): [NFLTeamPlayerRosters!]! """ The 32 NFL franchises plus historical predecessors — teams that have since relocated, renamed, or merged into the current league. Metered by rows resolved across all nested lists — the same record unit as REST. """ teams( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [NFLTeams!]! } """ NFL on-field officials — the seven-person crew of referees, umpires, head linesmen, line judges, field judges, side judges, and back judges who work each game. """ type NFLReferees { """ Primary Key """ id: BigInt first_name: String last_name: String full_name: String """ Official NFL identifier for the referee. """ nfl_referee_id: Int """ On-field crew position (e.g., `Referee`, `Umpire`, `Head Linesman`, `Side Judge`). """ position: String """ Years of NFL officiating experience. """ experience: Int """ True for currently-active officials; false for retired. """ active: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nfl.game_referees rows whose `referee_id` references this row. """ game_referees( """ Page size (default 50, max 500). """ first: Int ): [NFLGameReferees!]! } """ Season player stats restricted to first-down plays — passing, rushing, and receiving production filtered to first-down attempts, useful for early-down efficiency analysis. """ type NFLSeasonPlayerFirstdownStats { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt """ Number of games with first down involvement """ games_played: Int """ Number of games started """ games_started: Int """ Passing attempts on first down """ passing_attempts: Int """ Completed passes on first down """ passing_completions: Int """ Passing yards on first down """ passing_yds: Int """ Passing touchdowns on first down """ passing_tds: Int """ Interceptions thrown on first down """ passing_interceptions: Int """ Passer rating on first down """ passing_rating: Float """ Completion percentage on first down """ passing_completion_percentage: Float """ Passing yards per attempt on first down """ passing_yds_per_attempt: Float """ Passing yards per completion on first down """ passing_yds_per_completion: Float """ Longest pass completion on first down """ passing_long: Int """ Times sacked on first down """ passing_sacks: Int """ Yards lost to sacks on first down """ passing_sack_yds: Int """ Rushing attempts on first down """ rushing_attempts: Int """ Rushing yards on first down """ rushing_yds: Int """ Rushing touchdowns on first down """ rushing_tds: Int """ Rushing yards per attempt on first down """ rushing_yds_per_attempt: Float """ Longest rush on first down """ rushing_long: Int """ Times targeted on first down """ targets: Int """ Receptions on first down """ receptions: Int """ Receiving yards on first down """ receiving_yds: Int """ Receiving touchdowns on first down """ receiving_tds: Int """ Yards per reception on first down """ receiving_yds_per_reception: Float """ Longest reception on first down """ receiving_long: Int """ Reception percentage (receptions/targets) on first down """ reception_percentage: Float """ Receiving yards per target on first down """ receiving_yds_per_target: Float """ Fumbles on first down """ fumbles: Int """ Fumbles lost on first down """ fumbles_lost: Int """ Total offensive touchdowns on first down """ offensive_tds: Int """ Total touchdowns scored on first down """ total_tds: Int two_pt_pass_conversions: Int two_pt_rush_conversions: Int two_pt_reception_conversions: Int """ Offensive snaps played on first down """ offensive_snaps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Solo tackles on first down """ solo_tackles: Int """ Assisted tackles on first down """ assisted_tackles: Int """ Tackles for loss on first down """ tackles_for_loss: Int """ Sacks on first down (0.5 for half sacks) """ sacks: Float """ QB hits on first down """ quarterback_hits: Int """ Passes defended on first down """ passes_defended: Int """ Interceptions on first down """ interceptions: Int """ Interception return yards on first down """ interception_yds: Int """ Interception return touchdowns on first down """ interception_tds: Int """ Forced fumbles on first down """ forced_fumbles: Int """ Fumbles recovered on first down """ fumbles_recovered: Int """ Fumble recovery yards on first down """ fumble_recovery_yds: Int """ Fumble recovery touchdowns on first down """ fumble_recovery_tds: Int """ Total defensive touchdowns on first down """ defensive_tds: Int """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons } """ Season player stats restricted to red-zone plays (inside the opponent's 20) — scoring efficiency, touchdown rate, and yardage production in the most-valuable area of the field. """ type NFLSeasonPlayerRedzoneStats { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt """ Number of games with red zone involvement """ games_played: Int """ Number of games started """ games_started: Int """ Passing attempts in the red zone """ passing_attempts: Int """ Completed passes in the red zone """ passing_completions: Int """ Passing yards in the red zone """ passing_yds: Int """ Passing touchdowns in the red zone """ passing_tds: Int """ Interceptions thrown in the red zone """ passing_interceptions: Int """ Passer rating in the red zone """ passing_rating: Float """ Completion percentage in the red zone """ passing_completion_percentage: Float """ Passing yards per attempt in the red zone """ passing_yds_per_attempt: Float """ Passing yards per completion in the red zone """ passing_yds_per_completion: Float """ Longest pass completion in the red zone """ passing_long: Int """ Times sacked in the red zone """ passing_sacks: Int """ Yards lost to sacks in the red zone """ passing_sack_yds: Int """ Rushing attempts in the red zone """ rushing_attempts: Int """ Rushing yards in the red zone """ rushing_yds: Int """ Rushing touchdowns in the red zone """ rushing_tds: Int """ Rushing yards per attempt in the red zone """ rushing_yds_per_attempt: Float """ Longest rush in the red zone """ rushing_long: Int """ Times targeted in the red zone """ targets: Int """ Receptions in the red zone """ receptions: Int """ Receiving yards in the red zone """ receiving_yds: Int """ Receiving touchdowns in the red zone """ receiving_tds: Int """ Yards per reception in the red zone """ receiving_yds_per_reception: Float """ Longest reception in the red zone """ receiving_long: Int """ Reception percentage (receptions/targets) in the red zone """ reception_percentage: Float """ Receiving yards per target in the red zone """ receiving_yds_per_target: Float """ Fumbles in the red zone """ fumbles: Int """ Fumbles lost in the red zone """ fumbles_lost: Int """ Total offensive touchdowns in the red zone """ offensive_tds: Int """ Total touchdowns scored in the red zone """ total_tds: Int """ Successful two-point conversion passes in the red zone """ two_pt_pass_conversions: Int """ Successful two-point conversion runs in the red zone """ two_pt_rush_conversions: Int """ Successful two-point conversion receptions in the red zone """ two_pt_reception_conversions: Int """ Offensive snaps played in red zone situations """ offensive_snaps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Solo tackles in red zone """ solo_tackles: Int """ Assisted tackles in red zone """ assisted_tackles: Int """ Tackles for loss in red zone """ tackles_for_loss: Int """ Sacks in red zone (0.5 for half sacks) """ sacks: Float """ QB hits in red zone """ quarterback_hits: Int """ Passes defended in red zone """ passes_defended: Int """ Interceptions in red zone """ interceptions: Int """ Interception return yards in red zone """ interception_yds: Int """ Interception return touchdowns in red zone """ interception_tds: Int """ Forced fumbles in red zone """ forced_fumbles: Int """ Fumbles recovered in red zone """ fumbles_recovered: Int """ Fumble recovery yards in red zone """ fumble_recovery_yds: Int """ Fumble recovery touchdowns in red zone """ fumble_recovery_tds: Int """ Total defensive touchdowns in red zone """ defensive_tds: Int """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons } """ Season totals for each NFL player — passing, rushing, receiving, defensive, special-teams, and scoring stats accumulated across the year. Regular-season games only; playoff totals are not included. """ type NFLSeasonPlayerStats { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt games_played: Int games_started: Int completions: Int pass_attempts: Int passing_yds: Int passing_tds: Int interceptions_thrown: Int sacks_taken: Int sack_yds_lost: Int """ Total fumbles on sacks """ sack_fumbles: Int """ Total sack fumbles lost """ sack_fumbles_lost: Int """ Total passing air yards """ passing_air_yds: Int """ Total YAC from passes """ passing_yds_after_catch: Int """ Total passing first downs """ passing_first_downs: Int """ Longest pass (season max) """ passing_long: Int passer_rating: Float completion_percentage: Float yds_per_attempt: Float rushing_attempts: Int rushing_yds: Int rushing_tds: Int yds_per_carry: Float longest_rush: Int fumbles_rushing: Int """ Total rushing fumbles lost """ rushing_fumbles_lost: Int """ Total rushing first downs """ rushing_first_downs: Int targets: Int receptions: Int receiving_yds: Int receiving_tds: Int yds_per_reception: Float longest_reception: Int fumbles_receiving: Int """ Total receiving fumbles lost """ receiving_fumbles_lost: Int """ Total receiving air yards """ receiving_air_yds: Int """ Total receiving YAC """ receiving_yds_after_catch: Int """ Total receiving first downs """ receiving_first_downs: Int tackles_solo: Int tackles_assisted: Int total_tackles: Int tackles_for_loss: Int sacks: Float quarterback_hits: Int interceptions_defense: Int interception_return_yds: Int interception_tds: Int passes_defended: Int forced_fumbles: Int fumbles_recovered: Int fumble_return_yds: Int fumble_tds: Int defensive_tds: Int safeties: Int field_goals_made: Int field_goals_attempted: Int field_goal_percentage: Float field_goals_made_0_19: Int field_goals_made_20_29: Int field_goals_made_30_39: Int field_goals_made_40_49: Int field_goals_made_50_plus: Int longest_field_goal: Int extra_pts_made: Int extra_pts_attempted: Int punts: Int punt_yds: Int punt_average: Float punt_net_average: Float longest_punt: Int punts_inside_20: Int punt_touchbacks: Int punts_blocked: Int kick_returns: Int kick_return_yds: Int kick_return_average: Float kick_return_tds: Int longest_kick_return: Int punt_returns: Int punt_return_yds: Int punt_return_average: Float punt_return_tds: Int """ Total special teams touchdowns """ special_teams_tds: Int longest_punt_return: Int fair_catches: Int fumbles: Int fumbles_lost: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons } """ Season player stats restricted to third-down plays — conversion rates and production on the down that most often decides whether a drive lives or dies. """ type NFLSeasonPlayerThirddownStats { """ Primary Key """ id: BigInt player_id: BigInt season_id: BigInt """ Number of games with third down involvement """ games_played: Int """ Number of games started """ games_started: Int """ Passing attempts on third down """ passing_attempts: Int """ Completed passes on third down """ passing_completions: Int """ Passing yards on third down """ passing_yds: Int """ Passing touchdowns on third down """ passing_tds: Int """ Interceptions thrown on third down """ passing_interceptions: Int """ Passer rating on third down """ passing_rating: Float """ Completion percentage on third down """ passing_completion_percentage: Float """ Passing yards per attempt on third down """ passing_yds_per_attempt: Float """ Passing yards per completion on third down """ passing_yds_per_completion: Float """ Longest pass completion on third down """ passing_long: Int """ Times sacked on third down """ passing_sacks: Int """ Yards lost to sacks on third down """ passing_sack_yds: Int """ Rushing attempts on third down """ rushing_attempts: Int """ Rushing yards on third down """ rushing_yds: Int """ Rushing touchdowns on third down """ rushing_tds: Int """ Rushing yards per attempt on third down """ rushing_yds_per_attempt: Float """ Longest rush on third down """ rushing_long: Int """ Times targeted on third down """ targets: Int """ Receptions on third down """ receptions: Int """ Receiving yards on third down """ receiving_yds: Int """ Receiving touchdowns on third down """ receiving_tds: Int """ Yards per reception on third down """ receiving_yds_per_reception: Float """ Longest reception on third down """ receiving_long: Int """ Reception percentage (receptions/targets) on third down """ reception_percentage: Float """ Receiving yards per target on third down """ receiving_yds_per_target: Float """ Fumbles on third down """ fumbles: Int """ Fumbles lost on third down """ fumbles_lost: Int """ Total offensive touchdowns on third down """ offensive_tds: Int """ Total touchdowns scored on third down """ total_tds: Int two_pt_pass_conversions: Int two_pt_rush_conversions: Int two_pt_reception_conversions: Int """ Offensive snaps played on third down """ offensive_snaps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Solo tackles on third down """ solo_tackles: Int """ Assisted tackles on third down """ assisted_tackles: Int """ Tackles for loss on third down """ tackles_for_loss: Int """ Sacks on third down (0.5 for half sacks) """ sacks: Float """ QB hits on third down """ quarterback_hits: Int """ Passes defended on third down """ passes_defended: Int """ Interceptions on third down """ interceptions: Int """ Interception return yards on third down """ interception_yds: Int """ Interception return touchdowns on third down """ interception_tds: Int """ Forced fumbles on third down """ forced_fumbles: Int """ Fumbles recovered on third down """ fumbles_recovered: Int """ Fumble recovery yards on third down """ fumble_recovery_yds: Int """ Fumble recovery touchdowns on third down """ fumble_recovery_tds: Int """ Total defensive touchdowns on third down """ defensive_tds: Int """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons } """ Season totals for each NFL team — wins and losses, points scored and allowed, yards on offense and defense, turnovers, red-zone and down-conversion efficiency, kicking accuracy. Regular-season games only. """ type NFLSeasonTeamStats { """ Primary Key """ id: BigInt team_id: BigInt season_id: BigInt games_played: Int wins: Int losses: Int ties: Int pts_scored: Int pts_allowed: Int total_yds: Int passing_yds: Int rushing_yds: Int completions: Int pass_attempts: Int passing_tds: Int rushing_tds: Int first_downs: Int """ Possessions reaching the red zone (inside the opponent's 20-yard line). """ red_zone_attempts: Int """ Red-zone trips that ended in a touchdown. """ red_zone_conversions: Int """ Third-down attempts converted to a first down or touchdown. """ third_down_conversions: Int """ Total third-down plays attempted. """ third_down_attempts: Int """ Fourth-down attempts converted to a first down or touchdown. """ fourth_down_conversions: Int """ Total fourth-down plays attempted (excludes punts and field-goal attempts). """ fourth_down_attempts: Int """ Possessions lost via interception or fumble. """ turnovers: Int """ Sacks recorded by this team's defense (half-sacks supported as decimals). """ defensive_sacks: Float defensive_interceptions: Int fumbles_recovered: Int """ Touchdowns scored by the defense (interception return + fumble recovery TD); excludes special-teams returns. """ defensive_tds: Int field_goals_made: Int field_goals_attempted: Int extra_pts_made: Int extra_pts_attempted: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ Each NFL league year, from the opening of training camp through the Super Bowl. The 2025 season refers to the 2025-26 league year, kicking off in early August and ending in February. """ type NFLSeasons { """ Primary Key """ id: BigInt """ First day of the season (typically the start of preseason in early August). """ start_date: String """ Last day of the season (Super Bowl date or shortly after). """ end_date: String """ Calendar year in which the season starts (e.g., 2025 = the 2025-26 season). """ start_year: Int """ First day of regular-season play (typically the Thursday after Labor Day). """ regular_season_start_date: String """ First day of the postseason (Wild Card weekend). """ post_season_start_date: String """ Date of the Super Bowl for this season. """ super_bowl_date: String """ Number of regular-season weeks (18 since 2021; 17 in 2020 and earlier). """ regular_season_weeks: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nfl.coaching_staff_tenures rows whose `season_id` references this row. """ coaching_staff_tenures( """ Page size (default 50, max 500). """ first: Int ): [NFLCoachingStaffTenures!]! """ nfl.coaching_staffs rows whose `season_id` references this row. """ coaching_staffs( """ Page size (default 50, max 500). """ first: Int ): [NFLCoachingStaffs!]! """ nfl.game_lines rows whose `season_id` references this row. """ game_lines( """ Page size (default 50, max 500). """ first: Int ): [NFLGameLines!]! """ nfl.games rows whose `season_id` references this row. """ games( """ Page size (default 50, max 500). """ first: Int ): [NFLGames!]! """ nfl.injuries rows whose `season_id` references this row. """ injuries( """ Page size (default 50, max 500). """ first: Int ): [NFLInjuries!]! """ nfl.playoffs rows whose `season_id` references this row. """ playoffs( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayoffs!]! """ nfl.season_player_firstdown_stats rows whose `season_id` references this row. """ season_player_firstdown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerFirstdownStats!]! """ nfl.season_player_redzone_stats rows whose `season_id` references this row. """ season_player_redzone_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerRedzoneStats!]! """ nfl.season_player_stats rows whose `season_id` references this row. """ season_player_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerStats!]! """ nfl.season_player_thirddown_stats rows whose `season_id` references this row. """ season_player_thirddown_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonPlayerThirddownStats!]! """ nfl.season_team_stats rows whose `season_id` references this row. """ season_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonTeamStats!]! """ nfl.team_player_rosters rows whose `season_id` references this row. """ team_player_rosters( """ Page size (default 50, max 500). """ first: Int ): [NFLTeamPlayerRosters!]! } """ Venues that have hosted NFL games — current home stadiums, neutral-site locations like international and Super Bowl venues, and historical fields no longer in use. """ type NFLStadiums { """ Primary Key """ id: BigInt name: String """ Official NFL stadium ID from API """ league_stadium_id: String """ Longitude of the stadium centroid (decimal degrees, WGS84). """ longitude: Float """ Latitude of the stadium centroid (decimal degrees, WGS84). """ latitude: Float """ Elevation in feet above sea level """ elevation: Float """ Field orientation in degrees (0-360). Direction end zones face, measured from south end zone. 0/360=North, 90=East, 180=South, 270=West """ orientation: Float description: String city: String state: String country: String """ Approximate seating capacity for football configuration. """ capacity: Int """ Playing surface type (e.g., `grass`, `FieldTurf`, `Astroturf`). """ surface: String """ Roof type (e.g., `open`, `dome`, `retractable`). """ roof_type: String """ Date the stadium opened for play. """ opened_date: String """ Date the stadium closed (null if currently in use). """ closed_date: String """ Team commonly associated with this stadium at the time (display string, not a foreign key). """ team_name: String """ IANA timezone (e.g., America/New_York) """ timezone: String """ Street address of the stadium. """ address: String """ URL to aerial/overview image of stadium """ image_url: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ nfl.game_weathers rows whose `stadium_id` references this row. """ game_weathers( """ Page size (default 50, max 500). """ first: Int ): [NFLGameWeathers!]! """ nfl.teams rows whose `stadium_id` references this row. """ teams( """ Page size (default 50, max 500). """ first: Int ): [NFLTeams!]! """ nfl.games rows whose `stadium_id` references this row. """ games( """ Page size (default 50, max 500). """ first: Int ): [NFLGames!]! } """ Day-by-day player-to-team affiliations across the season — who was on which roster, at what position, on every day from training camp through the Super Bowl. """ type NFLTeamPlayerRosters { """ Primary Key """ id: BigInt team_id: BigInt player_id: BigInt season_id: BigInt """ Position assigned to the player for this season-day. """ position: String """ Position group (`OFFENSE`, `DEFENSE`, `ST`). """ position_group: String """ Depth-chart order at this position on this date (1 = starter). """ depth_order: Int """ Day-of-year integer; the row is valid for that single day. """ day: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.players row referenced by `player_id`; null when unlinked. """ player: NFLPlayers """ The nfl.seasons row referenced by `season_id`; null when unlinked. """ season: NFLSeasons """ The nfl.teams row referenced by `team_id`; null when unlinked. """ team: NFLTeams } """ The 32 NFL franchises plus historical predecessors — teams that have since relocated, renamed, or merged into the current league. """ type NFLTeams { """ Primary Key """ id: BigInt """ Three-letter team code (e.g., KC, NE, GB). """ abbreviation: String city: String """ Official NFL team UUID from api.nfl.com """ league_team_id: String """ Conference assignment (AFC or NFC). """ conference: String """ Division within the conference (e.g., AFC East, NFC West). """ division: String full_name: String name: String """ True for currently-active franchises; false for relocated or defunct teams retained for historical references. """ active: Boolean """ Primary home stadium (FK to `stadiums`); null if unknown or shared. """ stadium_id: BigInt """ URL to team logo image """ logo_url: String """ Hex color code for the team's primary uniform color (e.g., `#A71930`). """ primary_color: String """ Hex color code for the team's secondary uniform color. """ secondary_color: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The nfl.stadiums row referenced by `stadium_id`; null when unlinked. """ stadium: NFLStadiums """ nfl.coaching_staff_tenures rows whose `team_id` references this row. """ coaching_staff_tenures( """ Page size (default 50, max 500). """ first: Int ): [NFLCoachingStaffTenures!]! """ nfl.coaching_staffs rows whose `team_id` references this row. """ coaching_staffs( """ Page size (default 50, max 500). """ first: Int ): [NFLCoachingStaffs!]! """ nfl.combine_results rows whose `team_id` references this row. """ combine_results( """ Page size (default 50, max 500). """ first: Int ): [NFLCombineResults!]! """ nfl.depth_chart_snapshots rows whose `team_id` references this row. """ depth_chart_snapshots( """ Page size (default 50, max 500). """ first: Int ): [NFLDepthChartSnapshots!]! """ nfl.depth_charts rows whose `team_id` references this row. """ depth_charts( """ Page size (default 50, max 500). """ first: Int ): [NFLDepthCharts!]! """ nfl.draft_picks rows whose `team_id` references this row. """ draft_picks( """ Page size (default 50, max 500). """ first: Int ): [NFLDraftPicks!]! """ nfl.game_player_firstdown_stats rows whose `team_id` references this row. """ game_player_firstdown_stats_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerFirstdownStats!]! """ nfl.game_player_ngs_passings rows whose `team_id` references this row. """ game_player_ngs_passings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsPassings!]! """ nfl.game_player_ngs_receivings rows whose `team_id` references this row. """ game_player_ngs_receivings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsReceivings!]! """ nfl.game_player_ngs_rushings rows whose `team_id` references this row. """ game_player_ngs_rushings( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerNgsRushings!]! """ nfl.game_player_pfr_advstats rows whose `team_id` references this row. """ game_player_pfr_advstats_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerPfrAdvstats!]! """ nfl.game_player_redzone_stats rows whose `team_id` references this row. """ game_player_redzone_stats_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerRedzoneStats!]! """ nfl.game_player_stats rows whose `team_id` references this row. """ game_player_stats_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerStats!]! """ nfl.game_player_thirddown_stats rows whose `team_id` references this row. """ game_player_thirddown_stats_by_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerThirddownStats!]! """ nfl.game_team_rosters rows whose `team_id` references this row. """ game_team_rosters( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamRosters!]! """ nfl.game_team_staffs rows whose `team_id` references this row. """ game_team_staffs( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamStaffs!]! """ nfl.game_team_stats rows whose `team_id` references this row. """ game_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLGameTeamStats!]! """ nfl.injuries rows whose `team_id` references this row. """ injuries( """ Page size (default 50, max 500). """ first: Int ): [NFLInjuries!]! """ nfl.operator_team_lookups rows whose `team_id` references this row. """ operator_team_lookups( """ Page size (default 50, max 500). """ first: Int ): [NFLOperatorTeamLookups!]! """ nfl.player_contracts rows whose `team_id` references this row. """ player_contracts( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayerContracts!]! """ nfl.player_news rows whose `team_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayerNews!]! """ nfl.players rows whose `team_id` references this row. """ players( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayers!]! """ nfl.season_team_stats rows whose `team_id` references this row. """ season_team_stats( """ Page size (default 50, max 500). """ first: Int ): [NFLSeasonTeamStats!]! """ nfl.team_player_rosters rows whose `team_id` references this row. """ team_player_rosters( """ Page size (default 50, max 500). """ first: Int ): [NFLTeamPlayerRosters!]! """ nfl.games rows whose `home_team_id` references this row. """ games_by_home_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGames!]! """ nfl.games rows whose `away_team_id` references this row. """ games_by_away_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGames!]! """ nfl.game_drives rows whose `possession_team_id` references this row. """ game_drives( """ Page size (default 50, max 500). """ first: Int ): [NFLGameDrives!]! """ nfl.play_by_plays rows whose `possession_team_id` references this row. """ play_by_plays_by_possession_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! """ nfl.play_by_plays rows whose `defensive_team_id` references this row. """ play_by_plays_by_defensive_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayByPlays!]! """ nfl.game_player_stats rows whose `opponent_team_id` references this row. """ game_player_stats_by_opponent_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerStats!]! """ nfl.game_player_firstdown_stats rows whose `opponent_team_id` references this row. """ game_player_firstdown_stats_by_opponent_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerFirstdownStats!]! """ nfl.game_player_redzone_stats rows whose `opponent_team_id` references this row. """ game_player_redzone_stats_by_opponent_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerRedzoneStats!]! """ nfl.game_player_thirddown_stats rows whose `opponent_team_id` references this row. """ game_player_thirddown_stats_by_opponent_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerThirddownStats!]! """ nfl.game_player_pfr_advstats rows whose `opponent_team_id` references this row. """ game_player_pfr_advstats_by_opponent_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLGamePlayerPfrAdvstats!]! """ nfl.playoffs rows whose `home_team_id` references this row. """ playoffs_by_home_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayoffs!]! """ nfl.playoffs rows whose `away_team_id` references this row. """ playoffs_by_away_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayoffs!]! """ nfl.playoffs rows whose `winner_team_id` references this row. """ playoffs_by_winner_team_id( """ Page size (default 50, max 500). """ first: Int ): [NFLPlayoffs!]! } """ Per-hole scoring statistics for each round of a tournament — par, yardage, the field's scoring average and its relation to par, and the distribution of eagles, birdies, pars, and bogeys, plus difficulty rank. """ type PGACourseHoleStats { """ Primary Key """ id: BigInt tournament_id: BigInt """ PGA Tour course code (e.g., 014 = Augusta National) """ course_code: String round_number: Int hole_number: Int par: Int yards: Int scoring_average: Float """ Scoring average relative to par """ scoring_average_diff: Float eagles: Int birdies: Int pars: Int bogeys: Int double_bogeys: Int """ Difficulty rank among holes (1 = hardest) """ rank: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments } """ Golf courses that host professional events — Augusta National, Pebble Beach, St Andrews, TPC Sawgrass, and every other venue on the PGA, LIV, DP World, and Korn Ferry calendars. """ type PGACourses { """ Primary Key """ id: BigInt name: String """ Official PGA Tour course id """ league_course_id: Int city: String state: String country: String zip: String longitude: Float latitude: Float """ Elevation in feet above sea level """ elevation: Float par: Int yards: Int """ IANA timezone (e.g., America/New_York) """ timezone: String address: String """ URL to aerial/overview image of course """ image_url: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String } """ The full leaderboard of every professional golf tournament — each player's position, score relative to par, total strokes, made cut/missed cut status, and prize money. """ type PGALeaderboards { """ Primary Key """ id: BigInt tournament_id: BigInt player_tournament_id: Int player_id: BigInt rank: Int """ Score relative to par """ total_score: Int total_strokes: Int """ Current hole of player for current round """ total_through: Int """ Prize money earned in cents """ earnings: BigInt fedex_pts: Int """ 1 if made cut, 0 if missed """ made_cut: Int made_cut_did_not_finish: Boolean """ 1 if won tournament """ win: Int is_alternate: Boolean is_withdrawn: Boolean """ out, active, etc. """ tournament_status: String tee_time: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String sg_total: Float sg_off_tee: Float sg_approach: Float sg_around_green: Float sg_putting: Float sg_tee_to_green: Float """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments } """ How each sportsbook and fantasy operator names every professional golfer — the mapping from each operator's player identifier to a unified player record. """ type PGAOperatorPlayerLookups { """ Primary Key """ id: BigInt """ Operator id: 1 DraftKings, 2 FanDuel, 3 Yahoo, 13 sportsdata.io. """ operator_id: BigInt """ External player ID from operator """ operator_player_id: String """ Internal golf.players.id reference """ player_id: BigInt """ Player name for reconciliation """ player_name: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The main.operators row referenced by `operator_id`; null when unlinked. """ operator: ReferenceOperators """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers } """ Hole-by-hole scoring for each player at each professional tournament — strokes and score relative to par per hole. (Shot-level tracking — drive distance, approach result, putts — is not carried here.) """ type PGAPlayerHoles { """ Primary Key """ id: BigInt tournament_id: BigInt player_id: BigInt player_round_id: BigInt round_number: Int hole_number: Int par: Int score: Int """ Score relative to par for this hole """ to_par: Int hole_in_one: Boolean double_eagle: Boolean eagle: Boolean birdie: Boolean is_par: Boolean bogey: Boolean double_bogey: Boolean worse_than_double_bogey: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.player_rounds row referenced by `player_round_id`; null when unlinked. """ player_round: PGAPlayerRounds """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments } """ News about professional golfers — equipment changes, swing coach updates, sponsorships, tour-status changes, suspensions, and general beat-reporter updates. """ type PGAPlayerNews { """ Primary Key """ id: BigInt player_id: BigInt tournament_id: BigInt source: String title: String content: String url: String terms_of_use: String author: String categories: String original_source: String original_source_url: String news_time: String updated_time: String priority: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String ai_processed: Boolean situational_impact: JSON """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments } """ Each player's scoring line for each round of every professional golf tournament — total strokes, score relative to par, eagles, birdies, bogeys, and double-bogeys. (Ball-striking detail — fairways, greens in regulation, putts — is not carried here.) """ type PGAPlayerRounds { """ Primary Key """ id: BigInt tournament_id: BigInt player_id: BigInt player_round_id: Int round_number: Int day: String tee_time: String back_nine_start: Boolean par: Int """ Total strokes for round """ score: Int double_eagles: Int eagles: Int birdies: Int pars: Int bogeys: Int double_bogeys: Int worse_than_double_bogey: Int triple_bogeys: Int worse_than_triple_bogey: Int holes_in_one: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String sg_total: Float sg_off_tee: Float sg_approach: Float sg_around_green: Float sg_putting: Float sg_tee_to_green: Float """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments """ golf.player_holes rows whose `player_round_id` references this row. """ player_holes( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerHoles!]! } """ Season totals for each professional golfer — events played, cuts made, top-10 finishes, wins, and prize money earned. Ball-striking and strokes-gained metrics are not carried here. """ type PGAPlayerSeasonStats { """ Primary Key """ id: BigInt player_id: BigInt tour_id: BigInt events: Int cuts_made: Int wins: Int second_place: Int third_place: Int top_five: Int top_ten: Int top_twenty_five: Int rounds: Int total_strokes: Int """ Total score relative to par """ total_score: Int double_eagles: Int eagles: Int birdies: Int pars: Int bogeys: Int double_bogeys: Int worse_than_double_bogey: Int triple_bogeys: Int worse_than_triple_bogey: Int holes_in_one: Int streaks_of_three_birdies_or_better: Int bogey_free_rounds: Int rounds_under_seventy: Int bounce_back_count: Int consecutive_birdie_or_better_count: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Average driving distance in yards """ driving_distance: Float driving_accuracy_pct: Float """ Greens in regulation percentage """ gir_pct: Float putts_per_round: Float scrambling_pct: Float sg_total: Float sg_off_tee: Float sg_approach: Float sg_around_green: Float sg_putting: Float season_id: BigInt """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.seasons row referenced by `season_id`; null when unlinked. """ season: PGASeasons """ The golf.tours row referenced by `tour_id`; null when unlinked. """ tour: PGATours } """ Shot-by-shot tracking for each player at each professional tournament — every stroke with its type, start/end location, distance, ShotLink/TOURCAST course coordinates, and TrackMan radar metrics (club & ball speed, spin, launch angle, apex, carry). Available for regular PGA Tour events with ShotLink; majors such as the Masters do not publish shot tracking. """ type PGAPlayerShots { """ Primary Key """ id: BigInt tournament_id: BigInt player_id: BigInt round_number: Int hole_number: Int """ Stroke sequence within the hole (1 = first stroke) """ shot_number: Int par: Int """ STROKE, PENALTY, DROP, PROVISIONAL """ stroke_type: String from_location: String to_location: String from_location_code: String to_location_code: String """ Shot distance in yards (null when the source reports feet near the green) """ distance_yards: Float """ Distance to the hole after the shot, in yards """ distance_remaining_yards: Float play_by_play: String final_stroke: Boolean from_x: Float from_y: Float from_z: Float to_x: Float to_y: Float to_z: Float club_speed: Float ball_speed: Float smash_factor: Float launch_spin: Float spin_axis: Float """ Vertical launch angle (degrees) """ launch_angle: Float apex_height: Float carry_distance: Float """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments } """ Every professional golfer — active tour members, conditional-status players, alumni who have competed at the highest level, and country-of-origin information. """ type PGAPlayers { """ Primary Key """ id: BigInt """ Official tour player identifier """ league_id: String first_name: String last_name: String full_name: String """ Official PGA Tour player id """ league_player_id: Int short_name: String country: String birth_date: String birth_city: String birth_state: String birth_country: String """ Right, Left """ swings: String college: String photo_url: String pga_debut_year: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ golf.leaderboards rows whose `player_id` references this row. """ leaderboards( """ Page size (default 50, max 500). """ first: Int ): [PGALeaderboards!]! """ golf.operator_player_lookups rows whose `player_id` references this row. """ operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [PGAOperatorPlayerLookups!]! """ golf.player_holes rows whose `player_id` references this row. """ player_holes( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerHoles!]! """ golf.player_news rows whose `player_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerNews!]! """ golf.player_rounds rows whose `player_id` references this row. """ player_rounds( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerRounds!]! """ golf.player_season_stats rows whose `player_id` references this row. """ player_season_stats( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerSeasonStats!]! """ golf.player_shots rows whose `player_id` references this row. """ player_shots( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerShots!]! """ golf.tournament_odds rows whose `player_id` references this row. """ tournament_odds_by_player_id( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentOdds!]! """ golf.tournament_odds rows whose `matchup_opponent_id` references this row. """ tournament_odds_by_matchup_opponent_id( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentOdds!]! """ golf.tournament_odds rows whose `round_matchup_opponent_id` references this row. """ tournament_odds_by_round_matchup_opponent_id( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentOdds!]! """ golf.tournament_odds rows whose `three_ball_opponent1_id` references this row. """ tournament_odds_by_three_ball_opponent1_id( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentOdds!]! """ golf.tournament_odds rows whose `three_ball_opponent2_id` references this row. """ tournament_odds_by_three_ball_opponent2_id( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentOdds!]! } type PGAQuery { """ Per-hole scoring statistics for each round of a tournament — par, yardage, the field's scoring average and its relation to par, and the distribution of eagles, birdies, pars, and bogeys, plus difficulty rank. Requires at least one of these filter sets: `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ course_hole_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single tournament. """ tournament_id: Int ): [PGACourseHoleStats!]! """ Golf courses that host professional events — Augusta National, Pebble Beach, St Andrews, TPC Sawgrass, and every other venue on the PGA, LIV, DP World, and Korn Ferry calendars. Metered by rows resolved across all nested lists — the same record unit as REST. """ courses( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [PGACourses!]! """ The full leaderboard of every professional golf tournament — each player's position, score relative to par, total strokes, made cut/missed cut status, and prize money. Requires at least one of these filter sets: `tournament_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ leaderboards( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single tournament. """ tournament_id: Int, """ Filter to a single player. """ player_id: Int ): [PGALeaderboards!]! """ How each sportsbook and fantasy operator names every professional golfer — the mapping from each operator's player identifier to a unified player record. Requires at least one of these filter sets: `operator_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ operator_player_lookups( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by operator. """ operator_id: Int, """ Filter to a single player. """ player_id: Int ): [PGAOperatorPlayerLookups!]! """ Hole-by-hole scoring for each player at each professional tournament — strokes and score relative to par per hole. (Shot-level tracking — drive distance, approach result, putts — is not carried here.) Requires at least one of these filter sets: `player_id` | `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_holes( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a single tournament. """ tournament_id: Int ): [PGAPlayerHoles!]! """ News about professional golfers — equipment changes, swing coach updates, sponsorships, tour-status changes, suspensions, and general beat-reporter updates. Requires at least one of these filter sets: `player_id` | `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_news( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a tournament. """ tournament_id: Int, """ Filter by publication time (ISO 8601). Use news_time__gte to poll for items since your last check. """ news_time: String, """ `gte` comparison on `news_time`. """ news_time__gte: String, """ `lte` comparison on `news_time`. """ news_time__lte: String, """ Range filter on `news_time` — pass "lo,hi". """ news_time__between: String ): [PGAPlayerNews!]! """ Each player's scoring line for each round of every professional golf tournament — total strokes, score relative to par, eagles, birdies, bogeys, and double-bogeys. (Ball-striking detail — fairways, greens in regulation, putts — is not carried here.) Requires at least one of these filter sets: `player_id` | `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_rounds( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a single tournament. """ tournament_id: Int ): [PGAPlayerRounds!]! """ Season totals for each professional golfer — events played, cuts made, top-10 finishes, wins, and prize money earned. Ball-striking and strokes-gained metrics are not carried here. Requires at least one of these filter sets: `season_id` | `player_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_season_stats( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single season. Defaults to the current season. """ season_id: Int, """ Filter to a single player. """ player_id: Int, """ Filter by tour. """ tour_id: Int ): [PGAPlayerSeasonStats!]! """ Shot-by-shot tracking for each player at each professional tournament — every stroke with its type, start/end location, distance, ShotLink/TOURCAST course coordinates, and TrackMan radar metrics (club & ball speed, spin, launch angle, apex, carry). Available for regular PGA Tour events with ShotLink; majors such as the Masters do not publish shot tracking. Requires at least one of these filter sets: `player_id` | `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ player_shots( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single player. """ player_id: Int, """ Filter to a single tournament. """ tournament_id: Int ): [PGAPlayerShots!]! """ Every professional golfer — active tour members, conditional-status players, alumni who have competed at the highest level, and country-of-origin information. Metered by rows resolved across all nested lists — the same record unit as REST. """ players( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [PGAPlayers!]! """ Each season on a professional golf tour — the year-long schedule of tournaments leading up to the FedExCup playoffs (PGA), the major championships, and the season-ending Tour Championship. Metered by rows resolved across all nested lists — the same record unit as REST. """ seasons( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [PGASeasons!]! """ Outright betting odds for professional golf tournaments — who wins the event, top-5/top-10/top-20 finish markets, head-to-head matchups, and other tournament-level wagers from sportsbooks. Requires at least one of these filter sets: `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ tournament_odds( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single tournament. """ tournament_id: Int, """ Filter to a single player. """ player_id: Int ): [PGATournamentOdds!]! """ Each round of every professional golf tournament — round 1 (Thursday), round 2 (Friday cut day), and the weekend rounds (Saturday and Sunday) plus any playoff holes. Requires at least one of these filter sets: `tournament_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ tournament_rounds( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single tournament. """ tournament_id: Int ): [PGATournamentRounds!]! """ Every professional golf tournament — the four majors (Masters, PGA Championship, U.S. Open, Open Championship), the PGA Tour stops, LIV events, the FedExCup playoffs, and Korn Ferry Tour events. Requires at least one of these filter sets: `season_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ tournaments( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to a single season. Defaults to the current season. """ season_id: Int, """ Filter by tour. """ tour_id: Int ): [PGATournaments!]! """ Professional golf tours — the PGA Tour, LIV Golf, the DP World Tour (formerly European Tour), the Korn Ferry Tour, the LPGA, and other competitive circuits. Metered by rows resolved across all nested lists — the same record unit as REST. """ tours( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [PGATours!]! } """ Each season on a professional golf tour — the year-long schedule of tournaments leading up to the FedExCup playoffs (PGA), the major championships, and the season-ending Tour Championship. """ type PGASeasons { """ Official tour season identifier """ league_id: String start_date: String end_date: String start_year: Int tour_id: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Primary Key """ id: BigInt """ The golf.tours row referenced by `tour_id`; null when unlinked. """ tour: PGATours """ golf.player_season_stats rows whose `season_id` references this row. """ player_season_stats( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerSeasonStats!]! """ golf.tournaments rows whose `season_id` references this row. """ tournaments( """ Page size (default 50, max 500). """ first: Int ): [PGATournaments!]! } """ Outright betting odds for professional golf tournaments — who wins the event, top-5/top-10/top-20 finish markets, head-to-head matchups, and other tournament-level wagers from sportsbooks. """ type PGATournamentOdds { """ Primary Key """ id: BigInt tournament_id: BigInt player_id: BigInt """ DraftKings, FanDuel, BetMGM, etc. """ sportsbook: String is_available: Boolean is_alternate: Boolean """ Odds to win tournament (American format) """ outright_odds: Int top_five_odds: Int top_ten_odds: Int top_twenty_odds: Int make_cut_odds: Int miss_cut_odds: Int first_round_leader_odds: Int matchup_opponent_id: BigInt matchup_odds: Int matchup_opponent_odds: Int round_matchup_opponent_id: BigInt round_matchup_odds: Int round_matchup_opponent_odds: Int three_ball_opponent1_id: BigInt three_ball_opponent2_id: BigInt three_ball_odds: Int """ Row-updated timestamp (DB-managed). """ updated_at: String """ Row-created timestamp (DB-managed). """ created_at: String """ The golf.players row referenced by `player_id`; null when unlinked. """ player: PGAPlayers """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments """ The golf.players row referenced by `matchup_opponent_id`; null when unlinked. """ matchup_opponent: PGAPlayers """ The golf.players row referenced by `round_matchup_opponent_id`; null when unlinked. """ round_matchup_opponent: PGAPlayers """ The golf.players row referenced by `three_ball_opponent1_id`; null when unlinked. """ three_ball_opponent1: PGAPlayers """ The golf.players row referenced by `three_ball_opponent2_id`; null when unlinked. """ three_ball_opponent2: PGAPlayers } """ Each round of every professional golf tournament — round 1 (Thursday), round 2 (Friday cut day), and the weekend rounds (Saturday and Sunday) plus any playoff holes. """ type PGATournamentRounds { """ Primary Key """ id: BigInt tournament_id: BigInt round_id: Int round_number: Int day: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The golf.tournaments row referenced by `tournament_id`; null when unlinked. """ tournament: PGATournaments } """ Every professional golf tournament — the four majors (Masters, PGA Championship, U.S. Open, Open Championship), the PGA Tour stops, LIV events, the FedExCup playoffs, and Korn Ferry Tour events. """ type PGATournaments { """ Primary Key """ id: BigInt """ Official tour tournament identifier """ league_id: String name: String tournament_id: Int tour_id: BigInt start_date: String end_date: String is_over: Boolean is_in_progress: Boolean venue: String par: Int yards: Int """ Total prize money in cents """ purse: BigInt start_date_time: String canceled: Boolean city: String state: String zip: String country: String time_zone: String rounds: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String season_id: BigInt """ The golf.seasons row referenced by `season_id`; null when unlinked. """ season: PGASeasons """ The golf.tours row referenced by `tour_id`; null when unlinked. """ tour: PGATours """ golf.course_hole_stats rows whose `tournament_id` references this row. """ course_hole_stats( """ Page size (default 50, max 500). """ first: Int ): [PGACourseHoleStats!]! """ golf.leaderboards rows whose `tournament_id` references this row. """ leaderboards( """ Page size (default 50, max 500). """ first: Int ): [PGALeaderboards!]! """ golf.player_holes rows whose `tournament_id` references this row. """ player_holes( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerHoles!]! """ golf.player_news rows whose `tournament_id` references this row. """ player_news( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerNews!]! """ golf.player_rounds rows whose `tournament_id` references this row. """ player_rounds( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerRounds!]! """ golf.player_shots rows whose `tournament_id` references this row. """ player_shots( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerShots!]! """ golf.tournament_odds rows whose `tournament_id` references this row. """ tournament_odds( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentOdds!]! """ golf.tournament_rounds rows whose `tournament_id` references this row. """ tournament_rounds( """ Page size (default 50, max 500). """ first: Int ): [PGATournamentRounds!]! } """ Professional golf tours — the PGA Tour, LIV Golf, the DP World Tour (formerly European Tour), the Korn Ferry Tour, the LPGA, and other competitive circuits. """ type PGATours { """ Primary Key """ id: BigInt name: String """ Tour code (pga, european, liv, lpga, champions, korn_ferry) """ code: String tour_id: Int description: String active: Boolean logo_url: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ golf.player_season_stats rows whose `tour_id` references this row. """ player_season_stats( """ Page size (default 50, max 500). """ first: Int ): [PGAPlayerSeasonStats!]! """ golf.seasons rows whose `tour_id` references this row. """ seasons( """ Page size (default 50, max 500). """ first: Int ): [PGASeasons!]! """ golf.tournaments rows whose `tour_id` references this row. """ tournaments( """ Page size (default 50, max 500). """ first: Int ): [PGATournaments!]! } """ OHLC candlestick price summaries for Polymarket outcome tokens — the open, high, low, close, and volume over standard time bins (1 minute, 5 minute, 1 hour, 1 day). Bucketed by (token_id, period_interval, end_period_ts). """ type PolymarketCandles { """ Primary Key """ id: BigInt token_id: String market_id: BigInt """ Period length in seconds (1, 60, 300, 3600) """ period_interval: Int """ Unix epoch second of period end """ end_period_ts: Int open_bps: Int high_bps: Int low_bps: Int close_bps: Int """ Trade count in period """ volume: Int """ Total share size in micro-units """ size: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The polymarket.markets row referenced by `market_id`; null when unlinked. """ market: PolymarketMarkets } """ A real-world event that anchors a set of Polymarket markets — a single sports game, an election, a futures question, or any other resolvable scenario. E.g., "Mavericks vs Suns" game event or "2026 NBA Champion" futures event. """ type PolymarketEvents { """ Primary Key """ id: BigInt """ Polymarket event condition ID (stable identifier) """ condition_id: String """ URL slug, e.g. "nba-dal-phx-2026-04-08" """ slug: String title: String description: String start_date: String end_date: String """ "active", "closed", "resolved" """ status: String """ True for multi-outcome groups (e.g., 30-team NBA Champion) """ neg_risk: Boolean """ Polymorphic cross-schema ref — {league}.games (team sports) or golf.tournaments (golf), resolved at app level by slug parsing via league_code. Dereference via main.competitions. NULL until linked. """ competition_id: BigInt """ Game date parsed from slug """ game_date: String """ Tricode: "PHX" """ home_team: String """ Tricode: "DAL" """ away_team: String """ e.g. "nba", denormalized for filtering """ league_code: String """ Lifetime volume in USDC minor units """ volume: BigInt """ Current liquidity in USDC minor units """ liquidity: BigInt market_count: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ polymarket.markets rows whose `event_id` references this row. """ markets( """ Page size (default 50, max 500). """ first: Int ): [PolymarketMarkets!]! """ polymarket.tokens rows whose `event_id` references this row. """ tokens( """ Page size (default 50, max 500). """ first: Int ): [PolymarketTokens!]! """ The sporting event this row prices, resolved through the cross-sport competition registry via (league_code, competition_id); null when the row is not linked to a game or tournament. """ competition: Competition } """ An individual prediction market on Polymarket — a specific question tied to an event, resolved on-chain, with one or more tradable outcome tokens. Each market has 2+ tokens representing outcome positions. """ type PolymarketMarkets { """ Primary Key """ id: BigInt """ Polymarket market condition ID (stable identifier) """ condition_id: String event_id: BigInt """ Full question text """ question: String slug: String """ Polymorphic cross-schema ref (denormalized from event) resolved at app level by league_code. Dereference via main.competitions. NULL until linked. """ competition_id: BigInt neg_risk: Boolean """ "active", "closed", "resolved" """ status: String """ Winning outcome string, null if unresolved """ result: String """ Number of tokens/outcomes (2 for binary, N for multi-outcome) """ outcome_count: Int active: Boolean closed: Boolean volume: BigInt liquidity: BigInt """ Basis points (0-10000) """ best_bid_bps: Int """ Basis points (0-10000) """ best_ask_bps: Int """ Basis points (0-10000) """ last_trade_price_bps: Int """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ When the market was resolved """ resolved_at: String """ "uma", "manual", etc. """ resolution_source: String """ Token ID that paid out at 1.00 (winner) """ payout_token_id: String """ The polymarket.events row referenced by `event_id`; null when unlinked. """ event: PolymarketEvents """ polymarket.tokens rows whose `market_id` references this row. """ tokens( """ Page size (default 50, max 500). """ first: Int ): [PolymarketTokens!]! """ polymarket.candles rows whose `market_id` references this row. """ candles( """ Page size (default 50, max 500). """ first: Int ): [PolymarketCandles!]! """ polymarket.price_histories rows whose `market_id` references this row. """ price_histories( """ Page size (default 50, max 500). """ first: Int ): [PolymarketPriceHistories!]! """ polymarket.public_trades rows whose `market_id` references this row. """ public_trades( """ Page size (default 50, max 500). """ first: Int ): [PolymarketPublicTrades!]! } """ Historical price tracks for each Polymarket outcome token — the full time-series of trading prices since the market opened. Analogous to kalshi.candle. """ type PolymarketPriceHistories { """ Primary Key """ id: BigInt """ Polymarket clobTokenId """ token_id: String """ Denormalized for market-level queries """ market_id: BigInt """ Period length in seconds (60, 3600, 86400) """ interval_seconds: Int """ Start of this OHLC period """ period_start: String """ Opening price in basis points """ open_bps: Int high_bps: Int low_bps: Int close_bps: Int """ Period volume """ volume: BigInt """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ The polymarket.markets row referenced by `market_id`; null when unlinked. """ market: PolymarketMarkets } """ Every executed trade on Polymarket — price, size, side (buy or sell of each token), and timestamp, comprising the public market tape. Represents completed market trades. """ type PolymarketPublicTrades { """ Primary Key """ id: BigInt """ Trade ID from Polymarket API """ trade_id: String """ Polymarket clobTokenId """ token_id: String """ Denormalized for market-level queries """ market_id: BigInt """ "BUY" or "SELL" """ side: String """ Trade price in basis points (0-10000) """ price_bps: Int """ Trade size (number of shares) """ size: BigInt traded_at: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Maker address (limit order provider) from on-chain event """ maker_address: String """ Taker address (market order) from on-chain event """ taker_address: String """ The polymarket.markets row referenced by `market_id`; null when unlinked. """ market: PolymarketMarkets } type PolymarketQuery { """ OHLC candlestick price summaries for Polymarket outcome tokens — the open, high, low, close, and volume over standard time bins (1 minute, 5 minute, 1 hour, 1 day). Bucketed by (token_id, period_interval, end_period_ts). Requires at least one of these filter sets: `market_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ candles( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to candles for all tokens in a single Polymarket market. """ market_id: Int, """ Filter to candles for a single outcome token (clobTokenId). """ token_id: String, """ Bin width in seconds. Currently every row is period_interval=1 (event-driven captures, irregular spacing) — resample client-side for fixed OHLC bins. """ period_interval: Int ): [PolymarketCandles!]! """ A real-world event that anchors a set of Polymarket markets — a single sports game, an election, a futures question, or any other resolvable scenario. E.g., "Mavericks vs Suns" game event or "2026 NBA Champion" futures event. Requires at least one of these filter sets: `league_code`. Metered by rows resolved across all nested lists — the same record unit as REST. """ events( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to events for a single league/sport slug (e.g., "nba", "nfl", "soccer"). """ league_code: String, """ Filter to events linked to a specific competition (cross-schema game; resolved from slug). """ competition_id: Int, """ Filter by event status — "active" or "closed". """ status: String, """ Filter to events scheduled on a specific date (YYYY-MM-DD). """ game_date: String ): [PolymarketEvents!]! """ An individual prediction market on Polymarket — a specific question tied to an event, resolved on-chain, with one or more tradable outcome tokens. Each market has 2+ tokens representing outcome positions. Requires at least one of these filter sets: `event_id` | `competition_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ markets( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to all markets that belong to a single Polymarket event. """ event_id: Int, """ Filter to markets linked to a specific competition (denormalized from event). """ competition_id: Int, """ Filter by market status — "active" or "closed" ("resolved" appears only on 22 legacy rows that carry no resolution data; resolution fields live on closed rows). """ status: String, """ Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive). """ active: Boolean ): [PolymarketMarkets!]! """ Historical price tracks for each Polymarket outcome token — the full time-series of trading prices since the market opened. Analogous to kalshi.candle. Requires at least one of these filter sets: `token_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ price_histories( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to price history for a single Polymarket outcome token (clobTokenId). """ token_id: String, """ Filter to price history for all tokens in a single market. """ market_id: Int, """ Upstream fetch-window label (currently always 86400) — NOT a bin width; points within a window are irregularly spaced. Resample client-side. """ interval_seconds: Int ): [PolymarketPriceHistories!]! """ Every executed trade on Polymarket — price, size, side (buy or sell of each token), and timestamp, comprising the public market tape. Represents completed market trades. Requires at least one of these filter sets: `market_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ public_trades( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to trades on a single Polymarket market. """ market_id: Int, """ Filter to trades for a single outcome token (clobTokenId). """ token_id: String ): [PolymarketPublicTrades!]! """ The tradable outcome tokens within a Polymarket market — YES and NO for binary markets, or one token per outcome for multi-outcome markets (e.g., each team in a championship futures market). The clobTokenId is used to query CLOB API for pricing and trades. Requires at least one of these filter sets: `market_id`. Metered by rows resolved across all nested lists — the same record unit as REST. """ tokens( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt, """ Filter to outcome tokens for a single Polymarket market. """ market_id: Int, """ Filter to tokens linked to a single event (denormalized for direct event queries). """ event_id: Int ): [PolymarketTokens!]! } """ The tradable outcome tokens within a Polymarket market — YES and NO for binary markets, or one token per outcome for multi-outcome markets (e.g., each team in a championship futures market). The clobTokenId is used to query CLOB API for pricing and trades. """ type PolymarketTokens { """ Primary Key """ id: BigInt """ Polymarket clobTokenId (used for CLOB API queries) """ token_id: String market_id: BigInt """ Denormalized for direct event queries """ event_id: BigInt """ Outcome label: team name, "Yes", "No" """ outcome: String """ 0-based index of this outcome within the market """ outcome_index: Int """ Latest price in basis points (0-10000) """ price_bps: Int """ True if this outcome won, null if unresolved """ winner: Boolean """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ Settlement price (10000 for winner, 0 for loser) """ final_price_bps: Int """ The polymarket.markets row referenced by `market_id`; null when unlinked. """ market: PolymarketMarkets """ The polymarket.events row referenced by `event_id`; null when unlinked. """ event: PolymarketEvents } type Query { """ All public `nfl` tables. """ nfl: NFLQuery! """ All public `nba` tables. """ nba: NBAQuery! """ All public `mlb` tables. """ mlb: MLBQuery! """ All public `pga` tables. """ pga: PGAQuery! """ All public `kalshi` tables. """ kalshi: KalshiQuery! """ All public `polymarket` tables. """ polymarket: PolymarketQuery! """ All public `dfs` tables. """ dfs: DFSQuery! """ All public `reference` tables. """ reference: ReferenceQuery! } """ The operators referenced by every operator_id filter across the public API — DFS sites (1 DraftKings, 2 FanDuel, 3 Yahoo), sportsbooks (1683 Pinnacle, 1684 BetMGM, 1685 Caesars, 1686 BetRivers, 1687 ESPN BET), and data providers (6 Consensus, 13 sportsdata.io). A small read-only lookup table. """ type ReferenceOperators { """ Primary Key """ id: BigInt """ Stable machine code (e.g. draftkings, fanduel, consensus, pinnacle). """ code: String """ Display name (e.g. DraftKings, FanDuel, Pinnacle). """ name: String """ Operator class — DFS, betting, media, or data provider (mixed-case legacy values exist). """ operator_type: String """ False for operators no longer ingested. """ is_active: Boolean website_url: String description: String """ Row-created timestamp (DB-managed). """ created_at: String """ Row-updated timestamp (DB-managed). """ updated_at: String """ dfs.contest_users rows whose `operator_id` references this row. """ dfs_contest_users( """ Page size (default 50, max 500). """ first: Int ): [DFSContestUsers!]! """ dfs.slate_settings rows whose `operator_id` references this row. """ dfs_slate_settings( """ Page size (default 50, max 500). """ first: Int ): [DFSSlateSettings!]! """ dfs.slates rows whose `operator_id` references this row. """ dfs_slates( """ Page size (default 50, max 500). """ first: Int ): [DFSSlates!]! """ golf.operator_player_lookups rows whose `operator_id` references this row. """ pga_operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [PGAOperatorPlayerLookups!]! """ mlb.game_lines rows whose `operator_id` references this row. """ mlb_game_lines( """ Page size (default 50, max 500). """ first: Int ): [MLBGameLines!]! """ mlb.operator_player_lookups rows whose `operator_id` references this row. """ mlb_operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [MLBOperatorPlayerLookups!]! """ nba.game_lines rows whose `operator_id` references this row. """ nba_game_lines( """ Page size (default 50, max 500). """ first: Int ): [NBAGameLines!]! """ nba.game_period_lines rows whose `operator_id` references this row. """ nba_game_period_lines( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePeriodLines!]! """ nba.game_player_props rows whose `operator_id` references this row. """ nba_game_player_props( """ Page size (default 50, max 500). """ first: Int ): [NBAGamePlayerProps!]! """ nba.operator_player_lookups rows whose `operator_id` references this row. """ nba_operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [NBAOperatorPlayerLookups!]! """ nba.operator_team_lookups rows whose `operator_id` references this row. """ nba_operator_team_lookups( """ Page size (default 50, max 500). """ first: Int ): [NBAOperatorTeamLookups!]! """ nfl.game_lines rows whose `operator_id` references this row. """ nfl_game_lines( """ Page size (default 50, max 500). """ first: Int ): [NFLGameLines!]! """ nfl.operator_player_lookups rows whose `operator_id` references this row. """ nfl_operator_player_lookups( """ Page size (default 50, max 500). """ first: Int ): [NFLOperatorPlayerLookups!]! """ nfl.operator_team_lookups rows whose `operator_id` references this row. """ nfl_operator_team_lookups( """ Page size (default 50, max 500). """ first: Int ): [NFLOperatorTeamLookups!]! } type ReferenceQuery { """ The operators referenced by every operator_id filter across the public API — DFS sites (1 DraftKings, 2 FanDuel, 3 Yahoo), sportsbooks (1683 Pinnacle, 1684 BetMGM, 1685 Caesars, 1686 BetRivers, 1687 ESPN BET), and data providers (6 Consensus, 13 sportsdata.io). A small read-only lookup table. Metered by rows resolved across all nested lists — the same record unit as REST. """ operators( """ Page size; clamped to the table's REST default/max limits. """ first: Int, """ Keyset cursor — returns rows with id > after, ordered by id ascending. """ after: BigInt ): [ReferenceOperators!]! } """ Directs the executor to include this field or fragment only when the `if` argument is true. """ directive @include(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT """ Directs the executor to skip this field or fragment when the `if` argument is true. """ directive @skip(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT schema { query: Query }