Все ошибки API возвращают JSON-тело с полем error. Ответ 4xx обычно требует исправить запрос, аккаунт или лимит; ответ 5xx означает серверную или временную проблему, но безопасность повтора всё равно зависит от действия.
| Код | Название | Значение |
|---|---|---|
| 400 | Bad Request | Проверка не пройдена: обязательное значение отсутствует, неверно сформировано, не поддерживается или выходит за допустимый диапазон. Исправьте запрос перед повтором. |
| 403 | Forbidden | Ключу или аккаунту запрещено это действие, например из-за приостановки аккаунта. Повтор без изменений не поможет. |
| 404 | Not Found | Запрошенный ресурс API не найден или недоступен этому ключу. Перед повтором проверьте идентификатор и принадлежность аккаунту. |
| 409 | Conflict | Запрос конфликтует с существующим состоянием, например request_id действия add повторно используется для другого логического заказа. В зависимости от ситуации используйте исходный запрос или новый уникальный идентификатор. |
| 413 | Content Too Large | Тело запроса слишком велико. Уменьшите данные или разделите поддерживаемые пакетные запросы перед повтором. |
| 429 | Too Many Requests | Запрос отклонён лимитом частоты или действия. Проверьте X-RateLimit-DeniedBy, если он есть, и подождите относительное число секунд из X-RateLimit-Reset. |
| 500 | Internal Server Error | Произошёл неожиданный серверный сбой. Не считайте, что любую запись можно безопасно повторить; следуйте правилам повторов и сверки для конкретного действия. |
| 502 | Bad Gateway | Поставщик отклонил запрос на выполнение. Перед повторной попыткой проверьте доступность услуги и данные запроса. |
| 503 | Service Unavailable | API или необходимая операция временно недоступны, в том числе когда нет подходящего провайдера (provider_not_found). Повторите позже с увеличивающейся задержкой, учитывайте Retry-After при его наличии и сохраняйте тот же идентификатор идемпотентности, если действие его поддерживает. |
{
"error": "Missing required parameter: service"
}Действие требует параметр, который не был включён. Добавьте его в тело запроса и повторите.
{
"error": "Invalid API key"
}Неверный ключ, отозванный ключ или отсутствующий ключ. Проверьте, что значение совпадает с показанным в /dashboard/api. Ошибка идентична для отсутствующего и недействительного ключа, чтобы предотвратить атаки перебора.
{
"error": "Insufficient balance"
}Баланс вашей учётной записи ниже итоговой стоимости заказа. Пополните через /dashboard/wallet или примените купон.
{
"error": "Service not found"
}ID услуги не существует. Обновите каталог через action=services и выберите актуальный ID; для прекращённых услуг используется отдельная ошибка 400.
{
"error": "Rate limit exceeded"
}Запрос отклонён лимитом частоты или действия. Проверьте X-RateLimit-DeniedBy, если он есть, и подождите относительное число секунд из X-RateLimit-Reset.
{
"error": "language must be one of en, es, pt, ru, tr, ar, hi, id, fr, zh",
"error_code": "INVALID_LANGUAGE"
}Действия services и catalog принимают только en, es, pt, ru, tr, ar, hi, id, fr или zh. Исправьте код языка и повторите запрос.
Повторите action=add с тем же request_id и тем же логическим запросом, чтобы избежать дублирования; для другого заказа используйте новое уникальное значение. Действия чтения можно безопасно повторять. Повторная попытка отмены безопасна, пока заказ остается подходящим для отмены.