SportAPI Документация
RU
S Документация продуктаSport Line API
v1
Услуга и цены ↗ Получить доступ ↗
Sport Line API / Авторизация и доступ

Sport Line API — авторизация и доступ

Как работает доступ к API

Для работы со Sport Line API клиент получает у менеджера SportAPI:

  • базовый URL спортивной линии;
  • персональный API-ключ;
  • доступные виды спорта;
  • доступные языки;
  • срок действия доступа;
  • условия выбранного тарифа.

API-ключ связан с тарифом клиента. С его помощью API проверяет срок действия доступа, а также список доступных видов спорта и языков. Если запрошенные данные не входят в тариф, API вернёт ошибку доступа или не включит их в ответ.

Чтобы получить доступ, напишите менеджеру SportAPI в Telegram.

Заголовок Package

При каждом обращении к API передавайте ключ в HTTP-заголовке Package:

Package: YOUR_API_KEY

URL запроса:

GET https://YOUR_API_DOMAIN/v1/menu/live/ru

HTTP-заголовки запроса:

Package: YOUR_API_KEY
Accept: application/json

Значение YOUR_API_KEY передаётся именно в заголовке Package, а не в URL.

В полном формате HTTP-запрос выглядит так:

GET /v1/menu/live/ru HTTP/1.1
Host: YOUR_API_DOMAIN
Package: YOUR_API_KEY
Accept: application/json

Замените:

  • https://YOUR_API_DOMAIN — на базовый URL, выданный менеджером;
  • YOUR_API_KEY — на Ваш API-ключ.

Не передавайте ключ:

  • в параметрах URL;
  • в теле GET-запроса;
  • в имени файла;
  • в сообщениях об ошибках;
  • в публичной документации и примерах.

Пример с curl

Для локальной проверки можно использовать переменные окружения:

export SPORTAPI_BASE_URL='https://YOUR_API_DOMAIN'
export SPORTAPI_KEY='YOUR_API_KEY'

curl --request GET \
  --url "$SPORTAPI_BASE_URL/v1/menu/live/ru" \
  --header "Package: $SPORTAPI_KEY"

Не сохраняйте действующий ключ в истории команд на общем компьютере.

Безопасное хранение ключа

Храните API-ключ в защищённых настройках приложения:

  • в переменной окружения;
  • в секретах хостинга или CI/CD;
  • в менеджере секретов;
  • в серверной конфигурации, которая не публикуется в репозитории.

Не записывайте действующий ключ непосредственно в исходный код и не добавляйте файл с ключом в Git.

Если спортивные данные используются на публичном сайте, рекомендуется выполнять запросы к Sport Line API через свой backend. Это позволяет не показывать персональный ключ посетителям сайта в браузере.

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

Ограничения по видам спорта

Ключ содержит список доступных видов спорта.

Поддерживаемые обычные и киберспортивные дисциплины и их sport_id приведены в списке видов спорта SportAPI.

Если запрашивается конкретный sportId, который не входит в тариф, API может вернуть отказ в доступе:

{
  "error_code": 100,
  "error_message": "Access denied"
}

Методы, которые возвращают несколько видов спорта, формируют ответ с учётом доступа клиента. В ответе могут отсутствовать виды спорта, не входящие в тариф.

Ограничения по языкам

Полный перечень доступных языков и их кодов приведён в списке языков Sport Line API.

Код языка передаётся в пути запроса:

/v1/menu/live/ru
/v1/menu/live/en

Запрашиваемый язык должен:

  1. поддерживаться Sport Line API;
  2. входить в тариф клиента.

Если язык существует, но не входит в тариф ключа, API возвращает:

{
  "error_code": 100,
  "error_message": "The language is not available in your package."
}

Если передан неподдерживаемый код языка, API может вернуть:

{
  "error_code": 100,
  "error_message": "Invalid language"
}

Точный список доступных языков для Вашего ключа можно получить у менеджера SportAPI.

Срок действия и статус ключа

Доступ работает, пока ключ:

  • существует в системе;
  • имеет активный статус;
  • не достиг даты окончания;
  • имеет доступ к запрошенным данным.

Если срок действия закончился или ключ был отключён, API возвращает:

{
  "error_code": 100,
  "error_message": "Package has expired"
}

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

Ошибки авторизации

Ошибки доступа возвращаются в JSON-формате с полями error_code и error_message:

{
  "error_code": 100,
  "error_message": "Invalid Package"
}

При обработке ответа проверяйте наличие error_code и error_message, а не только HTTP-статус.

Все подтверждённые ошибки, их причины и способы устранения собраны в документе «Обработка ошибок».

Проверка подключения

Перед началом основной интеграции убедитесь, что:

  1. Используется базовый URL, выданный менеджером.
  2. Ключ передаётся в заголовке Package.
  3. Ключ не выводится в логи и сообщения интерфейса.
  4. Значение line или live правильно указано в URL.
  5. Запрашиваемый язык входит в тариф.
  6. Запрашиваемый вид спорта доступен ключу.
  7. Срок действия доступа не закончился.

Для проверки выполните запрос:

curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/menu/live/ru' \
  --header 'Package: YOUR_API_KEY'

Поддержка

Если доступ не работает, отправьте менеджеру:

  • адрес запроса без ключа;
  • время выполнения запроса;
  • error_code и error_message;
  • используемый язык и ID вида спорта;
  • описание среды: локальная, тестовая или рабочая.

Не отправляйте API-ключ в общий чат или публичную задачу.

Следующий документ: 03-основные-понятия.md.