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

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.

Как читать документацию

Документация поделена на пять смысловых разделов — выбирайте, что подходит сейчас:

  1. Начало работы — регистрация, API-ключ, Authorization header, первый запрос за 60 секунд, лимиты тарифа.
  2. Концепции — общая структура Match, пагинация / streaming, поиск, букмекерские коэффициенты, классификатор видов спорта.
  3. Особенности по видам спорта — что специфично для football, tennis, esports и др.: Match.tennis, Match.esports, structure of Score, referee, liveEvents, наборы ключей в matchStatistics.
  4. WebSocket — подключение, авторизация в query, подписки на sport:{slug} и match:{slug}:{id}, формат match_snapshot / match_delta, коды ошибок.
  5. API Reference — автоматически сгенерированная справка по 15 REST-эндпоинтам. Параметры, схемы, примеры ответов, кнопка Try It Out. Спорт выбирается через path-параметр sportSlug (dropdown из 7 значений) — в 14 из 15 эндпоинтов; у /v2/sport параметров нет.
  6. Recipes — готовые сценарии: live-feed, календарь за месяц, мультиязычный поиск, esports-tracker.
  7. 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, чтобы можно было видеть полную поверхность ответа.

Поддержка