NKBets · API Документация

Лёгкий REST API для прематча, лайва и пост-матча: лиги, команды, события, составы, статистика и прогнозы.

Версия: v1 Формат: JSON Аутентификация: Token

Быстрый старт

Базовый URL
/api/
Заголовок авторизации
Authorization: Token <ваш_ключ>
Пример запроса
curl -X GET \
  -H "Authorization: Token <ВАШ_API_TOKEN>" \
  "http://www.sports.api-neurokeff.ru/api/v1/live/?lang=ru,en&sport_id=1"

Аутентификация

Используется TokenAuthentication. Передавайте токен в заголовке Authorization: Token <token>.

Тарифные ограничения применяются автоматически через политику UserPlanDailyThrottle и список разрешённых видов спорта. При превышении лимитов вернётся 429 Too Many Requests, при доступе к запрещённому виду спорта — 403 Forbidden.

Общие параметры запроса

Параметр Тип Описание
lang string | array Локализация названий: ru, en. Можно несколько: ?lang=ru,en.
sport_id int | array Фильтр по видам спорта. Можно несколько: ?sport_id=1,2.
date string Только для prematch/finished. Значения: today, сегодня, dd.mm.yyyy или yyyy-mm-dd.
paginate bool По умолчанию выключено. Включите ?paginate=1 или используйте page/page_size.
page int Номер страницы (если пагинация включена).
page_size int Размер страницы (1–500). По умолчанию 50 при включённой пагинации.

Все виды спорта

Ниже — перечень видов спорта и их ID в базе (используйте в параметре sport_id).

Ключ (sport_id) Код Название Пример фильтра
1 tennis Теннис /api/live/?sport_id=1
2 football Football /api/live/?sport_id=2
3 hockey Хоккей /api/live/?sport_id=3
4 basketball Basketball /api/live/?sport_id=4
5 Волейбол /api/live/?sport_id=5
6 Киберспорт /api/live/?sport_id=6
7 Бокс /api/live/?sport_id=7
8 Единоборства /api/live/?sport_id=8
9 Регби /api/live/?sport_id=9

Эндпоинты

GET /api/live/

Список текущих лайв-матчей (time_status=1). В ответе: лиги, команды, счёт, минута, odds, события (events), составы (lineups), статистика (statistics), игроки (players).

Параметры: lang, sport_id, paginate/page/page_size.
Пример
{
  "count": 2,
  "results": [ ... ]
}
GET /api/prematch/

Ближайшие матчи (time_status=0). В ответе: лиги, команды, дата/время, odds, составы (lineups). Поле events отсутствует (прематч).

Параметры: lang, sport_id, date, paginate/page/page_size.
GET /api/finished/

Возвращает **все** завершённые и проблемные статусы: 3 (Завершен), 4 (Отложен), 5 (Отменен), 7 (Прерванный), 8 (Прерванный и не будет доигран). В ответе: лиги, команды, счёт, события (events), статистика (statistics), игроки (players). Коэффициенты не возвращаются.

Параметры: lang, sport_id, date, paginate/page/page_size.

Коды ошибок

  • 401 Unauthorized — отсутствует или неверный токен.
  • 403 Forbidden — доступ к виду спорта запрещён текущим тарифом.
  • 404 Not Found — матч не найден по game_id.
  • 429 Too Many Requests — превышены суточные лимиты тарифа.
  • 5xx — внутренняя ошибка сервера.

FAQ

Что такое game_id в путях?

Это ваш идентификатор Game.api_id, используемый при поиске матча.

Как работает локализация названий?

Передайте ?lang=ru,en. В ответе имена лиг и команд придут с ключами ru/en (если доступны).

Почему по умолчанию нет пагинации?

Для удобства интеграции. Включите параметром ?paginate=1 или задайте page/page_size.