---
id: api-sports
title: sports Method — Sport List
description: Reference for the SPORTS method, which returns a concise list of available sports.
version: v1
language: en
---

# `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`](../menu.md) response.

For a standard integration, `menu` is recommended because one request returns the
complete hierarchy:

```text
sport → country → tournament
```

With separate methods, the same hierarchy must be retrieved step by step:

```text
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

```http
GET https://YOUR_API_DOMAIN/v1/sports/{type}/{lang}
```

Send the API key in the HTTP header:

```http
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:

```http
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

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/sports/live/en' \
  --header 'Package: YOUR_API_KEY'
```

## Prematch Request Example

```bash
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.

```json
{
  "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.

```json
{
  "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}`:

```text
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](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:

- [Live, Russian](../../examples/json-responses/sports.live.ru.json)
- [Prematch, Russian](../../examples/json-responses/sports.line.ru.json)
- [Live, English](../../examples/json-responses/sports.live.en.json)
- [Prematch, English](../../examples/json-responses/sports.line.en.json)

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](../../getting-started/update-guidelines.md) for more details.

Key, subscription, and parameter errors are documented in
[Error Handling](../../getting-started/error-handling.md).
