Router9
Documentation
API Reference

Errors

API error codes and response format

Error Response Format

All API errors follow a consistent format:

{
  "error": {
    "message": "Human-readable error description",
    "type": "error_type",
    "code": "error_code"
  }
}

Some endpoints return a simplified format:

{
  "error": "Human-readable error description"
}

HTTP Status Codes

StatusMeaningCommon Cause
400Bad RequestMissing or invalid parameters
401UnauthorizedMissing, invalid, or expired API key
404Not FoundResource doesn't exist or model not found
413Payload Too LargeFile exceeds size limit or storage quota exceeded
429Too Many RequestsRate limit exceeded
502Bad GatewayUpstream provider returned an error
503Service UnavailableProvider temporarily unavailable or not configured

Error Types

invalid_request_error

The request was malformed or missing required fields.

{
  "error": {
    "message": "model, max_tokens, and messages are required",
    "type": "invalid_request_error",
    "code": "invalid_request"
  }
}

server_error

An internal error occurred on the Router9 side.

{
  "error": {
    "message": "Web search is not configured on this server",
    "type": "server_error",
    "code": "search_not_configured"
  }
}

upstream_error

The upstream LLM provider returned an error.

{
  "error": {
    "message": "Upstream provider error: rate limited",
    "type": "upstream_error",
    "code": "provider_error"
  }
}

Authentication Errors

Error MessageCauseFix
Missing authorization headerNo API key providedAdd Authorization: Bearer sk-r9k-... header
Invalid API keyKey doesn't exist or was deactivatedCheck key or regenerate in dashboard
API key expiredKey passed its expiration dateRegenerate a new key

Rate Limit Errors

{
  "error": "4-hour rate limit exceeded. Resets at 2025-04-06T16:00:00Z"
}

See Rate Limiting for details on quotas and the Retry-After header.

On this page