🪜Stages
The Stages endpoints allow you to retrieve structural phases of a season (e.g. regular season, playoffs, group stage). You can query stages at the season level or individually.
Available endpoints
GET All Stages: get all stages available under your subscription
GET Stage by ID: fetch a specific stage
GET Stages by Season ID: get all stages linked to one season
GET Stages by Search (Name): search for stages matching a name
Include options
league season type sport rounds currentRound groups fixtures aggregates topscorers statistics
(Related entity: Stage)
Why stages have standings?
Not every stage supports standings (i.e. ranking tables). Below is how you can determine which do, how to query standings per stage, and example usage.
Understanding standings & stage relationships
The standings endpoints support filtering by stage IDs. You can pass
stage_idsas a parameter when requesting standings.Only table-based stages (e.g. group stages, regular season) typically yield a standings table. Knockout or elimination stages (e.g. quarter-finals, semi-finals) usually do not produce standings, because they are not cumulative formats.
If you query standings for a non-standings stage, you'll likely get either an empty array or the API will ignore that stage filter.
Example: Querying standings by stage
To get standings restricted to particular stage(s), you use something like:
GET /v3/football/standings/seasons/{season_id}?stage_ids={stage_id1},{stage_id2}&api_token=YOUR_TOKENFor example, in a season with:
Stage A: “Regular Season” (table)
Stage B: “Playoffs” (knockout)
You might fetch full standings:
GET /v3/football/standings/seasons/19686?api_token=YOUR_TOKENOr drill into stage A only:
GET /v3/football/standings/seasons/19686?stage_ids=stageA_id&api_token=YOUR_TOKENIf you pass stage_ids for a stage that doesn’t support tables (Stage B), the result may exclude it.
Detecting standings support by stage
Use the
typefield on the Stage entity to infer its nature (e.g. “Group Stage”, “Regular Season”)In your UI logic, you can first query all stages in a season, then filter out those whose
typeis non-table or known elimination typesAlways combine that logic with a fallback: if standings for a stage come back empty, treat it as non-standings
Edge cases & tips
Some seasons have multiple stages of the same type (e.g. “First Phase”, “Split Phase”); each can have its own standings.
In group competitions (e.g. Champions League), you might combine
stage_ids+group_idsto filter standings at both the stage and group level.For live standings, you can also use the Live Standings endpoint by league ID.
Last updated
Was this helpful?