Parameter conventions

Which filters an endpoint accepts depends on the sport you are calling. Each prefix follows one of two conventions, and the convention decides the filter names you put in the query string.

Which convention your prefix follows

Convention Prefixes
Country and league

/football, /basketball, /hockey, /rugby, /handball, /volleyball, /cricket

Single league

/american-football, /baseball, /nba, /nhl

A country and league prefix covers many leagues across many countries, so a query narrows by country and then by league. A single league prefix covers one professional league alongside its NCAA competitions, so there is no country to narrow by.

The filter names

To filter by Country and league Single league
Competition on matches leagueId and leagueName league
Competition on highlights and odds leagueId and leagueName leagueName
Country on matches and highlights countryCode and countryName Not available
A team on matches homeTeamId, homeTeamName Those plus homeTeamAbbreviation and homeTeamDisplayName
A team on the teams list name, plus type on /football/teams name, abbreviation, displayName, league

/countries, /countries/{countryCode}, /leagues and /leagues/{id} exist on the country and league prefixes only.

Standings

To filter by Country and league Single league
Season season, required year, optional
Competition leagueId, required leagueName, abbreviation and leagueType, optional
Paging parameters None limit and offset

/football/standings requires leagueId and season. Every parameter on /nba/standings is optional.

Cricket

Cricket follows the country and league convention and adds filters of its own. /cricket/teams takes abbreviation, /cricket/matches and /cricket/highlights take homeTeamAbbreviation and awayTeamAbbreviation, and /cricket/players takes teamId.

Paging

limit and offset are accepted on the endpoints that paginate, and which those are depends on the prefix. Both are set out in Pagination and limits.

Writing a client for several sports

Keep a small map from prefix to convention and build the query string from that map. The alternative is to integrate one sport at a time and treat each as its own client, which costs more code.

Build the query string from the prefix you are calling, not from the filters you used on the last one. Each sport's own documentation sets out the response shape for its endpoints.