Известные ошибки API возвращают тело JSON со следующей структурой:
{
"error": {
"message": "Human-readable description",
"code": "error_code"
}
}
Справочник по ошибкам
400 Bad Request
| Код | Причина | Исправление |
|---|
invalid_json | Тело запроса не является валидным JSON | Проверьте синтаксис JSON |
missing_model | Поле model отсутствует или не является строкой | Включите "model": "provider/name" в тело запроса |
missing_input | Поле input отсутствует или не является объектом | Включите "input": {...} в тело запроса |
invalid_input | Входные данные не соответствуют схеме модели | Проверьте справочник API модели на наличие обязательных полей и допустимых значений |
model_not_found | ID модели не соответствует ни одной доступной модели | Смотрите страницу моделей для допустимых ID моделей |
401 Unauthorized
| Код | Причина | Исправление |
|---|
missing_api_key | Отсутствует заголовок Authorization или неверный формат | Включите Authorization: Bearer sk-... в ваш запрос |
invalid_api_key | Ключ недействителен, отключен или истек | Создайте новый ключ или повторно включите существующий в Settings → API Keys |
402 Payment Required
| Код | Причина | Исправление |
|---|
insufficient_balance | Ваш баланс слишком мал для этого запуска | Пополните баланс в Settings → Credits |
403 Forbidden
| Код | Причина | Исправление |
|---|
api_key_spend_limit_exceeded | Достигнут лимит совокупных расходов для этого ключа | Увеличьте лимит расходов в Settings → API Keys |
ip_not_allowed | Ваш IP отсутствует в whitelist ключа | Добавьте ваш IP в разрешенный список ключа или удалите whitelist |
429 Too Many Requests
| Код | Причина | Исправление |
|---|
RATE_LIMITED | Слишком много запросов за короткий промежуток времени | Подождите и повторите попытку. См. rate limits |
USAGE_EXCEEDED | Квота использования ключа исчерпана | Свяжитесь со службой поддержки или создайте новый ключ |
404 Not Found
| Код | Причина | Исправление |
|---|
run_not_found | Для вашей учетной записи нет запуска с таким ID | Проверьте, что ID запуска указан верно и был создан с этим API-ключом |
500 Internal Server Error
Неожиданная ошибка на нашей стороне. Если это продолжается, свяжитесь с support@runbase.net.
Обработка ошибок в коде
response=$(curl -s -w "\n%{http_code}" https://runbase.net/api/v1/runs \
-H "Authorization: Bearer $RUNBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "google/nano-banana-2", "input": {"prompt": "test"}}')
http_code=$(echo "$response" | tail -1)
body=$(echo "$response" | head -1)
if [ "$http_code" -ne 201 ]; then
echo "Error $http_code: $(echo $body | jq -r '.error.message')"
fi
Для ошибок 429 реализуйте экспоненциальную задержку — подождите 1 с, затем 2 с, затем 4 с перед повторной попыткой.