Перейти к основному содержимому

Pagination и фильтры списков

Эндпоинт GET /v2/{sportSlug}/matches имеет два режима ответа: streaming (по умолчанию) и paginated (если передан хотя бы один из page / page_size).

Streaming режим (по умолчанию)

Если page и page_size не переданы — сервер отдаёт матчи потоком с ограничением в 6000 матчей, поэтому рекомендуется использовать постраничный запрос.

curl -H "Authorization: YOUR_KEY" \
"https://api.api-sport.ru/v2/football/matches?date=2026-05-28&status=inprogress"
{
"matches": [ /* ... */ ],
"totalMatches": 134
}

totalMatches равно фактическому числу матчей в ответе (а не общему числу подходящих под фильтр в БД).

Paginated режим

Передайте page и/или page_size — сервер ответит постраничным режимом с totalPages.

ПараметрДиапазонПо умолчанию
page1–1001
page_size1–500500
curl -H "Authorization: YOUR_KEY" \
"https://api.api-sport.ru/v2/football/matches?page=2&page_size=50"
{
"matches": [ /* ровно page_size элементов или меньше на последней странице */ ],
"page": 2,
"pageSize": 50,
"totalPages": 27
}

Запрос по списку ID

Альтернатива пагинации — ids с CSV-списком до 100 ID за один запрос:

curl -H "Authorization: YOUR_KEY" \
"https://api.api-sport.ru/v2/football/matches?ids=12345,12346,12347"

При превышении 100 ID — 400 Bad Request с сообщением Too many IDs requested. Maximum 100 IDs allowed.

Доступные фильтры

ПараметрПрименимо кОписание
date=YYYY-MM-DD/matchesМатчи на эту дату (UTC bounds).
status=.../matchesОдин из notstarted, inprogress, finished, canceled, postponed, interrupted, suspended, delayed, willcontinue. Одно значение, не CSV.
tournament_id=1,2,3/matches, /calendar, /tournamentsФильтр по турнирам.
season_id=.../matches, /calendarОдин сезон.
category_ids=1,2,3/matches, /calendarКатегории (страны/регионы).
team_id=.../matches, /calendarМатчи с участием команды.
exclude_amateur=true/matches, /calendarСкрыть amateur/editor матчи.
has_bk_odds=true/matchesТолько матчи с букмекерскими коэффициентами.
with_bk_odds=true/matches, /matches/{id}Включить рынки oddsBk в ответ.
bookmaker_ids=melbet/matches, /matches/{id}Фильтр по букмекерам в oddsBk.

Search-эндпоинт

/v2/{sportSlug}/search использует свою пагинацию: limit (1–50, default 20) + offset (0–500, default 0). См. Search.

Tips

  • Рекомендуется использовать постраничный запрос матчей — запросы без page= ограничены количеством матчей (можете пропустить какие-то матчи).
  • Используйте ids= когда у вас уже есть набор matchId — это дешевле, чем page-by-page обход.
  • Кэшируйте finished/canceled матчи — они не меняются.