Errors & Rate Limits
Error Format
All errors follow a consistent format:
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low to launch this instance. Please add credit.",
"status": 402
}
}Error Codes
| Code | HTTP Status | Description |
|---|---|---|
unauthorized | 401 | Missing or invalid API key/token |
forbidden | 403 | API key lacks required permission |
not_found | 404 | Resource not found |
insufficient_balance | 402 | Balance too low for operation |
validation_error | 422 | Invalid request body |
gpu_unavailable | 409 | Requested GPU not available |
provider_error | 502 | Upstream provider error |
rate_limited | 429 | Too many requests |
internal_error | 500 | Internal server error |
Rate Limits
- Default: 60 requests per minute per API key
- Configurable: Set per-key limits in the dashboard
Rate limit headers are included in every response:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1709312460When rate limited, you’ll receive:
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Try again in 23 seconds.",
"status": 429,
"retry_after": 23
}
}