---
id: api-countries
title: Метод `countries` — список стран
description: Описание метода countries для получения списка стран, доступных для выбранного вида спорта.
version: v1
language: ru
---

# Метод `countries` — список стран


## Рекомендация: обычно лучше использовать `menu`

Метод `countries` возвращает страны только для одного выбранного вида спорта. Эти же
страны уже находятся внутри ответа метода [`menu`](../menu.md).

Для обычной интеграции рекомендуется использовать `menu`, потому что за один запрос он
возвращает всю структуру:

```text
вид спорта → страна → турнир
```

При пошаговой загрузке потребуются отдельные запросы:

```text
1. sports → получить sportId
2. countries → получить countryId
3. tournaments → получить tournamentId
4. events → получить матчи турнира
```

Метод `countries` является дополнительным. Используйте его, если страна должна
загружаться только после выбора вида спорта или полный ответ `menu` проекту не нужен.
Если после стран всё равно потребуются турниры, удобнее получить всю структуру через
`menu`.

## Запрос

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

API-ключ необходимо передавать в HTTP-заголовке:

```http
Package: YOUR_API_KEY
```

### Параметры пути

| Параметр | Тип | Обязательный | Описание |
|---|---|---:|---|
| `sportId` | number | да | ID вида спорта, полученный из `sports` или `menu` |
| `type` | string | да | Тип спортивной линии: `live` или `line` |
| `lang` | string | да | Язык названий. Язык должен поддерживаться API и входить в тариф клиента |

Значения параметра `type`:

| Значение | Какие данные возвращаются |
|---|---|
| `live` | Страны, в которых доступны Live-матчи выбранного вида спорта |
| `line` | Страны, в которых доступны Prematch-матчи выбранного вида спорта |

## Пример запроса Live

В примере используется футбол с `sportId=1`:

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/countries/1/live/ru' \
  --header 'Package: YOUR_API_KEY'
```

## Пример запроса Prematch

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/countries/1/line/ru' \
  --header 'Package: YOUR_API_KEY'
```

## Сокращённый пример ответа Live

Ниже показан фрагмент реального ответа для футбола. Значения сохранены без изменений,
но массив `body` сокращён до трёх стран.

```json
{
  "status": 1,
  "page": "/v1/countries",
  "body": [
    {
      "id": 1,
      "name": "Россия",
      "sport_id": 1,
      "counter": 1
    },
    {
      "id": 2,
      "name": "Украина",
      "sport_id": 1,
      "counter": 3
    },
    {
      "id": 4,
      "name": "Австралия",
      "sport_id": 1,
      "counter": 8
    }
  ]
}
```

## Сокращённый пример ответа Prematch

Этот фрагмент также взят из реального ответа для футбола. Массив `body` сокращён.

```json
{
  "status": 1,
  "page": "/v1/countries",
  "body": [
    {
      "id": 1,
      "name": "Россия",
      "sport_id": 1,
      "counter": 86
    },
    {
      "id": 2,
      "name": "Украина",
      "sport_id": 1,
      "counter": 16
    },
    {
      "id": 4,
      "name": "Австралия",
      "sport_id": 1,
      "counter": 104
    }
  ]
}
```

Значения `counter` показывают состояние линии только в момент получения ответа и
постоянно изменяются.

## Поля ответа

### Верхний уровень

| Поле | Тип | Описание |
|---|---|---|
| `status` | number | Статус выполнения запроса. В успешном ответе возвращается `1` |
| `page` | string | Название метода. Для `countries` возвращается `/v1/countries` |
| `body` | array | Массив доступных стран выбранного вида спорта |

### Объект страны

| Поле | Тип | Описание |
|---|---|---|
| `id` | number | ID страны. Используется как `countryId` в других методах |
| `name` | string | Название страны на языке, указанном в `lang` |
| `sport_id` | number | ID вида спорта, для которого была возвращена страна |
| `counter` | number | Количество доступных матчей выбранного спорта в этой стране |

Обратите внимание: параметр пути называется `sportId`, а соответствующее поле в JSON —
`sport_id`.

## Готовые иконки стран

Для каждой страны можно использовать стандартную иконку SportAPI. Возьмите значение
поля `id` из ответа и подставьте его вместо `{countryId}`:

```text
https://cdn.sportapi.net/flags/v1/color/{countryId}.webp
```

Например, для страны с `id: 218`:

[https://cdn.sportapi.net/flags/v1/color/218.webp](https://cdn.sportapi.net/flags/v1/color/218.webp)

## Связь с методом `menu`

Объекты из массива `body` метода `countries` содержат те же основные данные, что и
объекты стран внутри `menu` для выбранного вида спорта.

| Поле | `countries` | `menu` |
|---|---:|---:|
| `id` | да | да |
| `name` | да | да |
| `sport_id` | да | да |
| `counter` | да | да |
| `sub` с турнирами | нет | да |

Если вызвать методы в разное время, состав стран и значения `counter` могут отличаться,
поскольку спортивная линия постоянно изменяется.

## Что делать с полученным `id`

После выбора страны возьмите её поле `id`. В URL следующего метода этот идентификатор
обозначается как `countryId`.

Чтобы получить турниры выбранной страны, передайте одновременно:

- `sportId` выбранного вида спорта;
- `countryId` выбранной страны;
- тот же тип линии `live` или `line`.

При использовании `menu` турниры уже находятся в массиве `sub` выбранной страны, поэтому
дополнительный запрос не требуется.

Не передавайте заранее записанный `countryId`, не проверив, что страна присутствует в
актуальном ответе `countries` или `menu`. Страна возвращается только пока в ней есть
доступные матчи выбранного вида спорта и типа линии.

Если закончился или исчез единственный матч последнего турнира страны, страна также
исчезнет из следующего ответа. При пошаговой навигации передавайте в `tournaments` только
`countryId`, полученный из актуального ответа `countries`.

## Снимок сохранённых ответов

Во всех примерах использован футбол (`sportId=1`).

| Тип линии | Русский ответ | Английский ответ |
|---|---:|---:|
| Live | 15 стран | 15 стран |
| Prematch (`line`) | 99 стран | 99 стран |

Это статистика конкретных ответов от 21 августа 2026 года, а не постоянный состав API.

Полные ответы без сокращений:

- [Live, русский язык](../../examples/json-responses/countries.sport-1.live.ru.json)
- [Prematch, русский язык](../../examples/json-responses/countries.sport-1.line.ru.json)
- [Live, английский язык](../../examples/json-responses/countries.sport-1.live.en.json)
- [Prematch, английский язык](../../examples/json-responses/countries.sport-1.line.en.json)

Файлы содержат только тело ответа API. API-ключ в них не сохраняется.

## Частота обновления

Рекомендуется запрашивать `countries`:

- Live — не чаще одного раза в 60 секунд;
- Prematch (`line`) — не чаще одного раза в 120 секунд.

Подробнее: [«Рекомендации по обновлению данных»](../../getting-started/update-guidelines.md).

Ошибки ключа, тарифа и параметров описаны в документе
[«Обработка ошибок»](../../getting-started/error-handling.md).
