Sport Line API — обработка ошибок
Общий формат ошибки
Большинство ошибок доступа и проверки параметров возвращаются в формате:
{
"error_code": 100,
"error_message": "Invalid Package"
}
| Поле | Тип | Описание |
|---|---|---|
error_code | number | Числовой код категории ошибки |
error_message | string | Текстовое описание причины |
При обработке ответа проверяйте наличие error_code и error_message. Не
полагайтесь только на HTTP-статус ответа.
1. Ошибки API-ключа
Missing Package header
API-ключ не передан в HTTP-заголовке Package.
{
"error_code": 100,
"error_message": "Missing Package header"
}
Что проверить:
- присутствует ли заголовок
Package; - не был ли ключ ошибочно добавлен в URL или тело запроса;
- добавляет ли HTTP-клиент заголовок к каждому запросу.
Invalid Package
Переданный ключ не найден в системе.
Что проверить:
- полностью ли скопирован ключ;
- нет ли пробелов до или после значения;
- используется ли ключ от правильного окружения;
- не был ли ключ заменён менеджером SportAPI.
Package has expired
Срок действия ключа закончился или доступ был отключён.
Что сделать:
- уточнить срок действия доступа;
- проверить статус оплаты или тестового периода;
- обратиться к менеджеру SportAPI для продления или активации.
2. Ошибки тарифа и разрешений
Access denied
У ключа нет доступа к запрошенным данным или виду спорта.
Что проверить:
- входит ли
sportIdв тариф клиента; - используется ли правильный метод API;
- не запрашиваются ли внутренние методы;
- соответствует ли ключ выбранному подключению.
The language is not available in your package.
Указанный язык существует в Sport Line API, но не входит в тариф клиента.
Что сделать:
- использовать язык, доступный текущему ключу;
- запросить список языков у менеджера;
- при необходимости подключить дополнительный язык.
3. Ошибки параметров запроса
Invalid language
Передан код языка, который не поддерживается API.
Что проверить:
- значение
langв URL; - регистр и написание кода языка;
- отсутствие лишних символов в пути запроса.
Wrong data type (accept only live or line)
В параметре типа линии передано значение, отличное от live или line.
{
"error_code": 90,
"error_message": "Wrong data type (accept only live or line)"
}
Допустимые значения:
| Значение | Назначение |
|---|---|
line | Prematch-матчи |
live | Матчи в реальном времени |
Эта ошибка явно обрабатывается методом поиска. Для остальных методов неправильный тип линии может привести к пустому ответу, поэтому проверяйте значение до отправки запроса.
4. Ответы метода конкретного матча
Некоторые ситуации метода event возвращаются не в формате error_code, а как
сообщение внутри успешной оболочки ответа.
Game not found
Матч с переданным идентификатором не найден.
{
"status": 1,
"page": "/v1/event",
"body": {
"message": "Game not found"
}
}
Что проверить:
- правильность
game_idилиsgame_id; - соответствует ли матч типу
lineилиlive; - существует ли матч в актуальной выдаче
events.
Game id finished
Матч больше недоступен в текущей линии по переданному game_id.
{
"status": 1,
"page": "/v1/event",
"body": {
"message": "Game id finished"
}
}
Сообщение не указывает точную причину. Prematch-матч мог перейти в live с новым game_id,
быть отменён или исчезнуть из линии по другой причине. Sport Line API не возвращает отдельные
статусы для этих случаев.
Что делать:
- прекратить запросы
eventпо прежнемуgame_id; - обновить список матчей через
eventsдля нужного типа линии; - не считать матч начатым, завершённым или отменённым только по этому сообщению.
5. Пустой ответ — не всегда ошибка
Пустой массив body может означать, что по выбранным условиям нет доступных
данных:
{
"status": 1,
"page": "/v1/events",
"body": []
}
Перед показом ошибки пользователю проверьте:
- есть ли матчи выбранного вида спорта;
- правильно ли указан
tournamentId; - соответствует ли запрос типу
lineилиlive; - доступны ли запрошенные данные текущему тарифу.
Рекомендуемая обработка в приложении
- Разобрать JSON-ответ.
- Проверить наличие
error_code. - Если есть
error_code, обработать известное значение и записать техническую информацию в лог без API-ключа. - Если ответ содержит
body.message, обработать состояние конкретного матча. - Если
body— пустой массив, показать пустое состояние, а не системную ошибку. - Не показывать клиентам API-ключ, внутренний URL или полный технический лог.
Что отправить в поддержку
Если причина ошибки неизвестна, отправьте:
- URL запроса без API-ключа;
- время и часовой пояс запроса;
error_codeиerror_message;- тело ответа без чувствительных данных;
- тип линии
lineилиlive; - язык,
sportId,tournamentIdиgameId, если они использовались.
Не отправляйте действующий API-ключ в публичный чат или задачу.
- Поддержка SportAPI: @suport_sportapi
- Официальный сайт: sportapi.net