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

# Метод `search` — поиск матчей


## Для чего нужен метод

Метод `search` ищет матчи по названию команды или участника.

Поиск выполняется отдельно для Live и Prematch. Результат может содержать матчи разных
видов спорта, доступных API-ключу клиента.

Метод возвращает краткие карточки найденных матчей без коэффициентов. Чтобы получить
полные данные и коэффициенты выбранного матча, используйте метод [`event`](event.md) по
полю `game_id`.

## Запрос

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

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

```http
Package: YOUR_API_KEY
```

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

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

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

| Значение | Где выполняется поиск |
|---|---|
| `live` | Среди матчей, проходящих в реальном времени |
| `line` | Среди предстоящих Prematch-матчей |

Live и Prematch нужно искать отдельно. Один запрос не выполняет поиск сразу в двух типах
линии.

## Язык поискового текста

Для получения подходящих результатов рекомендуется вводить название на языке параметра
`lang`:

| `lang` | Пример текста |
|---|---|
| `ru` | `Манчестер`, `Перт` |
| `en` | `Manchester`, `Perth` |

Поиск поддерживает часть названия. Например, запрос `Манчестер` может вернуть матчи
«Манчестер Сити», «Манчестер Юнайтед» и других участников, содержащих эту строку.

Состав и порядок совпадений определяются SportAPI. В методе нет параметров для выбора
вида спорта, страны, турнира, количества результатов или страницы.

## URL-кодирование текста

Значение `text` является частью URL, поэтому пробелы, кириллицу и специальные символы
нужно кодировать.

Например, текст:

```text
Манчестер Сити
```

после кодирования:

```text
%D0%9C%D0%B0%D0%BD%D1%87%D0%B5%D1%81%D1%82%D0%B5%D1%80%20%D0%A1%D0%B8%D1%82%D0%B8
```

В JavaScript для этого можно использовать `encodeURIComponent()`:

```js
const text = encodeURIComponent('Манчестер Сити');
const url = `https://YOUR_API_DOMAIN/v1/search/line/ru/${text}`;
```

Не добавляйте необработанный пользовательский текст в URL.

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

Поиск матчей по слову `Перт`:

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/search/live/ru/%D0%9F%D0%B5%D1%80%D1%82' \
  --header 'Package: YOUR_API_KEY'
```

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

Поиск матчей по слову `Манчестер`:

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/search/line/ru/%D0%9C%D0%B0%D0%BD%D1%87%D0%B5%D1%81%D1%82%D0%B5%D1%80' \
  --header 'Package: YOUR_API_KEY'
```

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

Ниже показан один матч из реального результата поиска по слову `Перт`:

```json
{
  "status": 1,
  "page": "/v1/search",
  "body": [
    {
      "sgame_id": "69a6e9d05e99bd05c6f13963",
      "stat_id": "699986ec5e99bd05c6ea5357",
      "game_id": 746266480,
      "game_mid": 746266480,
      "game_start": 1787382000,
      "tournament_id": 980455,
      "tournament_name": "Чемпионат Австралии. Премьер-лига Западной Австралии",
      "opp_1_name": "Армадейл",
      "opp_2_name": "Перт РедСтар",
      "opp_1_icon": "398cfbf18abf67a8a1a27bbe2fc0b250.png",
      "opp_2_icon": "1c1a28702cd883376ed2516e4b123de6.png",
      "sport_id": 1,
      "sport_name": "Футбол",
      "score_full": "0:3",
      "period_name": "2-й тайм",
      "timer": 4502,
      "country_id": 4,
      "country_name": "Австралия"
    }
  ]
}
```

Значения счёта, таймера и состава спортивной линии со временем изменятся.

## Структура ответа

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

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

Результаты не группируются по видам спорта, странам или турнирам.

### Поля найденного матча

| Поле | Тип | Описание |
|---|---|---|
| `sgame_id` | string | Зарезервированное тестовое поле. Пока не используется в API |
| `stat_id` | string | Зарезервированное тестовое поле. Пока не используется в API |
| `game_id` | number | ID матча для запроса подробного метода `event` |
| `game_mid` | number или `null` | ID основного матча |
| `game_start` | number | Время начала в формате Unix Timestamp, в секундах |
| `tournament_id` | number | ID турнира |
| `tournament_name` | string | Название турнира на выбранном языке |
| `opp_1_name` | string | Первая команда или участник |
| `opp_2_name` | string | Вторая команда или участник |
| `opp_1_icon` | string | Имя файла иконки первой команды или участника |
| `opp_2_icon` | string | Имя файла иконки второй команды или участника |
| `sport_id` | number | ID вида спорта |
| `sport_name` | string | Название вида спорта на выбранном языке |
| `score_full` | string | Текущий счёт. В Prematch обычно возвращается `0:0` |
| `period_name` | string | Текущий период Live-матча. В Prematch возвращается пустая строка |
| `timer` | number | Таймер Live-матча в секундах. Для получения минут разделите на `60`. В Prematch обычно возвращается `0` |
| `country_id` | number | ID страны |
| `country_name` | string | Название страны на выбранном языке |

В ответе поиска нет `game_oc_list`, `stat_list`, `sub_games`, `event_plan`, `va`, `vi` и
`zp`. Эти данные нужно получать через другие методы по `game_id`.

Полное описание общих полей находится в
[«Едином справочнике полей Sport Line API»](../data-models/field-reference.md).

## Иконки

Иконка вида спорта формируется по `sport_id`:

```text
https://cdn.sportapi.net/sports/v1/color/{sport_id}.webp
```

Иконка страны формируется по `country_id`:

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

Иконка турнира формируется по `tournament_id`:

```text
https://cdn.sportapi.net/tournaments/v1/color/{tournament_id}.webp
```

Для иконки команды удалите расширение из `opp_1_icon` или `opp_2_icon` и подставьте
оставшееся имя в URL:

```text
https://cdn.sportapi.net/opp/v1/color/{iconName}.webp
```

## Если ничего не найдено

Отсутствие совпадений не является ошибкой. API возвращает успешный ответ с пустым
массивом `body`:

```json
{
  "status": 1,
  "page": "/v1/search",
  "body": []
}
```

В интерфейсе такой ответ нужно показывать как «Матчи не найдены».

## Ограничения тарифа

Результат содержит только матчи тех видов спорта и языков, которые доступны API-ключу
клиента. Один запрос может вернуть совпадения из нескольких доступных видов спорта.

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

Для проверки Live использовался запрос `Перт`/`Perth`, а для Prematch —
`Манчестер`/`Manchester`.

| Тип линии | Поисковый текст | Результатов в сохранённом русском ответе |
|---|---|---:|
| Live | `Перт` | 10 |
| Prematch (`line`) | `Манчестер` | 17 |

Количество результатов относится только к снимкам от 22 августа 2026 года и не является
постоянным ограничением метода.

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

- [Live, русский язык, запрос «Перт»](../examples/json-responses/search.query-perth.live.ru.json)
- [Live, английский язык, запрос «Perth»](../examples/json-responses/search.query-perth.live.en.json)
- [Prematch, русский язык, запрос «Манчестер»](../examples/json-responses/search.query-manchester.line.ru.json)
- [Prematch, английский язык, запрос «Manchester»](../examples/json-responses/search.query-manchester.line.en.json)

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

## Когда выполнять запрос

`search` предназначен для поиска по действию пользователя. Для него не требуется
постоянный фоновый цикл обновления. Новый запрос выполняется после ввода или изменения
поискового текста.

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