Skip to content

Error Handling

The OpenAI Responses API uses a consistent error format across all providers. This ensures that your integration remains robust even when switching between different underlying models.

Error Object

All errors return a JSON response with the following shape:

{
  "error": {
    "message": "Description of the error",
    "type": "error_type",
    "code": "error_code"
  }
}

Common Response API Errors

Type Code Description
invalid_request_error invalid_request_error Invalid request parameters or body.
invalid_request_error model_not_found No vendors found for the requested model.
permission_denied pool_access_denied Access denied to the requested key pool.
rate_limit_error rate_limit_exceeded You have sent too many requests in a short period.
service_unavailable no_vendors_available No vendors available for failover.
service_unavailable all_vendors_cooling_down All vendors are in cooldown.

Handling Errors in Code

import requests

response = requests.post(
    "https://llm.siraya.ai/v1/responses",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer <API_KEY>",
    },
    json={"model": "deepseek-v3.2", "input": "Hello"}
)

if response.status_code != 200:
    error = response.json().get("error", {})
    print(f"Error: [{error.get('code')}] {error.get('message')}")

Example Response

{
  "error": {
    "message": "no vendors found for model: unknown-model",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}