SoccersAPIDocsv2.2
Docs/Guides

Data Model

How the entities relate, which field carries which identifier, and the conventions shared by every response.

Competition tree from continent to match, and the entities linked from a match

From Field Leads to
League (leagues?t=info) seasons[].id, id_current_season, id_current_stage, id_current_round Season, stage and round to query next.
Season (seasons?t=info) league_id, stages[], round_ids[], current_round_id, current_stage_id, start, end Stages carry has_standings and has_cupdraw; rounds are the match days.
Match league.id, season_id, stage_id, group_id, round_id, teams.home.id, teams.away.id, venue_id, referee_id, teams.*.coach_id, aggregate_id, related_id Every other resource of the match.
Team (teams?t=info) current_seasons[], leagues[].current_season_id, coach_id, venue_id Seasons to query for fixtures and standings.
Player (players?t=info) team_id, national_team_id, roles[].team.id, leagues[].seasons[] Current and past teams and competitions.
Broadcast tvs[].id, broadcast[].id Channel profile (broadcast?t=info) and its fixtures (fixtures?t=tv).

Seasons are the pivot of the model: fixtures, standings, teams, leaders and season statistics are all keyed by season_id. A league profile gives you the current one; seasons[] on the same profile gives you the history, newest first.

Identifiers

Images

Image fields contain CDN URLs. For routes that include a size segment, replace that segment with 18, 50, 80, 100 or 150 to request the same asset at another supported size. See Images & CDN for the full pattern table, working examples and fallback guidance.

Dates and times

Colours

teams?t=info returns kit[] with the home, away, third and goalkeeper kits, each with hex colours for shirt, sleeve, number and, where present, sleeve_detail. Matches embed the colours of the kit each side wears in teams.home.kit_colors and teams.away.kit_colors.

Coverage

Coverage differs by competition and by match. Read the flags before showing a tab: coverage.has_lineups, coverage.has_tvs and coverage.has_standings on a match, has_standings and has_cupdraw on a stage. A dataset that is not covered returns 200 with an empty array or null fields, never an error; see Plans and Data Access for what a 403 means instead.

Read in the reference