GET requests with your API key and get JSON back.
What data you can get
Not every competition has every data type, and how far back the data goes varies by competition. Check Coverage before you build a feature. Competitions and matches also carry flags such as
xg_available and odds_available, so you can tell before you call an endpoint.
Base URL and authentication
Every endpoint lives under this base URL:Authorization header on every request:
Requests
-
Filters are query parameters. For example,
/football/matches?team_id=tm_9145&status=finished. -
Only documented parameters are accepted. A misspelled or unknown parameter returns
400 UNKNOWN_PARAMETER. The message suggests the closest name and lists the parameters the endpoint accepts. -
IDs are prefixed strings. Use them exactly as the API returns them.
-
Dates are
YYYY-MM-DDindate_fromanddate_to. There is nodateparameter. Kickoff times in responses are UTC.
Responses
List endpoints return adata array and a meta object for paging. For example, GET /football/teams?search=Arsenal&is_mens_team=true&per_page=1 returns:
data. For example, GET /football/competitions/comp_3039 returns (trimmed):
code:
Data is pull-only. There are no webhooks or streaming connections. For live matches, poll the live endpoints. See Live matches.
Versioning and changes
- We add new endpoints, parameters and response fields over time. Write code that ignores fields it doesn’t recognise.
- Deprecated endpoints are labelled in the API reference. For example, player-prop odds moved to
/v2/football/matches/{match_id}/odds/players, and the old v1 path is marked deprecated.