How it fits together
Everything starts with a competition. A competition has seasons, and a season has matches. Teams and players appear in matches and in season stats.
What to send for common requests:
IDs
Every ID is a string with a prefix that tells you what it points to.
Not sure of an ID? See Find IDs.
Competitions
The
country_code filter on /football/competitions accepts GB for all UK nations, or GB-ENG, GB-SCT, GB-WLS and GB-NIR for one nation. Other countries use ISO codes such as DE or ES.
Seasons
Teams
A club’s men’s and women’s teams can share a name. Arsenal men are
tm_9145 and Arsenal women are tm_515555. Use is_mens_team to tell them apart, or filter the list with GET /football/teams?search=Arsenal&is_mens_team=false.
Players
Matches
Full field lists are on Get a match and List matches.
Availability flags
Some data is optional. Flags tell you whether it exists, so you can skip calls that would return nothing.
Competition flags tell you whether a data type exists anywhere in that competition. They don’t tell you which seasons have it. For a season-by-season answer, use the coverage endpoints.
Dates and times
- Kickoff times (
utc_date) are ISO 8601 in UTC, for example2026-10-10T11:30:00.000Z. Convert to local time in your app. - Filtering by day uses
date_fromanddate_toinYYYY-MM-DDformat. There is nodateparameter. For one day, send the same date in both. - Local days: add
utc_offset, such as-05:00, to readdate_fromanddate_toin another time zone. Kickoff times in the response stay in UTC. In a URL, write a plus sign as%2B(utc_offset=%2B02:00), or build the query withURLSearchParams. - Birth dates (
date_of_birth) areYYYY-MM-DD.
Null values
null means the value is unknown or doesn’t exist yet. It never means zero or false.
When optional data doesn’t exist for a match, some endpoints return
404 (for example Heatmap not available for this player in this match) and others return an empty data list. Check the availability flags first. See Errors.
Next steps
- Find IDs: look up the IDs for your competitions, teams and players.
- Data coverage: check which seasons have the data you need.
- Pagination and sorting: fetch long lists in the right order.