sportsapi.dev Get an API key

Endpoints

Six GET endpoints. Lookups give you IDs, and /sports-tv/matches uses them as filters.

Base URL:

GET/sports-tv/matches

Matches

The main endpoint. Returns matches with the channels that broadcast them. Without parameters it returns all of today's matches. All filters can be combined.

ParameterTypeDescription
datestringFirst day, YYYY-MM-DD. Default: today in timezone.
daysintegerNumber of days from date, 1 to 8. Default 1.
timezonestringIANA timezone for day boundaries and returned times. Default Europe/Istanbul.
sportstringSport code, such as football. See sports.
countrystringLeague country, such as England or Europe.
leagueIDintegerOnly this league. See leagues.
teamIDintegerMatches where this team plays home or away. See teams.
channelIDintegerMatches on this channel. See channels.
channelCountrystringMatches broadcast in this country; channel lists contain only that country.
statusstringscheduled, live or finished.
detailsIDintegerReturn one match by its matchID. Other filters are ignored.
langstringen or tr for team names.
pageintegerPage number, default 1.
perPageintegerItems per page, default 50, maximum 100.

Request

Response item

{
  "matchID": 1234,
  "startUtc": "2026-11-08T15:00:00Z",
  "date": "2026-11-08",
  "time": "15:00",
  "timezone": "Europe/London",
  "status": "scheduled",
  "homeScore": null,
  "awayScore": null,
  "sport": "football",
  "league":   { "leagueID": 31, "sport": "football", "country": "England", "name": "Premier League", "logo": null },
  "homeTeam": { "teamID": 412, "name": "Arsenal", "nameEn": "Arsenal", "nameTr": null, "logo": null },
  "awayTeam": { "teamID": 418, "name": "Chelsea", "nameEn": "Chelsea", "nameTr": null, "logo": null },
  "channels": [
    { "channelID": 77, "name": "Sky Sports Main Event", "country": "GBR", "url": null },
    { "channelID": 78, "name": "Sky Sports Premier League", "country": "GBR", "url": null }
  ]
}
GET/sports-tv/sports

Sports

Lists the sports with their league and match counts. The sport value is the code to pass to other endpoints.

ParameterTypeDescription
langstringen or tr for the sport name.

Request

Response item

[
  { "sport": "football", "name": "Football", "leagueCount": 229, "matchCount": 934 },
  { "sport": "basketball", "name": "Basketball", "leagueCount": 61, "matchCount": 288 }
]
GET/sports-tv/leagues

Leagues

Lists leagues and tournaments. Use the returned leagueID on matches.

ParameterTypeDescription
sportstringSport code.
countrystringLeague country, such as Spain.
searchstringPart of the league name, at least 2 characters.
pageintegerPage number, default 1.
perPageintegerItems per page, default 50, maximum 100.

Request

Response item

{ "leagueID": 31, "sport": "football", "country": "England", "name": "Premier League", "logo": null, "matchCount": 10 }
GET/sports-tv/teams

Teams

Searches teams, players and fighters by English or Turkish name. A club's football and basketball teams are separate records.

ParameterTypeDescription
searchstringRequired. At least 2 characters.
langstringen or tr for name.
pageintegerPage number, default 1.
perPageintegerItems per page, default 50, maximum 100.

Request

Response item

{ "teamID": 412, "name": "Arsenal", "nameEn": "Arsenal", "nameTr": null, "logo": null }
GET/sports-tv/channels

Channels

Lists TV channels and streaming platforms. Use the returned channelID on matches to build a channel's schedule.

ParameterTypeDescription
countrystringChannel country code, such as USA.
searchstringPart of the channel name, at least 2 characters.
pageintegerPage number, default 1.
perPageintegerItems per page, default 50, maximum 100.

Request

Response item

{ "channelID": 77, "name": "Sky Sports Main Event", "country": "GBR", "url": null, "matchCount": 12 }
GET/sports-tv/channel-countries

Channel countries

Lists every broadcast country code with its number of channels, ready for a country picker.

No parameters.

Request

Response item

[
  { "country": "GBR", "channelCount": 48 },
  { "country": "USA", "channelCount": 61 }
]