Skip to content

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

FieldArgsTypeDescription
id—ID! required—
name—String! requiredProvider-published table name, e.g. “Driver Championship”.
standingType—String! requiredCanonical 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—StringThe 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.
entrieslimit: Int
offset: Int
StandingEntriesResult! requiredRanked 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.