API-SPORT.ru — Developer Portal
Документация REST + WebSocket API для получения спортивных данных в реальном времени.
Что предоставляет API
- 7 видов спорта: футбол, хоккей с шайбой, баскетбол, теннис, настольный теннис, волейбол, киберспорт (CS2, Dota 2, League of Legends).
- 15 REST-эндпоинтов с единой структурой
/v2/{sportSlug}/...: список матчей, детали матча, события матча, турниры по дате, календарь за месяц, игроки, команды, поиск, турниры, сезоны, категории. - WebSocket-канал (
wss://ws.api.api-sport.ru) для подписки на live-обновления:match_snapshotс полной структурой матча +match_deltaс инкрементальнымиadded/updated/flatChanges. - Букмекерские коэффициенты: базовые рынки (
oddsBase— 1×2, тоталы, гандикапы) и расширенные (oddsBk— Melbet, поwith_bk_odds=true). - Полнотекстовый мультиязычный поиск (EN + RU) по игрокам, командам, турнирам через
/searchи через параметрqв списках. - Переводы ~99 % имён игроков, команд, турниров, сезонов, мест проведения на русский язык — в поле
translations.ru/translation.ru.
Как читать документацию
Документация поделена на пять смысловых разделов — выбирайте, что подходит сейчас:
- Начало работы — регистрация, API-ключ,
Authorizationheader, первый запрос за 60 секунд, лимиты тарифа. - Концепции — общая структура
Match, пагинация / streaming, поиск, букмекерские коэффициенты, классификатор видов спорта. - Особенности по видам спорта — что специфично для football, tennis, esports и др.:
Match.tennis,Match.esports, structure of Score,referee,liveEvents, наборы ключей вmatchStatistics. - WebSocket — подключение, авторизация в query, подписки на
sport:{slug}иmatch:{slug}:{id}, форматmatch_snapshot/match_delta, коды ошибок. - API Reference — автоматически сгенерированная справка по 15 REST-эндпоинтам. Параметры, схемы, примеры ответов, кнопка Try It Out. Спорт выбирается через path-параметр
sportSlug(dropdown из 7 значений) — в 14 из 15 эндпоинтов; у/v2/sportпараметров нет. - Recipes — готовые сценарии: live-feed, календарь за месяц, мультиязычный поиск, esports-tracker.
- Changelog — что менялось от версии 2.0.0 до текущей 2.0.8.
Общая структура запроса
curl -H "Authorization: YOUR_API_KEY" \
"https://api.api-sport.ru/v2/football/matches?date=2026-05-28&exclude_amateur=true"
- Базовый URL —
https://api.api-sport.ru. - API-ключ — в HTTP-заголовке
Authorization, без префиксов (Bearer/Token). - Все REST-пути scoped под
/v2/{sportSlug}/, гдеsportSlug— один изfootball,ice-hockey,basketball,tennis,table-tennis,volleyball,esports. - WebSocket — отдельная авторизация через query:
wss://ws.api.api-sport.ru?apiKey=YOUR_API_KEY.
Архитектура: одинаковые пути, разные тела ответа
REST-эндпоинты идентичны по форме (/v2/{sportSlug}/matches, /v2/{sportSlug}/matches/{matchId} и т. д.) для всех 7 видов спорта. Однако тело ответа меняется по виду спорта:
- Базовые поля Match (
id,status,homeTeam,awayTeam,homeScore,awayScore,tournament,season,category) — общие для всех. Match.tennis(TennisData) — присутствует только в Tennis API. Содержит сеты, тайбрейки, momentum, point-by-point (детали в Sport-specific → Tennis).Match.esports(EsportsData) — присутствует только в Esports API. CS2/Dota 2/LoL — разная структураEsportsGame(детали в Sport-specific → Esports).Match.referee— заполняется в football. Для остальных видов поле обычно пустое.Score.point+periodNTieBreak— только в теннисе.matchStatistics— список групп и ключей различается по виду спорта.
Эти расхождения собраны в разделе Особенности по видам спорта — там расписано, какие поля появляются / отсутствуют / меняют смысл для каждого спорта. В API Reference все поля показаны разом, без скрытия по sportSlug, чтобы можно было видеть полную поверхность ответа.
Поддержка
- Telegram: https://t.me/apisportbot
- Telegram канал: https://t.me/apisportru
- Документация: docs.api-sport.ru