Compare commits

...
Author SHA1 Message Date
OpenRouter SDK Bot 1f5bb94368 chore: update OpenAPI spec [sdk-bot] 2026-04-14 16:29:00 +00:00
2bba049182 chore: update OpenAPI spec from monorepo (#119)
Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
2026-04-14 09:43:17 -05:00
e8953c70bd chore: update OpenAPI spec from monorepo (#113)
Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
2026-04-13 12:55:39 -05:00
29fdfcedc3 chore: update OpenAPI spec from monorepo (#112)
Co-authored-by: OpenRouter SDK Bot <sdk-bot@openrouter.ai>
2026-04-13 11:15:35 -05:00
+210 -32
View File
@@ -1326,12 +1326,16 @@ components:
nullable: true
type: array
new_lines:
nullable: true
type: integer
new_start:
nullable: true
type: integer
old_lines:
nullable: true
type: integer
old_start:
nullable: true
type: integer
type:
enum:
@@ -1414,10 +1418,13 @@ components:
- pdf
type: string
num_lines:
nullable: true
type: integer
start_line:
nullable: true
type: integer
total_lines:
nullable: true
type: integer
type:
enum:
@@ -1674,8 +1681,10 @@ components:
cache_creation:
$ref: '#/components/schemas/AnthropicCacheCreation'
cache_creation_input_tokens:
nullable: true
type: integer
cache_read_input_tokens:
nullable: true
type: integer
inference_geo:
nullable: true
@@ -2704,6 +2713,7 @@ components:
nullable: true
type: boolean
completed_at:
nullable: true
type: integer
created_at:
type: integer
@@ -2711,6 +2721,7 @@ components:
$ref: '#/components/schemas/ResponsesErrorField'
frequency_penalty:
format: double
nullable: true
type: number
id:
type: string
@@ -2719,8 +2730,10 @@ components:
instructions:
$ref: '#/components/schemas/BaseInputs'
max_output_tokens:
nullable: true
type: integer
max_tool_calls:
nullable: true
type: integer
metadata:
$ref: '#/components/schemas/RequestMetadata'
@@ -2755,6 +2768,7 @@ components:
type: boolean
presence_penalty:
format: double
nullable: true
type: number
previous_response_id:
nullable: true
@@ -2777,6 +2791,7 @@ components:
type: boolean
temperature:
format: double
nullable: true
type: number
text:
$ref: '#/components/schemas/TextConfig'
@@ -2825,6 +2840,7 @@ components:
type: integer
top_p:
format: double
nullable: true
type: number
truncation:
$ref: '#/components/schemas/Truncation'
@@ -3495,6 +3511,8 @@ components:
- function
type: object
- $ref: '#/components/schemas/DatetimeServerTool'
- $ref: '#/components/schemas/ImageGenerationServerTool_OpenRouter'
- $ref: '#/components/schemas/ChatSearchModelsServerTool'
- $ref: '#/components/schemas/OpenRouterWebSearchServerTool'
- $ref: '#/components/schemas/ChatWebSearchShorthand'
description: Tool definition for function calling (regular function or OpenRouter built-in server tool)
@@ -3653,22 +3671,10 @@ components:
description: Frequency penalty (-2.0 to 2.0)
example: 0
format: double
nullable: true
type: number
image_config:
additionalProperties:
anyOf:
- type: string
- format: double
type: number
- items:
nullable: true
type: array
description: >-
Provider-specific image configuration options. Keys and values vary by model/provider. See
https://openrouter.ai/docs/guides/overview/multimodal/image-generation for more details.
example:
aspect_ratio: '16:9'
type: object
$ref: '#/components/schemas/ImageConfig'
logit_bias:
additionalProperties:
format: double
@@ -3686,10 +3692,12 @@ components:
max_completion_tokens:
description: Maximum tokens in completion
example: 100
nullable: true
type: integer
max_tokens:
description: 'Maximum tokens (deprecated, use max_completion_tokens). Note: some providers enforce a minimum of 16.'
example: 100
nullable: true
type: integer
messages:
description: List of messages for the conversation
@@ -3755,6 +3763,7 @@ components:
description: Presence penalty (-2.0 to 2.0)
example: 0
format: double
nullable: true
type: number
provider:
$ref: '#/components/schemas/ProviderPreferences'
@@ -3803,6 +3812,7 @@ components:
seed:
description: Random seed for deterministic outputs
example: 42
nullable: true
type: integer
service_tier:
description: The service tier to use for processing this request.
@@ -3846,6 +3856,7 @@ components:
description: Sampling temperature (0-2)
example: 0.7
format: double
nullable: true
type: number
tool_choice:
$ref: '#/components/schemas/ChatToolChoice'
@@ -3862,11 +3873,13 @@ components:
top_logprobs:
description: Number of top log probabilities to return (0-20)
example: 5
nullable: true
type: integer
top_p:
description: Nucleus sampling parameter (0-1)
example: 1
format: double
nullable: true
type: number
trace:
$ref: '#/components/schemas/TraceConfig'
@@ -3936,6 +3949,22 @@ components:
- object
- system_fingerprint
type: object
ChatSearchModelsServerTool:
description: 'OpenRouter built-in server tool: searches and filters AI models available on OpenRouter'
example:
parameters:
max_results: 5
type: openrouter:experimental__search_models
properties:
parameters:
$ref: '#/components/schemas/SearchModelsServerToolConfig'
type:
enum:
- openrouter:experimental__search_models
type: string
required:
- type
type: object
ChatStreamChoice:
description: Streaming completion choice chunk
example:
@@ -4329,15 +4358,19 @@ components:
properties:
accepted_prediction_tokens:
description: Accepted prediction tokens
nullable: true
type: integer
audio_tokens:
description: Tokens used for audio output
nullable: true
type: integer
reasoning_tokens:
description: Tokens used for reasoning
nullable: true
type: integer
rejected_prediction_tokens:
description: Rejected prediction tokens
nullable: true
type: integer
type: object
prompt_tokens:
@@ -4879,6 +4912,7 @@ components:
description: Spending limit in USD
example: 50
format: double
nullable: true
type: number
name:
description: Name for the new guardrail
@@ -5002,22 +5036,26 @@ components:
properties:
frequency_penalty:
format: double
nullable: true
type: number
presence_penalty:
format: double
nullable: true
type: number
repetition_penalty:
format: double
nullable: true
type: number
temperature:
format: double
nullable: true
type: number
top_k:
minimum: 0
nullable: true
type: integer
top_p:
format: double
nullable: true
type: number
type: object
DeleteGuardrailResponse:
@@ -5697,6 +5735,7 @@ components:
description: Spending limit in USD
example: 100
format: double
nullable: true
type: number
name:
description: Name of the guardrail
@@ -5724,6 +5763,22 @@ components:
example: monthly
nullable: true
type: string
ImageConfig:
additionalProperties:
anyOf:
- type: string
- format: double
type: number
- items:
nullable: true
type: array
description: >-
Provider-specific image configuration options. Keys and values vary by model/provider. See
https://openrouter.ai/docs/guides/overview/multimodal/image-generation for more details.
example:
aspect_ratio: '16:9'
quality: high
type: object
ImageGenCallCompletedEvent:
allOf:
- $ref: '#/components/schemas/OpenAIResponsesImageGenCallCompleted'
@@ -5837,6 +5892,46 @@ components:
required:
- type
type: object
ImageGenerationServerTool_OpenRouter:
description: 'OpenRouter built-in server tool: generates images from text prompts using an image generation model'
example:
parameters:
model: openai/gpt-image-1
quality: high
size: 1024x1024
type: openrouter:image_generation
properties:
parameters:
$ref: '#/components/schemas/ImageGenerationServerToolConfig'
type:
enum:
- openrouter:image_generation
type: string
required:
- type
type: object
ImageGenerationServerToolConfig:
additionalProperties:
anyOf:
- type: string
- format: double
type: number
- items:
nullable: true
type: array
description: >-
Configuration for the openrouter:image_generation server tool. Accepts all image_config params (aspect_ratio,
quality, size, background, output_format, output_compression, moderation, etc.) plus a model field.
example:
aspect_ratio: '16:9'
model: openai/gpt-image-1
quality: high
properties:
model:
description: Which image generation model to use (e.g. "openai/gpt-image-1"). Defaults to "openai/gpt-image-1".
example: openai/gpt-image-1
type: string
type: object
ImageGenerationStatus:
enum:
- in_progress
@@ -7478,6 +7573,7 @@ components:
cache_control:
$ref: '#/components/schemas/AnthropicCacheControlDirective'
max_uses:
nullable: true
type: integer
name:
enum:
@@ -7515,6 +7611,7 @@ components:
cache_control:
$ref: '#/components/schemas/AnthropicCacheControlDirective'
max_uses:
nullable: true
type: integer
name:
enum:
@@ -7531,6 +7628,8 @@ components:
- name
type: object
- $ref: '#/components/schemas/DatetimeServerTool'
- $ref: '#/components/schemas/ImageGenerationServerTool_OpenRouter'
- $ref: '#/components/schemas/ChatSearchModelsServerTool'
- $ref: '#/components/schemas/OpenRouterWebSearchServerTool'
type: array
top_k:
@@ -7563,6 +7662,7 @@ components:
- properties:
cost:
format: double
nullable: true
type: number
cost_details:
nullable: true
@@ -7572,6 +7672,7 @@ components:
type: number
upstream_inference_cost:
format: double
nullable: true
type: number
upstream_inference_prompt_cost:
format: double
@@ -7708,6 +7809,7 @@ components:
- Crusoe
- DeepInfra
- DeepSeek
- DekaLLM
- Featherless
- Fireworks
- Friendli
@@ -7742,6 +7844,7 @@ components:
- Parasail
- Perplexity
- Phala
- Recraft
- Reka
- Relace
- SambaNova
@@ -7901,6 +8004,7 @@ components:
context_length:
description: Maximum context length in tokens
example: 8192
nullable: true
type: integer
created:
description: Unix timestamp of when the model was created
@@ -9866,18 +9970,22 @@ components:
p50:
description: Maximum p50 latency (seconds)
format: double
nullable: true
type: number
p75:
description: Maximum p75 latency (seconds)
format: double
nullable: true
type: number
p90:
description: Maximum p90 latency (seconds)
format: double
nullable: true
type: number
p99:
description: Maximum p99 latency (seconds)
format: double
nullable: true
type: number
type: object
PercentileStats:
@@ -9926,18 +10034,22 @@ components:
p50:
description: Minimum p50 throughput (tokens/sec)
format: double
nullable: true
type: number
p75:
description: Minimum p75 throughput (tokens/sec)
format: double
nullable: true
type: number
p90:
description: Minimum p90 throughput (tokens/sec)
format: double
nullable: true
type: number
p99:
description: Minimum p99 throughput (tokens/sec)
format: double
nullable: true
type: number
type: object
PerRequestLimits:
@@ -10089,6 +10201,7 @@ components:
- Crusoe
- DeepInfra
- DeepSeek
- DekaLLM
- Featherless
- Fireworks
- Friendli
@@ -10123,6 +10236,7 @@ components:
- Parasail
- Perplexity
- Phala
- Recraft
- Reka
- Relace
- SambaNova
@@ -10400,6 +10514,7 @@ components:
- Crusoe
- DeepInfra
- DeepSeek
- DekaLLM
- Featherless
- Fireworks
- Friendli
@@ -10434,6 +10549,7 @@ components:
- Parasail
- Perplexity
- Phala
- Recraft
- Reka
- Relace
- SambaNova
@@ -10542,8 +10658,10 @@ components:
latency_last_30m:
$ref: '#/components/schemas/PercentileStats'
max_completion_tokens:
nullable: true
type: integer
max_prompt_tokens:
nullable: true
type: integer
model_id:
description: The unique identifier for the model (permaslug)
@@ -10641,15 +10759,18 @@ components:
Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) *
100. Rate-limited requests are excluded. Returns null if insufficient data.
format: double
nullable: true
type: number
uptime_last_30m:
format: double
nullable: true
type: number
uptime_last_5m:
description: >-
Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests)
* 100. Rate-limited requests are excluded. Returns null if insufficient data.
format: double
nullable: true
type: number
required:
- name
@@ -10758,6 +10879,7 @@ components:
nullable: true
type: boolean
max_tokens:
nullable: true
type: integer
type: object
description: Configuration for reasoning mode in the response
@@ -11236,19 +11358,10 @@ components:
type: boolean
frequency_penalty:
format: double
nullable: true
type: number
image_config:
additionalProperties:
anyOf:
- type: string
- format: double
type: number
description: >-
Provider-specific image configuration options. Keys and values vary by model/provider. See
https://openrouter.ai/docs/features/multimodal/image-generation for more details.
example:
aspect_ratio: '16:9'
type: object
$ref: '#/components/schemas/ImageConfig'
include:
items:
$ref: '#/components/schemas/ResponseIncludesEnum'
@@ -11260,8 +11373,10 @@ components:
nullable: true
type: string
max_output_tokens:
nullable: true
type: integer
max_tool_calls:
nullable: true
type: integer
metadata:
$ref: '#/components/schemas/RequestMetadata'
@@ -11304,6 +11419,7 @@ components:
type: array
presence_penalty:
format: double
nullable: true
type: number
previous_response_id:
nullable: true
@@ -11349,6 +11465,7 @@ components:
type: boolean
temperature:
format: double
nullable: true
type: number
text:
$ref: '#/components/schemas/TextExtendedConfig'
@@ -11393,14 +11510,18 @@ components:
- $ref: '#/components/schemas/ApplyPatchServerTool'
- $ref: '#/components/schemas/CustomTool'
- $ref: '#/components/schemas/DatetimeServerTool'
- $ref: '#/components/schemas/ImageGenerationServerTool_OpenRouter'
- $ref: '#/components/schemas/ChatSearchModelsServerTool'
- $ref: '#/components/schemas/WebSearchServerTool_OpenRouter'
type: array
top_k:
type: integer
top_logprobs:
nullable: true
type: integer
top_p:
format: double
nullable: true
type: number
trace:
$ref: '#/components/schemas/TraceConfig'
@@ -11422,6 +11543,16 @@ components:
- high
example: medium
type: string
SearchModelsServerToolConfig:
description: Configuration for the openrouter:experimental__search_models server tool
example:
max_results: 5
properties:
max_results:
description: Maximum number of models to return. Defaults to 5, max 20.
example: 5
type: integer
type: object
SearchQualityLevel:
description: >-
How much context to retrieve per result. Defaults to medium (15000 chars). Only applies when using the Exa
@@ -11900,6 +12031,7 @@ components:
context_length:
description: Context length from the top provider
example: 8192
nullable: true
type: integer
is_moderated:
description: Whether the top provider moderates content
@@ -11908,6 +12040,7 @@ components:
max_completion_tokens:
description: Maximum completion tokens from the top provider
example: 4096
nullable: true
type: integer
required:
- is_moderated
@@ -12070,6 +12203,7 @@ components:
description: New spending limit in USD
example: 75
format: double
nullable: true
type: number
name:
description: New name for the guardrail
@@ -12139,11 +12273,13 @@ components:
cost:
description: Cost of the completion
format: double
nullable: true
type: number
cost_details:
properties:
upstream_inference_cost:
format: double
nullable: true
type: number
upstream_inference_input_cost:
format: double
@@ -12196,8 +12332,7 @@ components:
duration:
description: Duration of the generated video in seconds
example: 8
exclusiveMinimum: true
minimum: 0
minimum: 1
type: integer
frame_images:
description: >-
@@ -12349,6 +12484,10 @@ components:
additionalProperties:
nullable: true
type: object
dekallm:
additionalProperties:
nullable: true
type: object
enfer:
additionalProperties:
nullable: true
@@ -12549,6 +12688,10 @@ components:
additionalProperties:
nullable: true
type: object
recraft:
additionalProperties:
nullable: true
type: object
recursal:
additionalProperties:
nullable: true
@@ -12722,6 +12865,7 @@ components:
cost:
description: The cost of the video generation in USD.
format: double
nullable: true
type: number
is_byok:
description: Whether the request was made using a Bring Your Own Key configuration.
@@ -13919,8 +14063,7 @@ paths:
dimensions:
description: The number of dimensions for the output embeddings
example: 1536
exclusiveMinimum: 0
minimum: 0
minimum: 1
type: integer
encoding_format:
description: The format of the output embeddings
@@ -14460,11 +14603,13 @@ paths:
app_id:
description: ID of the app that made the request
example: 12345
nullable: true
type: integer
cache_discount:
description: Discount applied due to caching
example: 0.0002
format: double
nullable: true
type: number
cancelled:
description: Whether the generation was cancelled
@@ -14489,6 +14634,7 @@ paths:
description: Time taken for generation in milliseconds
example: 1200
format: double
nullable: true
type: number
http_referer:
description: Referer header from the request
@@ -14506,6 +14652,7 @@ paths:
description: Total latency in milliseconds
example: 1250
format: double
nullable: true
type: number
model:
description: Model used for the generation
@@ -14515,6 +14662,7 @@ paths:
description: Moderation latency in milliseconds
example: 50
format: double
nullable: true
type: number
native_finish_reason:
description: Native finish reason as reported by provider
@@ -14524,38 +14672,47 @@ paths:
native_tokens_cached:
description: Native cached tokens as reported by provider
example: 3
nullable: true
type: integer
native_tokens_completion:
description: Native completion tokens as reported by provider
example: 25
nullable: true
type: integer
native_tokens_completion_images:
description: Native completion image tokens as reported by provider
example: 0
nullable: true
type: integer
native_tokens_prompt:
description: Native prompt tokens as reported by provider
example: 10
nullable: true
type: integer
native_tokens_reasoning:
description: Native reasoning tokens as reported by provider
example: 5
nullable: true
type: integer
num_input_audio_prompt:
description: Number of audio inputs in the prompt
example: 0
nullable: true
type: integer
num_media_completion:
description: Number of media items in the completion
example: 0
nullable: true
type: integer
num_media_prompt:
description: Number of media items in the prompt
example: 1
nullable: true
type: integer
num_search_results:
description: Number of search results included
example: 5
nullable: true
type: integer
origin:
description: Origin URL of the request
@@ -14594,10 +14751,12 @@ paths:
tokens_completion:
description: Number of tokens in the completion
example: 25
nullable: true
type: integer
tokens_prompt:
description: Number of tokens in the prompt
example: 10
nullable: true
type: integer
total_cost:
description: Total cost of the generation in USD
@@ -14613,6 +14772,7 @@ paths:
description: Cost charged by the upstream provider
example: 0.0012
format: double
nullable: true
type: number
usage:
description: Usage amount in USD
@@ -14763,6 +14923,7 @@ paths:
description: Number of records to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
- description: Maximum number of records to return (max 100)
in: query
@@ -15158,6 +15319,7 @@ paths:
description: Number of records to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
- description: Maximum number of records to return (max 100)
in: query
@@ -15410,6 +15572,7 @@ paths:
description: Number of records to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
- description: Maximum number of records to return (max 100)
in: query
@@ -15654,6 +15817,7 @@ paths:
description: Number of records to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
- description: Maximum number of records to return (max 100)
in: query
@@ -15732,6 +15896,7 @@ paths:
description: Number of records to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
- description: Maximum number of records to return (max 100)
in: query
@@ -15936,11 +16101,13 @@ paths:
description: Spending limit for the API key in USD
example: 100
format: double
nullable: true
type: number
limit_remaining:
description: Remaining spending limit in USD
example: 74.5
format: double
nullable: true
type: number
limit_reset:
description: Type of limit reset for the API key
@@ -16064,6 +16231,7 @@ paths:
description: Number of API keys to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
responses:
'200':
@@ -16197,11 +16365,13 @@ paths:
description: Spending limit for the API key in USD
example: 100
format: double
nullable: true
type: number
limit_remaining:
description: Remaining spending limit in USD
example: 74.5
format: double
nullable: true
type: number
limit_reset:
description: Type of limit reset for the API key
@@ -16343,6 +16513,7 @@ paths:
description: Optional spending limit for the API key in USD
example: 50
format: double
nullable: true
type: number
limit_reset:
description: >-
@@ -16498,11 +16669,13 @@ paths:
description: Spending limit for the API key in USD
example: 100
format: double
nullable: true
type: number
limit_remaining:
description: Remaining spending limit in USD
example: 74.5
format: double
nullable: true
type: number
limit_reset:
description: Type of limit reset for the API key
@@ -16831,11 +17004,13 @@ paths:
description: Spending limit for the API key in USD
example: 100
format: double
nullable: true
type: number
limit_remaining:
description: Remaining spending limit in USD
example: 74.5
format: double
nullable: true
type: number
limit_reset:
description: Type of limit reset for the API key
@@ -16981,6 +17156,7 @@ paths:
description: New spending limit for the API key in USD
example: 75
format: double
nullable: true
type: number
limit_reset:
description: >-
@@ -17131,11 +17307,13 @@ paths:
description: Spending limit for the API key in USD
example: 100
format: double
nullable: true
type: number
limit_remaining:
description: Remaining spending limit in USD
example: 74.5
format: double
nullable: true
type: number
limit_reset:
description: Type of limit reset for the API key
@@ -17805,6 +17983,7 @@ paths:
description: Number of records to skip for pagination
example: 0
minimum: 0
nullable: true
type: integer
- description: Maximum number of records to return (max 100)
in: query
@@ -18567,8 +18746,7 @@ paths:
top_n:
description: Number of most relevant documents to return
example: 3
exclusiveMinimum: 0
minimum: 0
minimum: 1
type: integer
required:
- model