Search OpenRouter models

Search available models on OpenRouter. Results include model capabilities (context window, max tokens, input modalities). Rate limited to 10 requests per minute.

GET/api/models/openrouter

Authorization

better-auth.session_token<token>

Cookie session from Better Auth. Requires X-Org-Id header for org-scoped routes.

In: cookie

Query Parameters

q?string

Search query to filter models by name or ID

Header Parameters

X-Org-Id?string

Organization ID. Required for cookie auth. Not needed for API key auth (org resolved from key).

Formatuuid
curl -X GET "https://your-instance/api/models/openrouter"
{
  "object": "list",
  "hasMore": false,
  "data": [
    {
      "id": "anthropic/claude-sonnet-4",
      "name": "Claude Sonnet 4",
      "contextWindow": 200000,
      "maxTokens": 16384,
      "input": [
        "text",
        "image"
      ],
      "reasoning": true,
      "cost": {
        "input": 3,
        "output": 15,
        "cacheRead": 0.3,
        "cacheWrite": 3.75
      }
    }
  ]
}
{
  "type": "https://docs.appstrate.dev/errors/unauthorized",
  "title": "Unauthorized",
  "status": 401,
  "detail": "Invalid or missing session",
  "code": "unauthorized",
  "request_id": "req_abc123"
}
{
  "type": "https://docs.appstrate.dev/errors/forbidden",
  "title": "Forbidden",
  "status": 403,
  "detail": "Insufficient permissions",
  "code": "forbidden",
  "request_id": "req_abc123"
}
{
  "type": "https://docs.appstrate.dev/errors/rate-limited",
  "title": "Rate Limited",
  "status": 429,
  "detail": "Too many requests. Please try again shortly.",
  "code": "rate_limited",
  "request_id": "req_abc123",
  "retry_after": 30
}
{
  "type": "https://docs.appstrate.dev/errors/provider-error",
  "title": "Bad Gateway",
  "status": 502,
  "detail": "OpenRouter API returned an unexpected error",
  "code": "provider_error",
  "request_id": "req_abc123"
}
{
  "type": "https://docs.appstrate.dev/errors/timeout",
  "title": "Gateway Timeout",
  "status": 504,
  "detail": "OpenRouter did not respond within the allowed time",
  "code": "timeout",
  "request_id": "req_def456"
}