StandingTable
Object type
A published standings table — basketball league/conference tables, F1 driver/constructor
championships, per-session classifications. Well-known columns are promoted to typed fields on each
entry; everything else rides the values map. Tennis STAGE standings are empty — the ATP/WTA race
rankings hang off the season, not the stage, so they surface via standingsForSeason (POD-658).
Fields
Section titled “Fields”| Field | Args | Type | Description |
|---|---|---|---|
id | — | ID! required | — |
name | — | String! required | Provider-published table name, e.g. “Driver Championship”. |
standingType | — | String! required | Canonical standing type: LEAGUE_TABLE, CONFERENCE_TABLE, DRIVER_CHAMPIONSHIP, CONSTRUCTOR_CHAMPIONSHIP, RANKING, OTHER. scope is the coarser cross-sport projection of this. |
scope | — | StandingScope | — |
updatedAt | — | DateTime! required | — |
season | — | String | The season this table belongs to, where the writer stamped one (POD-838). NULL for the EnetPulse sports, whose tables hang off a season ROW and are therefore already scoped by the competition id used to fetch them. Football has no season rows — every season’s tables sit against the one competition — so a caller reading this field is the only way to tell 2026’s league table from 2025’s, since they share the name League Table. standingsForSeason does NOT filter on it; Competition.leagueTable(season:) does. |
entries | limit: Intoffset: Int | StandingEntriesResult! required | Ranked entries in rank order, paged. Paged because a ranking table is not a league table: the ATP race carries ~1,400 players per season (26,573 entries across 19 seasons) against a football table’s 20, so an unbounded read is a 1,400-row payload and a 1,400-row render. Omitting limit returns every entry — the honest default, since a silent cap would let a caller believe it had the whole ranking. |