---
id: api-countries
title: countries Method — Country List
description: Reference for the COUNTRIES method, which returns countries available for a selected sport.
version: v1
language: en
---

# `countries` Method — Country List

## Recommendation: Use `menu` in Most Cases

The `countries` method returns countries for only one selected sport. The same countries
are already available inside the [`menu`](../menu.md) response.

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

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

Step-by-step loading requires separate requests:

```text
1. sports → retrieve sportId
2. countries → retrieve countryId
3. tournaments → retrieve tournamentId
4. events → retrieve tournament matches
```

The `countries` method is an additional method. Use it when countries should be loaded
only after a sport is selected or the project does not need the complete `menu`
response. If tournaments will still be required after countries, retrieving the full
hierarchy through `menu` is more convenient.

## Request

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

Send the API key in the HTTP header:

```http
Package: YOUR_API_KEY
```

### Path Parameters

| Parameter | Type | Required | Description |
|---|---|---:|---|
| `sportId` | number | yes | Sport ID obtained from `sports` or `menu` |
| `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` | Countries with available Live matches for the selected sport |
| `line` | Countries with available Prematch matches for the selected sport |

## Live Request Example

This example uses football with `sportId=1`:

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

## Prematch Request Example

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

## Shortened Live Response Example

The following excerpt comes from a real English football response. The values are
unchanged, but the `body` array has been shortened to three countries.

```json
{
  "status": 1,
  "page": "/v1/countries",
  "body": [
    {
      "id": 4,
      "name": "Australia",
      "sport_id": 1,
      "counter": 8
    },
    {
      "id": 218,
      "name": "Japan",
      "sport_id": 1,
      "counter": 2
    },
    {
      "id": 225,
      "name": "World",
      "sport_id": 1,
      "counter": 24
    }
  ]
}
```

## Shortened Prematch Response Example

This excerpt also comes from a real English football response. The `body` array has been
shortened.

```json
{
  "status": 1,
  "page": "/v1/countries",
  "body": [
    {
      "id": 4,
      "name": "Australia",
      "sport_id": 1,
      "counter": 104
    },
    {
      "id": 218,
      "name": "Japan",
      "sport_id": 1,
      "counter": 30
    },
    {
      "id": 225,
      "name": "World",
      "sport_id": 1,
      "counter": 68
    }
  ]
}
```

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. `countries` returns `/v1/countries` |
| `body` | array | Available countries for the selected sport |

### Country Object

| Field | Type | Description |
|---|---|---|
| `id` | number | Country ID. Used as `countryId` in other methods |
| `name` | string | Country name in the language specified by `lang` |
| `sport_id` | number | ID of the sport for which the country was returned |
| `counter` | number | Number of available matches for the selected sport in this country |

Note that the path parameter is named `sportId`, while the corresponding JSON field is
named `sport_id`.

## Ready-to-use Country Icons

Each country can use a standard SportAPI icon. Take the `id` value from the response and
insert it in place of `{countryId}`:

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

Example for a country with `id: 218`:

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

## Relationship with `menu`

Objects in the `countries` method's `body` array contain the same main data as country
objects inside `menu` for the selected sport.

| Field | `countries` | `menu` |
|---|---:|---:|
| `id` | yes | yes |
| `name` | yes | yes |
| `sport_id` | yes | yes |
| `counter` | yes | yes |
| `sub` with tournaments | no | yes |

If the methods are called at different times, the country list and `counter` values may
differ because the sports line changes continuously.

## Using the Returned `id`

After selecting a country, take its `id` field. This identifier is named `countryId` in
the next method's URL.

To retrieve tournaments for the selected country, pass all of the following:

- the selected sport's `sportId`;
- the selected country's `countryId`;
- the same `live` or `line` type.

When using `menu`, the tournaments are already available in the selected country's
`sub` array, so no additional request is required.

Do not pass a stored `countryId` without checking that the country is present in the
current `countries` or `menu` response. A country is returned only while it contains
available matches for the selected sport and line type.

If the only match in the country's last tournament ends or disappears, the country will
also be absent from the next response. In step-by-step navigation, pass to `tournaments`
only a `countryId` obtained from the current `countries` response.

## Snapshot of Saved Responses

All examples use football (`sportId=1`).

| Line type | Russian response | English response |
|---|---:|---:|
| Live | 15 countries | 15 countries |
| Prematch (`line`) | 99 countries | 99 countries |

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/countries.sport-1.live.ru.json)
- [Prematch, Russian](../../examples/json-responses/countries.sport-1.line.ru.json)
- [Live, English](../../examples/json-responses/countries.sport-1.live.en.json)
- [Prematch, English](../../examples/json-responses/countries.sport-1.line.en.json)

The files contain only API response bodies. No API key is stored in them.

## Update Frequency

Recommended request frequency for `countries`:

- 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).
