Skip to main content

Overview

The FIFA World Cup 2026 runs across the United States, Canada, and Mexico from June 11, 2026 (Mexico vs South Africa) through the Final. It is the first 48-team edition, with 104 matches played across 12 groups (A–L). To make integration easy, V2 exposes a set of convenience endpoints that hardcode the correct tournamentId and seasonId so you don’t have to discover them.

Base URL

All endpoints require the x-api-key header. See Authentication.
Underlying canonical IDstournamentId = 16, seasonId = 58210. These resolve to the exact same data as the convenience endpoints below. Store uniqueTournament.id = 16 if you need a long-term reference; see Canonical IDs.

Convenience Endpoints

Responses follow the standard V2 schema. Match kickoff times use Unix epoch (startTimestamp).

Round IDs

Use these with /api/world-cup-2026/matches/round/:round.

Groups

Example Request

Managers & Venues

Manager (head coach), team home venue, and per-match venue (with coordinates) are all reachable from the World Cup data — you just need to know which endpoint exposes which field.
/api/world-cup-2026/teams is intentionally compact (IDs, names, short names, logos). To hydrate manager and home venue, fan out one /api/teams/{id} call per team — a single call returns both in one shot.

Team detail: manager + home venue

Match venue (embedded on every event)

No extra request needed — every entry in /api/world-cup-2026/matches already includes its venue, complete with capacity, city, country, and coordinates.
  1. GET /api/world-cup-2026/teams once to enumerate the 48 team IDs.
  2. Fan out GET /api/teams/{id} to hydrate manager + home venue per team (cache aggressively — these rarely change mid-tournament).
  3. For per-match venue (kickoff stadium, coordinates, attendance hooks) read events[].venue directly off /api/world-cup-2026/matches — no second call required.

Squad & jersey data

GET /api/teams/{teamId}/players returns the team’s broader roster pool (extended call-ups, recent friendlies, youth/U23 affiliations) — not the registered FIFA 26-man tournament squad. Until FIFA squad registration closes (~7 days before kick-off on June 11 2026), jersey numbers on this endpoint will collide across players because they reflect multiple historical assignments. This is expected upstream behaviour, not a bug.
For clean, FIFA-unique jersey numbers during the tournament, use match-level lineups: Once each federation submits its official 26-man squad to FIFA, /api/teams/{teamId}/players will reflect the locked tournament squad with unique jerseys 1–26. Until then, treat match lineups as the source of truth for jersey assignments.
  • Tournament endpoints — generic season-scoped endpoints work for the World Cup too (use tournamentId=16, seasonId=58210).
  • Canonical IDs — why you should store uniqueTournament.id = 16 rather than per-season IDs.
  • Referee match statistics — derived per-match cards/fouls/penalties for any assigned referee, ready as soon as FIFA publishes appointments.
  • WebSocket — real-time score updates during matches.
Last modified on June 29, 2026