SportAPI Documentation
EN
S Product documentationSport Line API
v1
Service & pricing ↗ Get access ↗
Sport Line API / SPORTS — sport list

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

ParameterTypeRequiredDescription
typestringyesSports line type: live or line
langstringyesLanguage of names. It must be supported by the API and included in the client’s subscription

Values of type:

ValueData returned
liveSports that currently have available Live matches
lineSports that have upcoming Prematch matches

Optional Query Parameter

ParameterTypeDefaultDescription
cybersportbooleanfalseSwitches 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

FieldTypeDescription
statusnumberRequest status. A successful response returns 1
pagestringMethod name. sports returns /v1/sports
bodyarrayArray of available sports

Sport Object

FieldTypeDescription
idnumberSport ID. Used as sportId in other methods
namestringSport name in the language specified by lang
counternumberNumber 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:

Fieldsportsmenu
idyesyes
nameyesyes
counteryesyes
sub with countries and tournamentsnoyes

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 typeRussian responseEnglish response
Live22 sports22 sports
Prematch (line)32 sports32 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.