sports Method — Sport List
Recommendation: Use menu in Most Cases
The sports method returns only the available sports. The same data is already present
at the top level of the menu response.
For a standard integration, menu is recommended because one request returns the
complete hierarchy:
sport → country → tournament
With separate methods, the same hierarchy must be retrieved step by step:
1. sports → retrieve sports
2. countries → select a country for the required sport
3. tournaments → retrieve tournaments for the selected country
4. events → retrieve matches for the selected tournament
This means that retrieving matches for a selected tournament requires three navigation
requests instead of one menu request.
The sports, countries, and tournaments methods are additional methods. Use them
when the project specifically needs incremental data loading or only one level of the
sports hierarchy. Do not automatically use them instead of menu.
When the Separate sports Method Is Useful
Use this method when you need to:
- retrieve only a short sport list;
- load countries and tournaments later, after a user action;
- implement an interface that loads navigation levels step by step;
- perform a separate task that does not require countries or tournaments.
If countries and tournaments are still required after retrieving the sport list, use
menu instead.
Request
GET https://YOUR_API_DOMAIN/v1/sports/{type}/{lang}
Send the API key in the HTTP header:
Package: YOUR_API_KEY
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | yes | Sports line type: live or line |
lang | string | yes | Language of names. It must be supported by the API and included in the client’s subscription |
Values of type:
| Value | Data returned |
|---|---|
live | Sports that currently have available Live matches |
line | Sports that have upcoming Prematch matches |
Optional Query Parameter
| Parameter | Type | Default | Description |
|---|---|---|---|
cybersport | boolean | false | Switches the method to the esports list |
Example request for esports data:
GET https://YOUR_API_DOMAIN/v1/sports/live/en?cybersport=true
The full responses stored with this documentation were retrieved without query
parameters, which means cybersport=false.
Live Request Example
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/sports/live/en' \
--header 'Package: YOUR_API_KEY'
Prematch Request Example
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/sports/line/en' \
--header 'Package: YOUR_API_KEY'
Shortened Live Response Example
The following excerpt comes from a real English response. The values are unchanged,
but the body array has been shortened to three sports.
{
"status": 1,
"page": "/v1/sports",
"body": [
{
"id": 1,
"name": "Football",
"counter": 48
},
{
"id": 2,
"name": "Ice Hockey",
"counter": 16
},
{
"id": 3,
"name": "Basketball",
"counter": 22
}
]
}
Shortened Prematch Response Example
This excerpt also comes from a real English response. The body array has been
shortened.
{
"status": 1,
"page": "/v1/sports",
"body": [
{
"id": 1,
"name": "Football",
"counter": 2568
},
{
"id": 2,
"name": "Ice Hockey",
"counter": 168
},
{
"id": 3,
"name": "Basketball",
"counter": 103
}
]
}
The counter values represent the sports line only at the time of the response and
change continuously.
Response Fields
Top-level Fields
| Field | Type | Description |
|---|---|---|
status | number | Request status. A successful response returns 1 |
page | string | Method name. sports returns /v1/sports |
body | array | Array of available sports |
Sport Object
| Field | Type | Description |
|---|---|---|
id | number | Sport ID. Used as sportId in other methods |
name | string | Sport name in the language specified by lang |
counter | number | Number of available matches for this sport |
Ready-to-use Sport Icons
Each sport can use a standard SportAPI icon. Take the id value from the response and
insert it in place of {sportId}:
https://cdn.sportapi.net/sports/v1/color/{sportId}.webp
Example for a sport with id: 1:
https://cdn.sportapi.net/sports/v1/color/1.webp
Relationship with menu
Objects in the sports method’s body array have the same fields as sport objects at
the top level of the menu response:
| Field | sports | menu |
|---|---|---|
id | yes | yes |
name | yes | yes |
counter | yes | yes |
sub with countries and tournaments | no | yes |
The list and counters represent the sports line at the time of the request. If you call
sports and menu at different times, the counter values and available sport list
may already differ.
Using the Returned id
After selecting a sport, take its id field. This identifier is named sportId in
subsequent URLs.
In the step-by-step flow, pass it to countries to retrieve the countries of the
selected sport. Next, call tournaments, and only after selecting a tournament request
its matches through events.
When using menu, sport, country, and tournament identifiers are already available in
one response.
Do not use a stored sportId without checking the current sports or menu response.
The method returns only sports that currently have available matches. If the only match
for a sport ends or disappears, that sport will be absent from the next response for
the corresponding live or line type.
In step-by-step navigation, pass to countries only a sportId obtained from the
current sports response.
Snapshot of Saved Responses
| Line type | Russian response | English response |
|---|---|---|
| Live | 22 sports | 22 sports |
Prematch (line) | 32 sports | 32 sports |
These figures describe specific responses retrieved on August 21, 2026. They are not a permanent description of the API.
Full unabridged responses:
The files contain only API response bodies. No API key is stored in them.
Update Frequency
Recommended request frequency for sports:
- Live — no more than once every 60 seconds;
- Prematch (
line) — no more than once every 120 seconds.
See Data Update Guidelines for more details.
Key, subscription, and parameter errors are documented in Error Handling.