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
Запрашиваемый язык должен:
- поддерживаться Sport Line API;
- входить в тариф клиента.
Если язык существует, но не входит в тариф ключа, 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-статус.
Все подтверждённые ошибки, их причины и способы устранения собраны в документе «Обработка ошибок».
Проверка подключения
Перед началом основной интеграции убедитесь, что:
- Используется базовый URL, выданный менеджером.
- Ключ передаётся в заголовке
Package. - Ключ не выводится в логи и сообщения интерфейса.
- Значение
lineилиliveправильно указано в URL. - Запрашиваемый язык входит в тариф.
- Запрашиваемый вид спорта доступен ключу.
- Срок действия доступа не закончился.
Для проверки выполните запрос:
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/menu/live/ru' \
--header 'Package: YOUR_API_KEY'
Поддержка
Если доступ не работает, отправьте менеджеру:
- адрес запроса без ключа;
- время выполнения запроса;
error_codeиerror_message;- используемый язык и ID вида спорта;
- описание среды: локальная, тестовая или рабочая.
Не отправляйте API-ключ в общий чат или публичную задачу.
- Поддержка SportAPI: @suport_sportapi
- Официальный сайт: sportapi.net
Следующий документ: 03-основные-понятия.md.