OpenRouter
Runtime provider id: openrouter. Uses the openai-compatible adapter, so reasoning streams for reasoning models.
Provider options
Section titled “Provider options”| Field | Type | Notes |
|---|---|---|
apiKey |
string | Required (or set via environment). |
baseURL |
string | Optional. Defaults to https://openrouter.ai/api/v1 when omitted. |
headers |
Record<string, string> |
Optional. Extra HTTP headers. |
reasoning |
object | Optional. See Reasoning. |
Model names are usually provider-qualified ids such as anthropic/claude-3.5-sonnet.
Reasoning
Section titled “Reasoning”reasoning.effort maps to reasoning_effort, which OpenRouter normalizes for reasoning models. Omit to leave reasoning at the default. summary/display are not used by OpenRouter.
Example configs
Section titled “Example configs”{ "name": "OpenRouter", "provider": "openrouter", "options": { "apiKey": "sk-or-..." }}{ "name": "Claude via OpenRouter", "provider": "OpenRouter", "options": { "model": "anthropic/claude-3.5-sonnet" }, "default": true}With reasoning enabled on a reasoning model:
{ "name": "OpenRouter Reasoning", "provider": "openrouter", "options": { "apiKey": "sk-or-...", "reasoning": { "effort": "high" } }}{ "name": "DeepSeek R1 via OpenRouter", "provider": "OpenRouter Reasoning", "options": { "model": "deepseek/deepseek-r1" }}