diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml
index 17044b7..a7c0037 100644
--- a/.speakeasy/in.openapi.yaml
+++ b/.speakeasy/in.openapi.yaml
@@ -1,2655 +1,2450 @@
-openapi: 3.1.0
-info:
- title: OpenRouter API
- version: 1.0.0
- description: OpenAI-compatible API with additional OpenRouter features
- contact:
- name: OpenRouter Support
- url: https://openrouter.ai/docs
- email: support@openrouter.ai
- license:
- name: MIT
- url: https://opensource.org/licenses/MIT
-servers:
- - url: https://openrouter.ai/api/v1
- description: Production server
- x-speakeasy-server-id: production
-security:
- - apiKey: []
-externalDocs:
- description: OpenRouter Documentation
- url: https://openrouter.ai/docs
components:
+ parameters: {}
schemas:
- OpenAIResponsesResponseStatus:
- type: string
- enum:
- - completed
- - incomplete
- - in_progress
- - failed
- - cancelled
- - queued
- FileCitation:
- type: object
+ ActivityItem:
+ example:
+ byok_usage_inference: 0.012
+ completion_tokens: 125
+ date: '2025-08-24'
+ endpoint_id: 550e8400-e29b-41d4-a716-446655440000
+ model: openai/gpt-4.1
+ model_permaslug: openai/gpt-4.1-2025-04-14
+ prompt_tokens: 50
+ provider_name: OpenAI
+ reasoning_tokens: 25
+ requests: 5
+ usage: 0.015
properties:
- type:
+ byok_usage_inference:
+ description: BYOK inference cost in USD (external credits spent)
+ example: 0.012
+ format: double
+ type: number
+ completion_tokens:
+ description: Total completion tokens generated
+ example: 125
+ type: integer
+ date:
+ description: Date of the activity (YYYY-MM-DD format)
+ example: '2025-08-24'
type: string
- enum:
- - file_citation
- file_id:
+ endpoint_id:
+ description: Unique identifier for the endpoint
+ example: 550e8400-e29b-41d4-a716-446655440000
type: string
- filename:
+ model:
+ description: Model slug (e.g., "openai/gpt-4.1")
+ example: openai/gpt-4.1
type: string
- index:
+ model_permaslug:
+ description: Model permaslug (e.g., "openai/gpt-4.1-2025-04-14")
+ example: openai/gpt-4.1-2025-04-14
+ type: string
+ prompt_tokens:
+ description: Total prompt tokens used
+ example: 50
+ type: integer
+ provider_name:
+ description: Name of the provider serving this endpoint
+ example: OpenAI
+ type: string
+ reasoning_tokens:
+ description: Total reasoning tokens used
+ example: 25
+ type: integer
+ requests:
+ description: Number of requests made
+ example: 5
+ type: integer
+ usage:
+ description: Total cost in USD (OpenRouter credits spent)
+ example: 0.015
+ format: double
type: number
required:
- - type
- - file_id
- - filename
- - index
+ - date
+ - model
+ - model_permaslug
+ - endpoint_id
+ - provider_name
+ - usage
+ - byok_usage_inference
+ - requests
+ - prompt_tokens
+ - completion_tokens
+ - reasoning_tokens
+ type: object
+ ActivityResponse:
example:
- type: file_citation
- file_id: file-abc123
- filename: research_paper.pdf
- index: 0
- URLCitation:
+ data:
+ - byok_usage_inference: 0.012
+ completion_tokens: 125
+ date: '2025-08-24'
+ endpoint_id: 550e8400-e29b-41d4-a716-446655440000
+ model: openai/gpt-4.1
+ model_permaslug: openai/gpt-4.1-2025-04-14
+ prompt_tokens: 50
+ provider_name: OpenAI
+ reasoning_tokens: 25
+ requests: 5
+ usage: 0.015
+ properties:
+ data:
+ description: List of activity items
+ items:
+ $ref: '#/components/schemas/ActivityItem'
+ type: array
+ required:
+ - data
type: object
+ AnnotationAddedEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseAnnotationAddedEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when a text annotation is added to output
+ example:
+ annotation:
+ end_index: 7
+ start_index: 0
+ title: Example
+ type: url_citation
+ url: https://example.com
+ annotation_index: 0
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ sequence_number: 5
+ type: response.output_text.annotation.added
+ AnthropicBase64ImageSource:
+ example:
+ data: /9j/4AAQ...
+ media_type: image/jpeg
+ type: base64
properties:
- type:
+ data:
type: string
+ media_type:
+ $ref: '#/components/schemas/AnthropicImageMimeType'
+ type:
enum:
- - url_citation
- url:
- type: string
- title:
+ - base64
type: string
- start_index:
- type: number
- end_index:
- type: number
required:
- type
- - url
- - title
- - start_index
- - end_index
- example:
- type: url_citation
- start_index: 0
- end_index: 42
- title: OpenRouter Documentation
- url: https://openrouter.ai/docs
- FilePath:
+ - media_type
+ - data
type: object
+ AnthropicBase64PdfSource:
+ example:
+ data: JVBERi0x...
+ media_type: application/pdf
+ type: base64
properties:
- type:
+ data:
type: string
+ media_type:
enum:
- - file_path
- file_id:
+ - application/pdf
type: string
- index:
- type: number
- required:
- - type
- - file_id
- - index
- example:
- type: file_path
- file_id: file-xyz789
- index: 0
- OpenAIResponsesAnnotation:
- anyOf:
- - $ref: '#/components/schemas/FileCitation'
- - $ref: '#/components/schemas/URLCitation'
- - $ref: '#/components/schemas/FilePath'
- ResponseOutputText:
- type: object
- properties:
type:
- type: string
enum:
- - output_text
- text:
+ - base64
type: string
- annotations:
- type: array
- items:
- $ref: '#/components/schemas/OpenAIResponsesAnnotation'
- logprobs:
- type: array
- items:
- type: object
- properties:
- token:
- type: string
- bytes:
- type: array
- items:
- type: number
- logprob:
- type: number
- top_logprobs:
- type: array
- items:
- type: object
- properties:
- token:
- type: string
- bytes:
- type: array
- items:
- type: number
- logprob:
- type: number
- required:
- - token
- - bytes
- - logprob
- required:
- - token
- - bytes
- - logprob
- - top_logprobs
required:
- type
- - text
+ - media_type
+ - data
+ type: object
+ AnthropicBaseUsageIteration:
example:
- type: output_text
- text: The capital of France is Paris.
- annotations:
- - type: url_citation
- start_index: 0
- end_index: 42
- title: Paris - Wikipedia
- url: https://en.wikipedia.org/wiki/Paris
- OpenAIResponsesRefusalContent:
+ cache_creation: null
+ cache_creation_input_tokens: 0
+ cache_read_input_tokens: 0
+ input_tokens: 100
+ output_tokens: 50
+ properties:
+ cache_creation:
+ $ref: '#/components/schemas/AnthropicIterationCacheCreation'
+ cache_creation_input_tokens:
+ type: integer
+ cache_read_input_tokens:
+ type: integer
+ input_tokens:
+ type: integer
+ output_tokens:
+ type: integer
type: object
+ AnthropicBashCodeExecutionContent:
+ discriminator:
+ mapping:
+ bash_code_execution_result: '#/components/schemas/AnthropicBashCodeExecutionResult'
+ bash_code_execution_tool_result_error: '#/components/schemas/AnthropicBashCodeExecutionToolResultError'
+ propertyName: type
+ example:
+ content: []
+ return_code: 0
+ stderr: ''
+ stdout: Hello
+ type: bash_code_execution_result
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicBashCodeExecutionToolResultError'
+ - $ref: '#/components/schemas/AnthropicBashCodeExecutionResult'
+ AnthropicBashCodeExecutionOutput:
+ example:
+ file_id: file_01abc
+ type: bash_code_execution_output
properties:
- type:
+ file_id:
type: string
+ type:
enum:
- - refusal
- refusal:
+ - bash_code_execution_output
type: string
required:
+ - file_id
- type
- - refusal
- example:
- type: refusal
- refusal: I'm sorry, I cannot assist with that request
- OutputMessage:
type: object
+ AnthropicBashCodeExecutionResult:
+ example:
+ content: []
+ return_code: 0
+ stderr: ''
+ stdout: Hello
+ type: bash_code_execution_result
properties:
- id:
+ content:
+ items:
+ $ref: '#/components/schemas/AnthropicBashCodeExecutionOutput'
+ type: array
+ return_code:
+ type: integer
+ stderr:
type: string
- role:
+ stdout:
type: string
- enum:
- - assistant
type:
- type: string
enum:
- - message
- status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - incomplete
- - type: string
- enum:
- - in_progress
- content:
- type: array
- items:
- anyOf:
- - $ref: '#/components/schemas/ResponseOutputText'
- - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
- phase:
- anyOf:
- - type: string
- enum:
- - commentary
- - type: string
- enum:
- - final_answer
- - nullable: true
- description: >-
- The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer`
- for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve
- and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.
+ - bash_code_execution_result
+ type: string
required:
- - id
- - role
- - type
- content
+ - return_code
+ - stderr
+ - stdout
+ - type
+ type: object
+ AnthropicBashCodeExecutionToolResult:
example:
- id: msg-abc123
- role: assistant
- type: message
- status: completed
content:
- - type: output_text
- text: Hello! How can I help you today?
- OutputMessageItem:
- allOf:
- - $ref: '#/components/schemas/OutputMessage'
- - type: object
- properties: {}
- example:
- id: msg-123
- type: message
- role: assistant
- status: completed
+ content: []
+ return_code: 0
+ stderr: ''
+ stdout: Hello
+ type: bash_code_execution_result
+ tool_use_id: srvtoolu_01abc
+ type: bash_code_execution_tool_result
+ properties:
content:
- - type: output_text
- text: Hello! How can I help you?
- annotations: []
- description: An output message item
- ReasoningTextContent:
+ $ref: '#/components/schemas/AnthropicBashCodeExecutionContent'
+ tool_use_id:
+ type: string
+ type:
+ enum:
+ - bash_code_execution_tool_result
+ type: string
+ required:
+ - type
+ - content
+ - tool_use_id
type: object
+ AnthropicBashCodeExecutionToolResultError:
+ example:
+ error_code: unavailable
+ type: bash_code_execution_tool_result_error
properties:
- type:
+ error_code:
+ enum:
+ - invalid_tool_input
+ - unavailable
+ - too_many_requests
+ - execution_time_exceeded
+ - output_file_too_large
type: string
+ type:
enum:
- - reasoning_text
- text:
+ - bash_code_execution_tool_result_error
type: string
required:
+ - error_code
- type
- - text
- example:
- type: reasoning_text
- text: Let me think step by step about this problem...
- ReasoningSummaryText:
type: object
+ AnthropicCacheControlDirective:
+ example:
+ type: ephemeral
properties:
+ ttl:
+ $ref: '#/components/schemas/AnthropicCacheControlTtl'
type:
- type: string
enum:
- - summary_text
- text:
+ - ephemeral
type: string
required:
- type
- - text
+ type: object
+ AnthropicCacheControlTtl:
+ enum:
+ - 5m
+ - 1h
+ example: 5m
+ type: string
+ AnthropicCacheCreation:
example:
- type: summary_text
- text: Analyzed the problem using first principles
- OutputItemReasoning:
+ ephemeral_1h_input_tokens: 0
+ ephemeral_5m_input_tokens: 100
+ nullable: true
+ properties:
+ ephemeral_1h_input_tokens:
+ type: integer
+ ephemeral_5m_input_tokens:
+ type: integer
+ required:
+ - ephemeral_5m_input_tokens
+ - ephemeral_1h_input_tokens
type: object
+ AnthropicCaller:
+ discriminator:
+ mapping:
+ code_execution_20250825: '#/components/schemas/AnthropicCodeExecution20250825Caller'
+ code_execution_20260120: '#/components/schemas/AnthropicCodeExecution20260120Caller'
+ direct: '#/components/schemas/AnthropicDirectCaller'
+ propertyName: type
+ example:
+ type: direct
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicDirectCaller'
+ - $ref: '#/components/schemas/AnthropicCodeExecution20250825Caller'
+ - $ref: '#/components/schemas/AnthropicCodeExecution20260120Caller'
+ AnthropicCitationCharLocation:
+ example:
+ cited_text: Example cited text
+ document_index: 0
+ document_title: null
+ end_char_index: 18
+ file_id: null
+ start_char_index: 0
+ type: char_location
properties:
- type:
+ cited_text:
type: string
- enum:
- - reasoning
- id:
- type: string
- content:
- type: array
- items:
- $ref: '#/components/schemas/ReasoningTextContent'
- summary:
- type: array
- items:
- $ref: '#/components/schemas/ReasoningSummaryText'
- encrypted_content:
+ document_index:
+ type: integer
+ document_title:
+ nullable: true
type: string
+ end_char_index:
+ type: integer
+ file_id:
nullable: true
- status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - incomplete
- - type: string
- enum:
- - in_progress
+ type: string
+ start_char_index:
+ type: integer
+ type:
+ enum:
+ - char_location
+ type: string
required:
- type
- - id
- - summary
- example:
- type: reasoning
- id: reasoning-abc123
- summary:
- - type: summary_text
- text: Analyzed the problem using first principles
- OutputReasoningItem:
- allOf:
- - $ref: '#/components/schemas/OutputItemReasoning'
- - type: object
- properties:
- content:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/ReasoningTextContent'
- signature:
- type: string
- nullable: true
- description: A signature for the reasoning content, used for verification
- example: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...
- format:
- type: string
- nullable: true
- enum:
- - unknown
- - openai-responses-v1
- - azure-openai-responses-v1
- - xai-responses-v1
- - anthropic-claude-v1
- - google-gemini-v1
- description: The format of the reasoning content
- example: anthropic-claude-v1
- example:
- id: reasoning-123
- type: reasoning
- status: completed
- summary:
- - type: summary_text
- text: Analyzed the problem and found the optimal solution.
- content:
- - type: reasoning_text
- text: First, we analyze the problem...
- signature: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...
- format: anthropic-claude-v1
- description: An output item containing reasoning
- OutputItemFunctionCall:
+ - cited_text
+ - document_index
+ - document_title
+ - start_char_index
+ - end_char_index
+ - file_id
type: object
+ AnthropicCitationCharLocationParam:
+ example:
+ cited_text: Example cited text
+ document_index: 0
+ document_title: null
+ end_char_index: 18
+ start_char_index: 0
+ type: char_location
properties:
- type:
+ cited_text:
+ type: string
+ document_index:
+ type: integer
+ document_title:
+ nullable: true
type: string
+ end_char_index:
+ type: integer
+ start_char_index:
+ type: integer
+ type:
enum:
- - function_call
- id:
+ - char_location
type: string
- name:
+ required:
+ - type
+ - cited_text
+ - document_index
+ - document_title
+ - start_char_index
+ - end_char_index
+ type: object
+ AnthropicCitationContentBlockLocation:
+ example:
+ cited_text: Example cited text
+ document_index: 0
+ document_title: null
+ end_block_index: 1
+ file_id: null
+ start_block_index: 0
+ type: content_block_location
+ properties:
+ cited_text:
type: string
- arguments:
+ document_index:
+ type: integer
+ document_title:
+ nullable: true
type: string
- call_id:
+ end_block_index:
+ type: integer
+ file_id:
+ nullable: true
+ type: string
+ start_block_index:
+ type: integer
+ type:
+ enum:
+ - content_block_location
type: string
- status:
- anyOf:
- - type: string
- enum:
- - completed
- - type: string
- enum:
- - incomplete
- - type: string
- enum:
- - in_progress
required:
- type
- - name
- - arguments
- - call_id
- example:
- type: function_call
- id: call-abc123
- name: get_weather
- arguments: '{"location":"San Francisco","unit":"celsius"}'
- call_id: call-abc123
- OutputFunctionCallItem:
- allOf:
- - $ref: '#/components/schemas/OutputItemFunctionCall'
- - type: object
- properties: {}
- example:
- type: function_call
- id: call-abc123
- name: get_weather
- arguments: '{"location":"San Francisco","unit":"celsius"}'
- call_id: call-abc123
- WebSearchStatus:
- type: string
- enum:
- - completed
- - searching
- - in_progress
- - failed
- example: completed
- OutputItemWebSearchCall:
+ - cited_text
+ - document_index
+ - document_title
+ - start_block_index
+ - end_block_index
+ - file_id
type: object
+ AnthropicCitationContentBlockLocationParam:
+ example:
+ cited_text: Example cited text
+ document_index: 0
+ document_title: null
+ end_block_index: 1
+ start_block_index: 0
+ type: content_block_location
properties:
- type:
+ cited_text:
type: string
+ document_index:
+ type: integer
+ document_title:
+ nullable: true
+ type: string
+ end_block_index:
+ type: integer
+ start_block_index:
+ type: integer
+ type:
enum:
- - web_search_call
- id:
+ - content_block_location
type: string
- action:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - search
- query:
- type: string
- queries:
- type: array
- items:
- type: string
- sources:
- type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- required:
- - type
- - query
- - type: object
- properties:
- type:
- type: string
- enum:
- - open_page
- url:
- type: string
- nullable: true
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - find_in_page
- pattern:
- type: string
- url:
- type: string
- required:
- - type
- - pattern
- - url
- status:
- $ref: '#/components/schemas/WebSearchStatus'
required:
- type
- - id
- - action
- - status
- example:
- type: web_search_call
- id: search-abc123
- action:
- type: search
- query: OpenAI API
- status: completed
- OutputWebSearchCallItem:
- allOf:
- - $ref: '#/components/schemas/OutputItemWebSearchCall'
- - type: object
- properties: {}
- example:
- type: web_search_call
- id: search-abc123
- action:
- type: search
- query: OpenAI API
- status: completed
- OutputItemFileSearchCall:
+ - cited_text
+ - document_index
+ - document_title
+ - start_block_index
+ - end_block_index
type: object
+ AnthropicCitationPageLocation:
+ example:
+ cited_text: Example cited text
+ document_index: 0
+ document_title: null
+ end_page_number: 2
+ file_id: null
+ start_page_number: 1
+ type: page_location
properties:
- type:
+ cited_text:
+ type: string
+ document_index:
+ type: integer
+ document_title:
+ nullable: true
+ type: string
+ end_page_number:
+ type: integer
+ file_id:
+ nullable: true
type: string
+ start_page_number:
+ type: integer
+ type:
enum:
- - file_search_call
- id:
+ - page_location
type: string
- queries:
- type: array
- items:
- type: string
- status:
- $ref: '#/components/schemas/WebSearchStatus'
required:
- type
- - id
- - queries
- - status
- example:
- type: file_search_call
- id: filesearch-abc123
- queries:
- - machine learning algorithms
- - neural networks
- status: completed
- OutputFileSearchCallItem:
- allOf:
- - $ref: '#/components/schemas/OutputItemFileSearchCall'
- - type: object
- properties: {}
- example:
- type: file_search_call
- id: filesearch-abc123
- queries:
- - machine learning algorithms
- - neural networks
- status: completed
- ImageGenerationStatus:
- type: string
- enum:
- - in_progress
- - completed
- - generating
- - failed
- example: completed
- OutputItemImageGenerationCall:
+ - cited_text
+ - document_index
+ - document_title
+ - start_page_number
+ - end_page_number
+ - file_id
type: object
+ AnthropicCitationPageLocationParam:
+ example:
+ cited_text: Example cited text
+ document_index: 0
+ document_title: null
+ end_page_number: 2
+ start_page_number: 1
+ type: page_location
properties:
- type:
+ cited_text:
type: string
- enum:
- - image_generation_call
- id:
+ document_index:
+ type: integer
+ document_title:
+ nullable: true
type: string
- result:
+ end_page_number:
+ type: integer
+ start_page_number:
+ type: integer
+ type:
+ enum:
+ - page_location
type: string
- nullable: true
- default: null
- status:
- $ref: '#/components/schemas/ImageGenerationStatus'
required:
- type
- - id
- - status
- example:
- type: image_generation_call
- id: imagegen-abc123
- result: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
- status: completed
- OutputImageGenerationCallItem:
- allOf:
- - $ref: '#/components/schemas/OutputItemImageGenerationCall'
- - type: object
- properties: {}
+ - cited_text
+ - document_index
+ - document_title
+ - start_page_number
+ - end_page_number
+ type: object
+ AnthropicCitationsConfig:
example:
- type: image_generation_call
- id: imagegen-abc123
- result: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
- status: completed
- OutputServerToolItem:
+ enabled: true
+ nullable: true
+ properties:
+ enabled:
+ type: boolean
+ required:
+ - enabled
type: object
+ AnthropicCitationSearchResultLocation:
+ example:
+ cited_text: Example cited text
+ end_block_index: 1
+ search_result_index: 0
+ source: example_source
+ start_block_index: 0
+ title: Example Result
+ type: search_result_location
properties:
- type:
+ cited_text:
type: string
- pattern: '^openrouter:'
- description: Server tool type (e.g. openrouter:datetime, openrouter:web_search)
- id:
+ end_block_index:
+ type: integer
+ search_result_index:
+ type: integer
+ source:
type: string
- status:
+ start_block_index:
+ type: integer
+ title:
+ nullable: true
type: string
+ type:
enum:
- - completed
- - in_progress
- - incomplete
+ - search_result_location
+ type: string
required:
- type
- - status
- additionalProperties:
- nullable: true
- description: A generic OpenRouter server tool output item
- example:
- type: openrouter:web_search
- id: ws_tmp_abc123
- status: completed
- OutputItems:
- anyOf:
- - $ref: '#/components/schemas/OutputMessageItem'
- - $ref: '#/components/schemas/OutputReasoningItem'
- - $ref: '#/components/schemas/OutputFunctionCallItem'
- - $ref: '#/components/schemas/OutputWebSearchCallItem'
- - $ref: '#/components/schemas/OutputFileSearchCallItem'
- - $ref: '#/components/schemas/OutputImageGenerationCallItem'
- - $ref: '#/components/schemas/OutputServerToolItem'
- description: An output item from the response
- example:
- id: msg-abc123
- role: assistant
- type: message
- status: completed
- content:
- - type: output_text
- text: Hello! How can I help you today?
- ResponsesErrorField:
+ - cited_text
+ - search_result_index
+ - source
+ - title
+ - start_block_index
+ - end_block_index
type: object
- nullable: true
+ AnthropicCitationWebSearchResultLocation:
+ example:
+ cited_text: Example cited text
+ encrypted_index: enc_idx_0
+ title: Example Page
+ type: web_search_result_location
+ url: https://example.com
properties:
- code:
+ cited_text:
+ type: string
+ encrypted_index:
+ type: string
+ title:
+ nullable: true
type: string
+ type:
enum:
- - server_error
- - rate_limit_exceeded
- - invalid_prompt
- - vector_store_timeout
- - invalid_image
- - invalid_image_format
- - invalid_base64_image
- - invalid_image_url
- - image_too_large
- - image_too_small
- - image_parse_error
- - image_content_policy_violation
- - invalid_image_mode
- - image_file_too_large
- - unsupported_image_media_type
- - empty_image_file
- - failed_to_download_image
- - image_file_not_found
- message:
+ - web_search_result_location
+ type: string
+ url:
type: string
required:
- - code
- - message
- description: Error information returned from the API
- example:
- code: rate_limit_exceeded
- message: Rate limit exceeded. Please try again later.
- IncompleteDetails:
+ - type
+ - cited_text
+ - encrypted_index
+ - title
+ - url
type: object
- nullable: true
+ AnthropicCodeExecution20250825Caller:
+ example:
+ tool_id: toolu_01abc
+ type: code_execution_20250825
properties:
- reason:
+ tool_id:
type: string
+ type:
enum:
- - max_output_tokens
- - content_filter
- OpenAIResponsesUsage:
+ - code_execution_20250825
+ type: string
+ required:
+ - type
+ - tool_id
type: object
+ AnthropicCodeExecution20260120Caller:
+ example:
+ tool_id: toolu_01abc
+ type: code_execution_20260120
properties:
- input_tokens:
- type: number
- input_tokens_details:
- type: object
- properties:
- cached_tokens:
- type: number
- required:
- - cached_tokens
- output_tokens:
- type: number
- output_tokens_details:
- type: object
- properties:
- reasoning_tokens:
- type: number
- required:
- - reasoning_tokens
- total_tokens:
- type: number
+ tool_id:
+ type: string
+ type:
+ enum:
+ - code_execution_20260120
+ type: string
required:
- - input_tokens
- - input_tokens_details
- - output_tokens
- - output_tokens_details
- - total_tokens
- Usage:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesUsage'
- - type: object
- nullable: true
- properties:
- cost:
- type: number
- nullable: true
- description: Cost of the completion
- is_byok:
- type: boolean
- description: Whether a request was made using a Bring Your Own Key configuration
- cost_details:
- type: object
- properties:
- upstream_inference_cost:
- type: number
- nullable: true
- upstream_inference_input_cost:
- type: number
- upstream_inference_output_cost:
- type: number
- required:
- - upstream_inference_input_cost
- - upstream_inference_output_cost
- description: Token usage information for the response
- example:
- input_tokens: 10
- output_tokens: 25
- total_tokens: 35
- input_tokens_details:
- cached_tokens: 0
- output_tokens_details:
- reasoning_tokens: 0
- cost: 0.0012
- cost_details:
- upstream_inference_cost: null
- upstream_inference_input_cost: 0.0008
- upstream_inference_output_cost: 0.0004
- InputText:
+ - type
+ - tool_id
type: object
+ AnthropicCodeExecutionContent:
+ discriminator:
+ mapping:
+ code_execution_result: '#/components/schemas/AnthropicCodeExecutionResult'
+ code_execution_tool_result_error: '#/components/schemas/AnthropicCodeExecutionToolResultError'
+ encrypted_code_execution_result: '#/components/schemas/AnthropicEncryptedCodeExecutionResult'
+ propertyName: type
+ example:
+ content: []
+ return_code: 0
+ stderr: ''
+ stdout: Hello
+ type: code_execution_result
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicCodeExecutionToolResultError'
+ - $ref: '#/components/schemas/AnthropicCodeExecutionResult'
+ - $ref: '#/components/schemas/AnthropicEncryptedCodeExecutionResult'
+ AnthropicCodeExecutionOutput:
+ example:
+ file_id: file_01abc
+ type: code_execution_output
properties:
- type:
+ file_id:
type: string
+ type:
enum:
- - input_text
- text:
+ - code_execution_output
type: string
required:
+ - file_id
- type
- - text
- description: Text input content item
- example:
- type: input_text
- text: Hello, how can I help you?
- InputImage:
type: object
+ AnthropicCodeExecutionResult:
+ example:
+ content: []
+ return_code: 0
+ stderr: ''
+ stdout: Hello
+ type: code_execution_result
properties:
+ content:
+ items:
+ $ref: '#/components/schemas/AnthropicCodeExecutionOutput'
+ type: array
+ return_code:
+ type: integer
+ stderr:
+ type: string
+ stdout:
+ type: string
type:
+ enum:
+ - code_execution_result
+ type: string
+ required:
+ - content
+ - return_code
+ - stderr
+ - stdout
+ - type
+ type: object
+ AnthropicCodeExecutionToolResult:
+ example:
+ content:
+ content: []
+ return_code: 0
+ stderr: ''
+ stdout: Hello
+ type: code_execution_result
+ tool_use_id: srvtoolu_01abc
+ type: code_execution_tool_result
+ properties:
+ content:
+ $ref: '#/components/schemas/AnthropicCodeExecutionContent'
+ tool_use_id:
type: string
+ type:
enum:
- - input_image
- detail:
+ - code_execution_tool_result
type: string
+ required:
+ - type
+ - content
+ - tool_use_id
+ type: object
+ AnthropicCodeExecutionToolResultError:
+ example:
+ error_code: unavailable
+ type: code_execution_tool_result_error
+ properties:
+ error_code:
+ $ref: '#/components/schemas/AnthropicServerToolErrorCode'
+ type:
enum:
- - auto
- - high
- - low
- image_url:
+ - code_execution_tool_result_error
type: string
+ required:
+ - error_code
+ - type
+ type: object
+ AnthropicCompactionBlock:
+ example:
+ content: Compacted summary of conversation.
+ type: compaction
+ properties:
+ content:
nullable: true
+ type: string
+ type:
+ enum:
+ - compaction
+ type: string
required:
- type
- - detail
- description: Image input content item
+ - content
+ type: object
+ AnthropicCompactionUsageIteration:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicBaseUsageIteration'
+ - properties:
+ type:
+ enum:
+ - compaction
+ type: string
+ required:
+ - type
+ type: object
example:
- type: input_image
- detail: auto
- image_url: https://example.com/image.jpg
- InputFile:
+ cache_creation: null
+ cache_creation_input_tokens: 0
+ cache_read_input_tokens: 0
+ input_tokens: 50
+ output_tokens: 25
+ type: compaction
+ AnthropicContainer:
+ example:
+ expires_at: '2026-04-08T00:00:00Z'
+ id: ctr_01abc
+ nullable: true
+ properties:
+ expires_at:
+ type: string
+ id:
+ type: string
+ required:
+ - id
+ - expires_at
type: object
+ AnthropicContainerUpload:
+ example:
+ file_id: file_01abc
+ type: container_upload
properties:
+ file_id:
+ type: string
type:
+ enum:
+ - container_upload
type: string
+ required:
+ - type
+ - file_id
+ type: object
+ AnthropicDirectCaller:
+ example:
+ type: direct
+ properties:
+ type:
enum:
- - input_file
- file_id:
+ - direct
type: string
+ required:
+ - type
+ type: object
+ AnthropicDocumentBlock:
+ example:
+ citations: null
+ source:
+ data: Hello, world!
+ media_type: text/plain
+ type: text
+ title: null
+ type: document
+ properties:
+ citations:
+ $ref: '#/components/schemas/AnthropicCitationsConfig'
+ source:
+ anyOf:
+ - $ref: '#/components/schemas/AnthropicBase64PdfSource'
+ - $ref: '#/components/schemas/AnthropicPlainTextSource'
+ title:
nullable: true
- file_data:
- type: string
- filename:
type: string
- file_url:
+ type:
+ enum:
+ - document
type: string
required:
+ - citations
+ - source
+ - title
- type
- description: File input content item
- example:
- type: input_file
- file_id: file-abc123
- filename: document.pdf
- InputAudio:
type: object
+ AnthropicDocumentBlockParam:
+ example:
+ source:
+ data: Hello, world!
+ media_type: text/plain
+ type: text
+ type: document
properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ citations:
+ nullable: true
+ properties:
+ enabled:
+ type: boolean
+ type: object
+ context:
+ nullable: true
+ type: string
+ source:
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicBase64PdfSource'
+ - $ref: '#/components/schemas/AnthropicPlainTextSource'
+ - properties:
+ content:
+ anyOf:
+ - type: string
+ - items:
+ discriminator:
+ mapping:
+ image: '#/components/schemas/AnthropicImageBlockParam'
+ text: '#/components/schemas/AnthropicTextBlockParam'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicTextBlockParam'
+ - $ref: '#/components/schemas/AnthropicImageBlockParam'
+ type: array
+ type:
+ enum:
+ - content
+ type: string
+ required:
+ - type
+ - content
+ type: object
+ - $ref: '#/components/schemas/AnthropicUrlPdfSource'
+ title:
+ nullable: true
+ type: string
type:
+ enum:
+ - document
+ type: string
+ required:
+ - type
+ - source
+ type: object
+ AnthropicEncryptedCodeExecutionResult:
+ example:
+ content: []
+ encrypted_stdout: enc_stdout
+ return_code: 0
+ stderr: ''
+ type: encrypted_code_execution_result
+ properties:
+ content:
+ items:
+ $ref: '#/components/schemas/AnthropicCodeExecutionOutput'
+ type: array
+ encrypted_stdout:
+ type: string
+ return_code:
+ type: integer
+ stderr:
type: string
+ type:
enum:
- - input_audio
- input_audio:
- type: object
- properties:
- data:
- type: string
- format:
- type: string
- enum:
- - mp3
- - wav
- required:
- - data
- - format
+ - encrypted_code_execution_result
+ type: string
required:
+ - content
+ - encrypted_stdout
+ - return_code
+ - stderr
- type
- - input_audio
- description: Audio input content item
+ type: object
+ AnthropicImageBlockParam:
example:
- type: input_audio
- input_audio:
- data: SGVsbG8gV29ybGQ=
- format: mp3
- ToolCallStatusEnum:
+ source:
+ data: /9j/4AAQ...
+ media_type: image/jpeg
+ type: base64
+ type: image
+ properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ source:
+ discriminator:
+ mapping:
+ base64: '#/components/schemas/AnthropicBase64ImageSource'
+ url: '#/components/schemas/AnthropicUrlImageSource'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicBase64ImageSource'
+ - $ref: '#/components/schemas/AnthropicUrlImageSource'
+ type:
+ enum:
+ - image
+ type: string
+ required:
+ - type
+ - source
+ type: object
+ AnthropicImageMimeType:
+ enum:
+ - image/jpeg
+ - image/png
+ - image/gif
+ - image/webp
+ example: image/jpeg
type: string
+ AnthropicInputTokensClearAtLeast:
+ example:
+ type: input_tokens
+ value: 50000
nullable: true
- enum:
- - in_progress
- - completed
- - incomplete
- example: completed
- BaseInputs:
- anyOf:
- - type: string
- - type: array
- items:
- anyOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - message
- role:
- anyOf:
- - type: string
- enum:
- - user
- - type: string
- enum:
- - system
- - type: string
- enum:
- - assistant
- - type: string
- enum:
- - developer
- content:
- anyOf:
- - type: array
- items:
- oneOf:
- - $ref: '#/components/schemas/InputText'
- - $ref: '#/components/schemas/InputImage'
- - $ref: '#/components/schemas/InputFile'
- - $ref: '#/components/schemas/InputAudio'
- discriminator:
- propertyName: type
- mapping:
- input_text: '#/components/schemas/InputText'
- input_image: '#/components/schemas/InputImage'
- input_file: '#/components/schemas/InputFile'
- input_audio: '#/components/schemas/InputAudio'
- - type: string
- phase:
- anyOf:
- - type: string
- enum:
- - commentary
- - type: string
- enum:
- - final_answer
- - nullable: true
- required:
- - role
- - content
- - type: object
- properties:
- id:
- type: string
- type:
- type: string
- enum:
- - message
- role:
- anyOf:
- - type: string
- enum:
- - user
- - type: string
- enum:
- - system
- - type: string
- enum:
- - developer
- content:
- type: array
- items:
- oneOf:
- - $ref: '#/components/schemas/InputText'
- - $ref: '#/components/schemas/InputImage'
- - $ref: '#/components/schemas/InputFile'
- - $ref: '#/components/schemas/InputAudio'
- discriminator:
- propertyName: type
- mapping:
- input_text: '#/components/schemas/InputText'
- input_image: '#/components/schemas/InputImage'
- input_file: '#/components/schemas/InputFile'
- input_audio: '#/components/schemas/InputAudio'
- required:
- - id
- - role
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - function_call_output
- id:
- type: string
- nullable: true
- call_id:
- type: string
- output:
- anyOf:
- - type: string
- - type: array
- items:
- oneOf:
- - $ref: '#/components/schemas/InputText'
- - $ref: '#/components/schemas/InputImage'
- - $ref: '#/components/schemas/InputFile'
- discriminator:
- propertyName: type
- mapping:
- input_text: '#/components/schemas/InputText'
- input_image: '#/components/schemas/InputImage'
- input_file: '#/components/schemas/InputFile'
- status:
- $ref: '#/components/schemas/ToolCallStatusEnum'
- required:
- - type
- - call_id
- - output
- - type: object
- properties:
- type:
- type: string
- enum:
- - function_call
- call_id:
- type: string
- name:
- type: string
- arguments:
- type: string
- id:
- type: string
- status:
- $ref: '#/components/schemas/ToolCallStatusEnum'
- required:
- - type
- - call_id
- - name
- - arguments
- - $ref: '#/components/schemas/OutputItemImageGenerationCall'
- - $ref: '#/components/schemas/OutputMessage'
- - nullable: true
- RequestMetadata:
+ properties:
+ type:
+ enum:
+ - input_tokens
+ type: string
+ value:
+ type: integer
+ required:
+ - type
+ - value
type: object
- nullable: true
- additionalProperties:
- type: string
- maxLength: 512
- description: >-
- Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must
- be ≤512 characters. Maximum 16 pairs allowed.
+ AnthropicInputTokensTrigger:
example:
- user_id: '123'
- session_id: abc-def-ghi
- FunctionTool:
- type: object
+ type: input_tokens
+ value: 100000
properties:
type:
- type: string
enum:
- - function
- name:
- type: string
- description:
+ - input_tokens
type: string
- nullable: true
- strict:
- type: boolean
- nullable: true
- parameters:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
+ value:
+ type: integer
required:
- type
- - name
- - parameters
- description: Function tool definition
+ - value
+ type: object
+ AnthropicIterationCacheCreation:
+ default: null
example:
- type: function
- name: get_weather
- description: Get the current weather in a location
- parameters:
- type: object
- properties:
- location:
- type: string
- description: The city and state
- unit:
- type: string
+ ephemeral_1h_input_tokens: 0
+ ephemeral_5m_input_tokens: 0
+ nullable: true
+ properties:
+ ephemeral_1h_input_tokens:
+ type: integer
+ ephemeral_5m_input_tokens:
+ type: integer
+ type: object
+ AnthropicMessageUsageIteration:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicBaseUsageIteration'
+ - properties:
+ type:
enum:
- - celsius
- - fahrenheit
+ - message
+ type: string
required:
- - location
- SearchContextSizeEnum:
- type: string
- enum:
- - low
- - medium
- - high
- description: Size of the search context for web search tools
- example: medium
- Preview_WebSearchUserLocation:
- type: object
- nullable: true
+ - type
+ type: object
+ example:
+ cache_creation: null
+ cache_creation_input_tokens: 0
+ cache_read_input_tokens: 0
+ input_tokens: 100
+ output_tokens: 50
+ type: message
+ AnthropicPlainTextSource:
+ example:
+ data: Hello, world!
+ media_type: text/plain
+ type: text
properties:
- type:
+ data:
type: string
+ media_type:
enum:
- - approximate
- city:
- type: string
- nullable: true
- country:
- type: string
- nullable: true
- region:
+ - text/plain
type: string
- nullable: true
- timezone:
+ type:
+ enum:
+ - text
type: string
- nullable: true
required:
- type
- Preview_WebSearchServerTool:
+ - media_type
+ - data
type: object
+ AnthropicRedactedThinkingBlock:
+ example:
+ data: cmVkYWN0ZWQ=
+ type: redacted_thinking
properties:
- type:
+ data:
type: string
+ type:
enum:
- - web_search_preview
- search_context_size:
- $ref: '#/components/schemas/SearchContextSizeEnum'
- user_location:
- $ref: '#/components/schemas/Preview_WebSearchUserLocation'
- engine:
+ - redacted_thinking
type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl
- (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
- Parallel engines; ignored with native provider search.
- example: 5
- filters:
- type: object
- nullable: true
- properties:
- allowed_domains:
- type: array
- nullable: true
- items:
- type: string
- excluded_domains:
- type: array
- nullable: true
- items:
- type: string
required:
- type
- description: Web search preview tool configuration
- example:
- type: web_search_preview
- Preview_20250311_WebSearchServerTool:
+ - data
type: object
- properties:
- type:
+ AnthropicSearchResultBlockParam:
+ example:
+ content:
+ - text: Result content
+ type: text
+ source: example_source
+ title: Example Result
+ type: search_result
+ properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ citations:
+ properties:
+ enabled:
+ type: boolean
+ type: object
+ content:
+ items:
+ $ref: '#/components/schemas/AnthropicTextBlockParam'
+ type: array
+ source:
type: string
- enum:
- - web_search_preview_2025_03_11
- search_context_size:
- $ref: '#/components/schemas/SearchContextSizeEnum'
- user_location:
- $ref: '#/components/schemas/Preview_WebSearchUserLocation'
- engine:
+ title:
type: string
+ type:
enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl
- (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
- Parallel engines; ignored with native provider search.
- example: 5
- filters:
- type: object
- nullable: true
- properties:
- allowed_domains:
- type: array
- nullable: true
- items:
- type: string
- excluded_domains:
- type: array
- nullable: true
- items:
- type: string
+ - search_result
+ type: string
required:
- type
- description: Web search preview tool configuration (2025-03-11 version)
- example:
- type: web_search_preview_2025_03_11
- WebSearchUserLocation:
+ - source
+ - title
+ - content
type: object
+ AnthropicServerToolErrorCode:
+ enum:
+ - invalid_tool_input
+ - unavailable
+ - too_many_requests
+ - execution_time_exceeded
+ example: unavailable
+ type: string
+ AnthropicServerToolName:
+ enum:
+ - web_search
+ - web_fetch
+ - code_execution
+ - bash_code_execution
+ - text_editor_code_execution
+ - tool_search_tool_regex
+ - tool_search_tool_bm25
+ example: web_search
+ type: string
+ AnthropicServerToolUsage:
+ example:
+ web_fetch_requests: 0
+ web_search_requests: 1
nullable: true
properties:
- type:
+ web_fetch_requests:
+ type: integer
+ web_search_requests:
+ type: integer
+ required:
+ - web_search_requests
+ - web_fetch_requests
+ type: object
+ AnthropicServerToolUseBlock:
+ example:
+ caller:
+ type: direct
+ id: srvtoolu_01abc
+ input:
+ query: latest news
+ name: web_search
+ type: server_tool_use
+ properties:
+ caller:
+ $ref: '#/components/schemas/AnthropicCaller'
+ id:
type: string
+ input:
+ nullable: true
+ name:
+ $ref: '#/components/schemas/AnthropicServerToolName'
+ type:
enum:
- - approximate
- city:
+ - server_tool_use
type: string
+ required:
+ - type
+ - id
+ - caller
+ - name
+ type: object
+ AnthropicServiceTier:
+ enum:
+ - standard
+ - priority
+ - batch
+ - null
+ example: standard
+ nullable: true
+ type: string
+ AnthropicSpeed:
+ enum:
+ - fast
+ - standard
+ - null
+ example: standard
+ nullable: true
+ type: string
+ AnthropicTextBlock:
+ example:
+ citations: null
+ text: Hello, world!
+ type: text
+ properties:
+ citations:
+ items:
+ $ref: '#/components/schemas/AnthropicTextCitation'
nullable: true
- country:
+ type: array
+ text:
type: string
- nullable: true
- region:
+ type:
+ enum:
+ - text
type: string
+ required:
+ - type
+ - text
+ - citations
+ type: object
+ AnthropicTextBlockParam:
+ example:
+ text: Hello, world!
+ type: text
+ properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ citations:
+ items:
+ discriminator:
+ mapping:
+ char_location: '#/components/schemas/AnthropicCitationCharLocationParam'
+ content_block_location: '#/components/schemas/AnthropicCitationContentBlockLocationParam'
+ page_location: '#/components/schemas/AnthropicCitationPageLocationParam'
+ search_result_location: '#/components/schemas/AnthropicCitationSearchResultLocation'
+ web_search_result_location: '#/components/schemas/AnthropicCitationWebSearchResultLocation'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicCitationCharLocationParam'
+ - $ref: '#/components/schemas/AnthropicCitationPageLocationParam'
+ - $ref: '#/components/schemas/AnthropicCitationContentBlockLocationParam'
+ - $ref: '#/components/schemas/AnthropicCitationWebSearchResultLocation'
+ - $ref: '#/components/schemas/AnthropicCitationSearchResultLocation'
nullable: true
- timezone:
+ type: array
+ text:
type: string
- nullable: true
- description: User location information for web search
- example:
- type: approximate
- city: San Francisco
- country: USA
- region: California
- timezone: America/Los_Angeles
- Legacy_WebSearchServerTool:
+ type:
+ enum:
+ - text
+ type: string
+ required:
+ - type
+ - text
type: object
+ AnthropicTextCitation:
+ discriminator:
+ mapping:
+ char_location: '#/components/schemas/AnthropicCitationCharLocation'
+ content_block_location: '#/components/schemas/AnthropicCitationContentBlockLocation'
+ page_location: '#/components/schemas/AnthropicCitationPageLocation'
+ search_result_location: '#/components/schemas/AnthropicCitationSearchResultLocation'
+ web_search_result_location: '#/components/schemas/AnthropicCitationWebSearchResultLocation'
+ propertyName: type
+ example:
+ cited_text: Example text
+ document_index: 0
+ document_title: null
+ end_char_index: 10
+ file_id: null
+ start_char_index: 0
+ type: char_location
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicCitationCharLocation'
+ - $ref: '#/components/schemas/AnthropicCitationPageLocation'
+ - $ref: '#/components/schemas/AnthropicCitationContentBlockLocation'
+ - $ref: '#/components/schemas/AnthropicCitationWebSearchResultLocation'
+ - $ref: '#/components/schemas/AnthropicCitationSearchResultLocation'
+ AnthropicTextEditorCodeExecutionContent:
+ discriminator:
+ mapping:
+ text_editor_code_execution_create_result: '#/components/schemas/AnthropicTextEditorCodeExecutionCreateResult'
+ text_editor_code_execution_str_replace_result: '#/components/schemas/AnthropicTextEditorCodeExecutionStrReplaceResult'
+ text_editor_code_execution_tool_result_error: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResultError'
+ text_editor_code_execution_view_result: '#/components/schemas/AnthropicTextEditorCodeExecutionViewResult'
+ propertyName: type
+ example:
+ content: file content
+ file_type: text
+ num_lines: 10
+ start_line: 1
+ total_lines: 10
+ type: text_editor_code_execution_view_result
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResultError'
+ - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionViewResult'
+ - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionCreateResult'
+ - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionStrReplaceResult'
+ AnthropicTextEditorCodeExecutionCreateResult:
+ example:
+ is_file_update: false
+ type: text_editor_code_execution_create_result
properties:
+ is_file_update:
+ type: boolean
type:
- type: string
enum:
- - web_search
- filters:
- type: object
- nullable: true
- properties:
- allowed_domains:
- type: array
- nullable: true
- items:
- type: string
- excluded_domains:
- type: array
- nullable: true
- items:
- type: string
- search_context_size:
- $ref: '#/components/schemas/SearchContextSizeEnum'
- user_location:
- $ref: '#/components/schemas/WebSearchUserLocation'
- engine:
+ - text_editor_code_execution_create_result
type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl
- (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
- Parallel engines; ignored with native provider search.
- example: 5
required:
+ - is_file_update
- type
- description: Web search tool configuration
- example:
- type: web_search
- engine: auto
- filters:
- allowed_domains:
- - example.com
- WebSearchServerTool:
type: object
+ AnthropicTextEditorCodeExecutionStrReplaceResult:
+ example:
+ lines: null
+ new_lines: null
+ new_start: null
+ old_lines: null
+ old_start: null
+ type: text_editor_code_execution_str_replace_result
properties:
+ lines:
+ items:
+ type: string
+ nullable: true
+ type: array
+ new_lines:
+ type: integer
+ new_start:
+ type: integer
+ old_lines:
+ type: integer
+ old_start:
+ type: integer
type:
- type: string
enum:
- - web_search_2025_08_26
- filters:
- type: object
- nullable: true
- properties:
- allowed_domains:
- type: array
- nullable: true
- items:
- type: string
- excluded_domains:
- type: array
- nullable: true
- items:
- type: string
- search_context_size:
- $ref: '#/components/schemas/SearchContextSizeEnum'
- user_location:
- $ref: '#/components/schemas/WebSearchUserLocation'
- engine:
+ - text_editor_code_execution_str_replace_result
type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl
- (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
- Parallel engines; ignored with native provider search.
- example: 5
required:
+ - lines
+ - new_lines
+ - new_start
+ - old_lines
+ - old_start
- type
- description: Web search tool configuration (2025-08-26 version)
- example:
- type: web_search_2025_08_26
- engine: auto
- filters:
- allowed_domains:
- - example.com
- CompoundFilter:
type: object
+ AnthropicTextEditorCodeExecutionToolResult:
+ example:
+ content:
+ content: file content
+ file_type: text
+ num_lines: 10
+ start_line: 1
+ total_lines: 10
+ type: text_editor_code_execution_view_result
+ tool_use_id: srvtoolu_01abc
+ type: text_editor_code_execution_tool_result
properties:
- type:
+ content:
+ $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionContent'
+ tool_use_id:
type: string
+ type:
enum:
- - and
- - or
- filters:
- type: array
- items:
- type: object
- additionalProperties:
- nullable: true
+ - text_editor_code_execution_tool_result
+ type: string
required:
- type
- - filters
- description: A compound filter that combines multiple comparison or compound filters
- FileSearchServerTool:
+ - content
+ - tool_use_id
type: object
+ AnthropicTextEditorCodeExecutionToolResultError:
+ example:
+ error_code: unavailable
+ error_message: null
+ type: text_editor_code_execution_tool_result_error
properties:
- type:
+ error_code:
+ enum:
+ - invalid_tool_input
+ - unavailable
+ - too_many_requests
+ - execution_time_exceeded
+ - file_not_found
+ type: string
+ error_message:
+ nullable: true
type: string
+ type:
enum:
- - file_search
- vector_store_ids:
- type: array
- items:
- type: string
- filters:
- anyOf:
- - type: object
- properties:
- key:
- type: string
- type:
- type: string
- enum:
- - eq
- - ne
- - gt
- - gte
- - lt
- - lte
- value:
- anyOf:
- - type: string
- - type: number
- - type: boolean
- - type: array
- items:
- anyOf:
- - type: string
- - type: number
- required:
- - key
- - type
- - value
- - $ref: '#/components/schemas/CompoundFilter'
- - nullable: true
- max_num_results:
- type: integer
- minimum: 1
- maximum: 50
- ranking_options:
- type: object
- properties:
- ranker:
- type: string
- enum:
- - auto
- - default-2024-11-15
- score_threshold:
- type: number
+ - text_editor_code_execution_tool_result_error
+ type: string
required:
+ - error_code
+ - error_message
- type
- - vector_store_ids
- description: File search tool configuration
- example:
- type: file_search
- vector_store_ids:
- - vs_abc123
- ComputerUseServerTool:
type: object
+ AnthropicTextEditorCodeExecutionViewResult:
+ example:
+ content: file content
+ file_type: text
+ num_lines: 10
+ start_line: 1
+ total_lines: 10
+ type: text_editor_code_execution_view_result
properties:
- type:
+ content:
type: string
+ file_type:
enum:
- - computer_use_preview
- display_height:
- type: number
- display_width:
- type: number
- environment:
+ - text
+ - image
+ - pdf
type: string
+ num_lines:
+ type: integer
+ start_line:
+ type: integer
+ total_lines:
+ type: integer
+ type:
enum:
- - windows
- - mac
- - linux
- - ubuntu
- - browser
+ - text_editor_code_execution_view_result
+ type: string
required:
+ - content
+ - file_type
+ - num_lines
+ - start_line
+ - total_lines
- type
- - display_height
- - display_width
- - environment
- description: Computer use preview tool configuration
- example:
- type: computer_use_preview
- display_height: 768
- display_width: 1024
- environment: linux
- CodeInterpreterServerTool:
type: object
+ AnthropicThinkingBlock:
+ example:
+ signature: sig_abc123
+ thinking: Let me think about this...
+ type: thinking
properties:
- type:
+ signature:
+ type: string
+ thinking:
type: string
+ type:
enum:
- - code_interpreter
- container:
- anyOf:
- - type: string
- - type: object
- properties:
- type:
- type: string
- enum:
- - auto
- file_ids:
- type: array
- items:
- type: string
- memory_limit:
- type: string
- nullable: true
- enum:
- - 1g
- - 4g
- - 16g
- - 64g
- required:
- - type
+ - thinking
+ type: string
required:
- type
- - container
- description: Code interpreter tool configuration
- example:
- type: code_interpreter
- container: auto
- McpServerTool:
+ - thinking
+ - signature
type: object
+ AnthropicThinkingTurns:
+ example:
+ type: thinking_turns
+ value: 3
properties:
type:
- type: string
enum:
- - mcp
- server_label:
+ - thinking_turns
type: string
- allowed_tools:
- anyOf:
- - type: array
- items:
- type: string
- - type: object
- properties:
- tool_names:
- type: array
- items:
- type: string
- read_only:
- type: boolean
- - nullable: true
- - nullable: true
- authorization:
+ value:
+ type: integer
+ required:
+ - type
+ - value
+ type: object
+ AnthropicToolReference:
+ example:
+ tool_name: my_tool
+ type: tool_reference
+ properties:
+ tool_name:
type: string
- connector_id:
+ type:
+ enum:
+ - tool_reference
type: string
+ required:
+ - tool_name
+ - type
+ type: object
+ AnthropicToolSearchContent:
+ discriminator:
+ mapping:
+ tool_search_tool_result_error: '#/components/schemas/AnthropicToolSearchResultError'
+ tool_search_tool_search_result: '#/components/schemas/AnthropicToolSearchResult'
+ propertyName: type
+ example:
+ tool_references:
+ - tool_name: my_tool
+ type: tool_reference
+ type: tool_search_tool_search_result
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicToolSearchResultError'
+ - $ref: '#/components/schemas/AnthropicToolSearchResult'
+ AnthropicToolSearchResult:
+ example:
+ tool_references:
+ - tool_name: my_tool
+ type: tool_reference
+ type: tool_search_tool_search_result
+ properties:
+ tool_references:
+ items:
+ $ref: '#/components/schemas/AnthropicToolReference'
+ type: array
+ type:
enum:
- - connector_dropbox
- - connector_gmail
- - connector_googlecalendar
- - connector_googledrive
- - connector_microsoftteams
- - connector_outlookcalendar
- - connector_outlookemail
- - connector_sharepoint
- headers:
- type: object
+ - tool_search_tool_search_result
+ type: string
+ required:
+ - tool_references
+ - type
+ type: object
+ AnthropicToolSearchResultError:
+ example:
+ error_code: unavailable
+ error_message: null
+ type: tool_search_tool_result_error
+ properties:
+ error_code:
+ $ref: '#/components/schemas/AnthropicServerToolErrorCode'
+ error_message:
nullable: true
- additionalProperties:
- type: string
- require_approval:
- anyOf:
- - type: object
- properties:
- never:
- type: object
- properties:
- tool_names:
- type: array
- items:
- type: string
- always:
- type: object
- properties:
- tool_names:
- type: array
- items:
- type: string
- - type: string
- enum:
- - always
- - type: string
- enum:
- - never
- - nullable: true
- - nullable: true
- server_description:
type: string
- server_url:
+ type:
+ enum:
+ - tool_search_tool_result_error
type: string
required:
+ - error_code
+ - error_message
- type
- - server_label
- description: MCP (Model Context Protocol) tool configuration
- example:
- type: mcp
- server_label: my-server
- server_url: https://example.com/mcp
- ImageGenerationServerTool:
type: object
+ AnthropicToolSearchToolResult:
+ example:
+ content:
+ tool_references:
+ - tool_name: my_tool
+ type: tool_reference
+ type: tool_search_tool_search_result
+ tool_use_id: srvtoolu_01abc
+ type: tool_search_tool_result
properties:
- type:
+ content:
+ $ref: '#/components/schemas/AnthropicToolSearchContent'
+ tool_use_id:
type: string
+ type:
enum:
- - image_generation
- background:
+ - tool_search_tool_result
type: string
- enum:
- - transparent
- - opaque
- - auto
- input_fidelity:
+ required:
+ - type
+ - content
+ - tool_use_id
+ type: object
+ AnthropicToolUseBlock:
+ example:
+ caller:
+ type: direct
+ id: toolu_01abc
+ input:
+ location: San Francisco
+ name: get_weather
+ type: tool_use
+ properties:
+ caller:
+ $ref: '#/components/schemas/AnthropicCaller'
+ id:
type: string
+ input:
nullable: true
- enum:
- - high
- - low
- input_image_mask:
- type: object
- properties:
- image_url:
- type: string
- file_id:
- type: string
- model:
+ name:
type: string
+ type:
enum:
- - gpt-image-1
- - gpt-image-1-mini
- moderation:
+ - tool_use
type: string
+ required:
+ - type
+ - id
+ - caller
+ - name
+ type: object
+ AnthropicToolUsesKeep:
+ example:
+ type: tool_uses
+ value: 5
+ properties:
+ type:
enum:
- - auto
- - low
- output_compression:
- type: number
- output_format:
- type: string
- enum:
- - png
- - webp
- - jpeg
- partial_images:
- type: number
- quality:
- type: string
- enum:
- - low
- - medium
- - high
- - auto
- size:
+ - tool_uses
type: string
- enum:
- - 1024x1024
- - 1024x1536
- - 1536x1024
- - auto
+ value:
+ type: integer
required:
- type
- description: Image generation tool configuration
- example:
- type: image_generation
- quality: high
- CodexLocalShellTool:
+ - value
type: object
+ AnthropicToolUsesTrigger:
+ example:
+ type: tool_uses
+ value: 10
properties:
type:
- type: string
enum:
- - local_shell
+ - tool_uses
+ type: string
+ value:
+ type: integer
required:
- type
- description: Local shell tool configuration
- example:
- type: local_shell
- ShellServerTool:
+ - value
type: object
+ AnthropicUnknownUsageIteration:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicBaseUsageIteration'
+ - properties:
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ example:
+ cache_creation: null
+ cache_creation_input_tokens: 0
+ cache_read_input_tokens: 0
+ input_tokens: 100
+ output_tokens: 50
+ type: unknown
+ AnthropicUrlImageSource:
+ example:
+ type: url
+ url: https://example.com/image.jpg
properties:
type:
- type: string
enum:
- - shell
+ - url
+ type: string
+ url:
+ type: string
required:
- type
- description: Shell tool configuration
- example:
- type: shell
- ApplyPatchServerTool:
+ - url
type: object
+ AnthropicUrlPdfSource:
+ example:
+ type: url
+ url: https://example.com/document.pdf
properties:
type:
- type: string
enum:
- - apply_patch
+ - url
+ type: string
+ url:
+ type: string
required:
- type
- description: Apply patch tool configuration
+ - url
+ type: object
+ AnthropicUsage:
example:
- type: apply_patch
- CustomTool:
+ cache_creation: null
+ cache_creation_input_tokens: null
+ cache_read_input_tokens: null
+ inference_geo: null
+ input_tokens: 100
+ output_tokens: 50
+ server_tool_use: null
+ service_tier: standard
+ properties:
+ cache_creation:
+ $ref: '#/components/schemas/AnthropicCacheCreation'
+ cache_creation_input_tokens:
+ type: integer
+ cache_read_input_tokens:
+ type: integer
+ inference_geo:
+ nullable: true
+ type: string
+ input_tokens:
+ type: integer
+ output_tokens:
+ type: integer
+ server_tool_use:
+ $ref: '#/components/schemas/AnthropicServerToolUsage'
+ service_tier:
+ $ref: '#/components/schemas/AnthropicServiceTier'
+ required:
+ - input_tokens
+ - output_tokens
+ - cache_creation_input_tokens
+ - cache_read_input_tokens
+ - cache_creation
+ - inference_geo
+ - server_tool_use
+ - service_tier
type: object
+ AnthropicUsageIteration:
+ anyOf:
+ - $ref: '#/components/schemas/AnthropicCompactionUsageIteration'
+ - $ref: '#/components/schemas/AnthropicMessageUsageIteration'
+ - $ref: '#/components/schemas/AnthropicUnknownUsageIteration'
+ example:
+ cache_creation: null
+ cache_creation_input_tokens: 0
+ cache_read_input_tokens: 0
+ input_tokens: 100
+ output_tokens: 50
+ type: message
+ AnthropicWebFetchBlock:
+ example:
+ content:
+ citations: null
+ source:
+ data: ''
+ media_type: text/plain
+ type: text
+ title: null
+ type: document
+ retrieved_at: null
+ type: web_fetch_result
+ url: https://example.com
properties:
- type:
+ content:
+ $ref: '#/components/schemas/AnthropicDocumentBlock'
+ retrieved_at:
+ nullable: true
type: string
+ type:
enum:
- - custom
- name:
+ - web_fetch_result
type: string
- description:
+ url:
type: string
- format:
- anyOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - grammar
- definition:
- type: string
- syntax:
- type: string
- enum:
- - lark
- - regex
- required:
- - type
- - definition
- - syntax
required:
+ - content
+ - retrieved_at
- type
- - name
- description: Custom tool configuration
- example:
- type: custom
- name: my_tool
- OpenAIResponsesToolChoice:
- anyOf:
- - type: string
- enum:
- - auto
- - type: string
- enum:
- - none
- - type: string
- enum:
- - required
- - type: object
- properties:
- type:
- type: string
- enum:
- - function
- name:
- type: string
- required:
- - type
- - name
- - type: object
- properties:
- type:
- anyOf:
- - type: string
- enum:
- - web_search_preview_2025_03_11
- - type: string
- enum:
- - web_search_preview
- required:
- - type
- StoredPromptTemplate:
+ - url
type: object
- nullable: true
+ AnthropicWebFetchContent:
+ discriminator:
+ mapping:
+ web_fetch_result: '#/components/schemas/AnthropicWebFetchBlock'
+ web_fetch_tool_result_error: '#/components/schemas/AnthropicWebFetchToolResultError'
+ propertyName: type
+ example:
+ content:
+ citations: null
+ source:
+ data: ''
+ media_type: text/plain
+ type: text
+ title: null
+ type: document
+ retrieved_at: null
+ type: web_fetch_result
+ url: https://example.com
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicWebFetchToolResultError'
+ - $ref: '#/components/schemas/AnthropicWebFetchBlock'
+ AnthropicWebFetchToolResult:
+ example:
+ caller:
+ type: direct
+ content:
+ content:
+ citations: null
+ source:
+ data: ''
+ media_type: text/plain
+ type: text
+ title: null
+ type: document
+ retrieved_at: null
+ type: web_fetch_result
+ url: https://example.com
+ tool_use_id: srvtoolu_01abc
+ type: web_fetch_tool_result
properties:
- id:
+ caller:
+ $ref: '#/components/schemas/AnthropicCaller'
+ content:
+ $ref: '#/components/schemas/AnthropicWebFetchContent'
+ tool_use_id:
type: string
- variables:
- type: object
- nullable: true
- additionalProperties:
- anyOf:
- - type: string
- - $ref: '#/components/schemas/InputText'
- - $ref: '#/components/schemas/InputImage'
- - $ref: '#/components/schemas/InputFile'
- required:
- - id
- ReasoningEffortEnum:
- type: string
- nullable: true
- enum:
- - xhigh
- - high
- - medium
- - low
- - minimal
- - none
- ReasoningSummaryVerbosityEnum:
- type: string
- nullable: true
- enum:
- - auto
- - concise
- - detailed
- example: auto
- BaseReasoningConfig:
- type: object
- nullable: true
- properties:
- effort:
- $ref: '#/components/schemas/ReasoningEffortEnum'
- summary:
- $ref: '#/components/schemas/ReasoningSummaryVerbosityEnum'
- TruncationEnum:
- type: string
- nullable: true
- enum:
- - auto
- - disabled
- FormatTextConfig:
- type: object
- properties:
type:
- type: string
enum:
- - text
+ - web_fetch_tool_result
+ type: string
required:
- type
- description: Plain text response format
- example:
- type: text
- FormatJsonObjectConfig:
+ - caller
+ - content
+ - tool_use_id
type: object
+ AnthropicWebFetchToolResultError:
+ example:
+ error_code: unavailable
+ type: web_fetch_tool_result_error
properties:
- type:
+ error_code:
+ enum:
+ - invalid_tool_input
+ - url_too_long
+ - url_not_allowed
+ - url_not_accessible
+ - unsupported_content_type
+ - too_many_requests
+ - max_uses_exceeded
+ - unavailable
type: string
+ type:
enum:
- - json_object
+ - web_fetch_tool_result_error
+ type: string
required:
- type
- description: JSON object response format
- example:
- type: json_object
- FormatJsonSchemaConfig:
+ - error_code
type: object
+ AnthropicWebSearchResult:
+ example:
+ encrypted_content: enc_content_0
+ page_age: null
+ title: Example Page
+ type: web_search_result
+ url: https://example.com
properties:
- type:
+ encrypted_content:
+ type: string
+ page_age:
+ nullable: true
+ type: string
+ title:
type: string
+ type:
enum:
- - json_schema
- name:
+ - web_search_result
type: string
- description:
+ url:
type: string
- strict:
- type: boolean
- nullable: true
- schema:
- type: object
- additionalProperties:
- nullable: true
required:
- type
- - name
- - schema
- description: JSON schema constrained response format
- example:
- type: json_schema
- name: user_info
- description: User information schema
- schema:
- type: object
- properties:
- name:
- type: string
- age:
- type: number
- required:
- - name
- Formats:
- anyOf:
- - $ref: '#/components/schemas/FormatTextConfig'
- - $ref: '#/components/schemas/FormatJsonObjectConfig'
- - $ref: '#/components/schemas/FormatJsonSchemaConfig'
- description: Text response format configuration
- example:
- type: text
- TextConfig:
+ - encrypted_content
+ - page_age
+ - title
+ - url
type: object
+ AnthropicWebSearchResultBlockParam:
+ example:
+ encrypted_content: enc_content_0
+ title: Example Page
+ type: web_search_result
+ url: https://example.com
properties:
- format:
- $ref: '#/components/schemas/Formats'
- verbosity:
+ encrypted_content:
type: string
+ page_age:
nullable: true
+ type: string
+ title:
+ type: string
+ type:
enum:
- - high
- - low
- - medium
- description: Text output configuration including format and verbosity
- example:
- format:
- type: text
- verbosity: medium
- ServiceTierEnum:
- type: string
- nullable: true
- enum:
- - auto
- - default
- - flex
- - priority
- - scale
- BaseResponsesResult:
+ - web_search_result
+ type: string
+ url:
+ type: string
+ required:
+ - type
+ - encrypted_content
+ - title
+ - url
type: object
+ AnthropicWebSearchToolResult:
+ example:
+ caller:
+ type: direct
+ content: []
+ tool_use_id: srvtoolu_01abc
+ type: web_search_tool_result
properties:
- id:
+ caller:
+ $ref: '#/components/schemas/AnthropicCaller'
+ content:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/AnthropicWebSearchResult'
+ type: array
+ - $ref: '#/components/schemas/AnthropicWebSearchToolResultError'
+ tool_use_id:
type: string
- object:
+ type:
+ enum:
+ - web_search_tool_result
type: string
+ required:
+ - type
+ - caller
+ - tool_use_id
+ - content
+ type: object
+ AnthropicWebSearchToolResultError:
+ example:
+ error_code: unavailable
+ type: web_search_tool_result_error
+ properties:
+ error_code:
enum:
- - response
- created_at:
- type: number
- model:
+ - invalid_tool_input
+ - unavailable
+ - max_uses_exceeded
+ - too_many_requests
+ - query_too_long
+ - request_too_large
type: string
- status:
- $ref: '#/components/schemas/OpenAIResponsesResponseStatus'
- completed_at:
- type: number
- nullable: true
- output:
- type: array
- items:
- oneOf:
- - $ref: '#/components/schemas/OutputMessage'
- - $ref: '#/components/schemas/OutputItemReasoning'
- - $ref: '#/components/schemas/OutputItemFunctionCall'
- - $ref: '#/components/schemas/OutputItemWebSearchCall'
- - $ref: '#/components/schemas/OutputItemFileSearchCall'
- - $ref: '#/components/schemas/OutputItemImageGenerationCall'
- discriminator:
- propertyName: type
- mapping:
- message: '#/components/schemas/OutputMessage'
- reasoning: '#/components/schemas/OutputItemReasoning'
- function_call: '#/components/schemas/OutputItemFunctionCall'
- web_search_call: '#/components/schemas/OutputItemWebSearchCall'
- file_search_call: '#/components/schemas/OutputItemFileSearchCall'
- image_generation_call: '#/components/schemas/OutputItemImageGenerationCall'
- user:
+ type:
+ enum:
+ - web_search_tool_result_error
type: string
+ required:
+ - type
+ - error_code
+ type: object
+ AnthropicWebSearchToolUserLocation:
+ example:
+ city: San Francisco
+ country: US
+ region: California
+ timezone: America/Los_Angeles
+ type: approximate
+ nullable: true
+ properties:
+ city:
nullable: true
- output_text:
- type: string
- prompt_cache_key:
type: string
+ country:
nullable: true
- safety_identifier:
type: string
+ region:
nullable: true
- error:
- $ref: '#/components/schemas/ResponsesErrorField'
- incomplete_details:
- $ref: '#/components/schemas/IncompleteDetails'
- usage:
- $ref: '#/components/schemas/OpenAIResponsesUsage'
- max_tool_calls:
- type: number
- nullable: true
- top_logprobs:
- type: number
- max_output_tokens:
- type: number
- nullable: true
- temperature:
- type: number
- nullable: true
- top_p:
- type: number
- nullable: true
- presence_penalty:
- type: number
- nullable: true
- frequency_penalty:
- type: number
+ type: string
+ timezone:
nullable: true
- instructions:
- $ref: '#/components/schemas/BaseInputs'
- metadata:
- $ref: '#/components/schemas/RequestMetadata'
- tools:
- type: array
+ type: string
+ type:
+ enum:
+ - approximate
+ type: string
+ required:
+ - type
+ type: object
+ ApplyPatchServerTool:
+ description: Apply patch tool configuration
+ example:
+ type: apply_patch
+ properties:
+ type:
+ enum:
+ - apply_patch
+ type: string
+ required:
+ - type
+ type: object
+ AutoRouterPlugin:
+ example:
+ allowed_models:
+ - anthropic/*
+ - openai/gpt-4o
+ enabled: true
+ id: auto-router
+ properties:
+ allowed_models:
+ description: >-
+ List of model patterns to filter which models the auto-router can route between. Supports wildcards (e.g.,
+ "anthropic/*" matches all Anthropic models). When not specified, uses the default supported models list.
+ example:
+ - anthropic/*
+ - openai/gpt-4o
+ - google/*
items:
- oneOf:
- - allOf:
- - $ref: '#/components/schemas/FunctionTool'
- - type: object
- properties: {}
- description: Function tool definition
- example:
- type: function
- name: get_weather
- description: Get the current weather in a location
- parameters:
- type: object
- properties:
- location:
- type: string
- description: The city and state
- unit:
- type: string
- enum:
- - celsius
- - fahrenheit
- required:
- - location
- - $ref: '#/components/schemas/Preview_WebSearchServerTool'
- - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool'
- - $ref: '#/components/schemas/Legacy_WebSearchServerTool'
- - $ref: '#/components/schemas/WebSearchServerTool'
- - $ref: '#/components/schemas/FileSearchServerTool'
- - $ref: '#/components/schemas/ComputerUseServerTool'
- - $ref: '#/components/schemas/CodeInterpreterServerTool'
- - $ref: '#/components/schemas/McpServerTool'
- - $ref: '#/components/schemas/ImageGenerationServerTool'
- - $ref: '#/components/schemas/CodexLocalShellTool'
- - $ref: '#/components/schemas/ShellServerTool'
- - $ref: '#/components/schemas/ApplyPatchServerTool'
- - $ref: '#/components/schemas/CustomTool'
- tool_choice:
- $ref: '#/components/schemas/OpenAIResponsesToolChoice'
- parallel_tool_calls:
- type: boolean
- prompt:
- $ref: '#/components/schemas/StoredPromptTemplate'
- background:
+ type: string
+ type: array
+ enabled:
+ description: Set to false to disable the auto-router plugin for this request. Defaults to true.
type: boolean
- nullable: true
- previous_response_id:
+ id:
+ enum:
+ - auto-router
type: string
- nullable: true
- reasoning:
- $ref: '#/components/schemas/BaseReasoningConfig'
- service_tier:
- $ref: '#/components/schemas/ServiceTierEnum'
- store:
- type: boolean
- truncation:
- $ref: '#/components/schemas/TruncationEnum'
- text:
- $ref: '#/components/schemas/TextConfig'
required:
- id
- - object
- - created_at
- - model
- - status
- - completed_at
- - output
+ type: object
+ BadGatewayResponse:
+ description: Bad Gateway - Provider/upstream API failure
+ example:
+ error:
+ code: 502
+ message: Provider returned error
+ properties:
+ error:
+ $ref: '#/components/schemas/BadGatewayResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
- error
- - incomplete_details
- - temperature
- - top_p
- - presence_penalty
- - frequency_penalty
- - instructions
- - metadata
- - tools
- - tool_choice
- - parallel_tool_calls
- OpenResponsesResult:
- allOf:
- - $ref: '#/components/schemas/BaseResponsesResult'
- - type: object
- properties:
- output:
- type: array
- items:
- $ref: '#/components/schemas/OutputItems'
- usage:
- $ref: '#/components/schemas/Usage'
- service_tier:
- type: string
- nullable: true
- description: Complete non-streaming response from the Responses API
+ type: object
+ BadGatewayResponseErrorData:
+ description: Error data for BadGatewayResponse
example:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: completed
- output:
- - type: message
- id: msg-abc123
- status: completed
- role: assistant
- content:
- - type: output_text
- text: Hello! How can I help you today?
- annotations: []
- usage:
- input_tokens: 10
- output_tokens: 25
- total_tokens: 35
- input_tokens_details:
- cached_tokens: 0
- output_tokens_details:
- reasoning_tokens: 0
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- temperature: null
- top_p: null
- max_output_tokens: null
- metadata: null
- instructions: null
- CreatedEvent:
+ code: 502
+ message: Provider returned error
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
type: object
+ BadRequestResponse:
+ description: Bad Request - Invalid request parameters or malformed input
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
properties:
- type:
+ error:
+ $ref: '#/components/schemas/BadRequestResponseErrorData'
+ user_id:
+ nullable: true
type: string
- enum:
- - response.created
- response:
- $ref: '#/components/schemas/BaseResponsesResult'
- sequence_number:
- type: number
required:
- - type
- - response
- - sequence_number
- description: Event emitted when a response is created
+ - error
+ type: object
+ BadRequestResponseErrorData:
+ description: Error data for BadRequestResponse
example:
- type: response.created
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: in_progress
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 0
- InProgressEvent:
+ code: 400
+ message: Invalid request parameters
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
type: object
+ BaseAnnotationAddedEvent:
+ description: Event emitted when a text annotation is added to output
+ example:
+ annotation:
+ end_index: 7
+ start_index: 0
+ title: Example
+ type: url_citation
+ url: https://example.com
+ annotation_index: 0
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ sequence_number: 5
+ type: response.output_text.annotation.added
properties:
- type:
+ annotation:
+ $ref: '#/components/schemas/OpenAIResponsesAnnotation'
+ annotation_index:
+ type: integer
+ content_index:
+ type: integer
+ item_id:
type: string
- enum:
- - response.in_progress
- response:
- $ref: '#/components/schemas/BaseResponsesResult'
+ output_index:
+ type: integer
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - response.output_text.annotation.added
+ type: string
required:
- type
- - response
+ - output_index
+ - item_id
+ - content_index
- sequence_number
- description: Event emitted when a response is in progress
- example:
- type: response.in_progress
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: in_progress
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 1
- CompletedEvent:
+ - annotation_index
+ - annotation
type: object
+ BaseContentPartAddedEvent:
+ description: Event emitted when a new content part is added to an output item
+ example:
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ part:
+ annotations: []
+ text: ''
+ type: output_text
+ sequence_number: 3
+ type: response.content_part.added
properties:
- type:
+ content_index:
+ type: integer
+ item_id:
type: string
- enum:
- - response.completed
- response:
- $ref: '#/components/schemas/BaseResponsesResult'
+ output_index:
+ type: integer
+ part:
+ anyOf:
+ - $ref: '#/components/schemas/ResponseOutputText'
+ - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - response.content_part.added
+ type: string
required:
- type
- - response
+ - output_index
+ - item_id
+ - content_index
+ - part
- sequence_number
- description: Event emitted when a response has completed successfully
- example:
- type: response.completed
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: completed
- output:
- - id: item-1
- type: message
- status: completed
- role: assistant
- content:
- - type: output_text
- text: Hello! How can I help you?
- annotations: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 10
- IncompleteEvent:
type: object
- properties:
- type:
- type: string
- enum:
- - response.incomplete
- response:
- $ref: '#/components/schemas/BaseResponsesResult'
- sequence_number:
- type: number
- required:
- - type
- - response
- - sequence_number
- description: Event emitted when a response is incomplete
+ BaseContentPartDoneEvent:
+ description: Event emitted when a content part is complete
example:
- type: response.incomplete
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: incomplete
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 5
- FailedEvent:
- type: object
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ part:
+ annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ sequence_number: 7
+ type: response.content_part.done
properties:
- type:
+ content_index:
+ type: integer
+ item_id:
type: string
- enum:
- - response.failed
- response:
- $ref: '#/components/schemas/BaseResponsesResult'
+ output_index:
+ type: integer
+ part:
+ anyOf:
+ - $ref: '#/components/schemas/ResponseOutputText'
+ - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
sequence_number:
- type: number
- required:
- - type
- - response
- - sequence_number
- description: Event emitted when a response has failed
- example:
- type: response.failed
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: failed
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 3
- BaseErrorEvent:
- type: object
- properties:
+ type: integer
type:
- type: string
enum:
- - error
- code:
- type: string
- nullable: true
- message:
- type: string
- param:
+ - response.content_part.done
type: string
- nullable: true
- sequence_number:
- type: number
required:
- type
- - code
- - message
- - param
+ - output_index
+ - item_id
+ - content_index
+ - part
- sequence_number
+ type: object
+ BaseErrorEvent:
description: Event emitted when an error occurs during streaming
example:
- type: error
code: rate_limit_exceeded
message: Rate limit exceeded. Please try again later.
param: null
sequence_number: 2
- ErrorEvent:
- allOf:
- - $ref: '#/components/schemas/BaseErrorEvent'
- - type: object
- properties: {}
- description: Event emitted when an error occurs during streaming
- example:
type: error
- code: rate_limit_exceeded
- message: Rate limit exceeded. Please try again later.
- param: null
- sequence_number: 2
- OutputItemAddedEvent:
- type: object
properties:
- type:
+ code:
+ nullable: true
+ type: string
+ message:
+ type: string
+ param:
+ nullable: true
type: string
- enum:
- - response.output_item.added
- output_index:
- type: number
- item:
- oneOf:
- - $ref: '#/components/schemas/OutputMessage'
- - $ref: '#/components/schemas/OutputItemReasoning'
- - $ref: '#/components/schemas/OutputItemFunctionCall'
- - $ref: '#/components/schemas/OutputItemWebSearchCall'
- - $ref: '#/components/schemas/OutputItemFileSearchCall'
- - $ref: '#/components/schemas/OutputItemImageGenerationCall'
- discriminator:
- propertyName: type
- mapping:
- message: '#/components/schemas/OutputMessage'
- reasoning: '#/components/schemas/OutputItemReasoning'
- function_call: '#/components/schemas/OutputItemFunctionCall'
- web_search_call: '#/components/schemas/OutputItemWebSearchCall'
- file_search_call: '#/components/schemas/OutputItemFileSearchCall'
- image_generation_call: '#/components/schemas/OutputItemImageGenerationCall'
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - error
+ type: string
required:
- type
- - output_index
- - item
+ - code
+ - message
+ - param
- sequence_number
- description: Event emitted when a new output item is added to the response
+ type: object
+ BaseFunctionCallArgsDeltaEvent:
+ description: Event emitted when function call arguments are being streamed
example:
- type: response.output_item.added
+ delta: '{"city": "..."}'
+ item_id: item-1
output_index: 0
- item:
- id: item-1
- type: message
- status: in_progress
- role: assistant
- content: []
- sequence_number: 2
- OutputItemDoneEvent:
- type: object
+ sequence_number: 4
+ type: response.function_call_arguments.delta
properties:
- type:
+ delta:
+ type: string
+ item_id:
type: string
- enum:
- - response.output_item.done
output_index:
- type: number
- item:
- oneOf:
- - $ref: '#/components/schemas/OutputMessage'
- - $ref: '#/components/schemas/OutputItemReasoning'
- - $ref: '#/components/schemas/OutputItemFunctionCall'
- - $ref: '#/components/schemas/OutputItemWebSearchCall'
- - $ref: '#/components/schemas/OutputItemFileSearchCall'
- - $ref: '#/components/schemas/OutputItemImageGenerationCall'
- discriminator:
- propertyName: type
- mapping:
- message: '#/components/schemas/OutputMessage'
- reasoning: '#/components/schemas/OutputItemReasoning'
- function_call: '#/components/schemas/OutputItemFunctionCall'
- web_search_call: '#/components/schemas/OutputItemWebSearchCall'
- file_search_call: '#/components/schemas/OutputItemFileSearchCall'
- image_generation_call: '#/components/schemas/OutputItemImageGenerationCall'
+ type: integer
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - response.function_call_arguments.delta
+ type: string
required:
- type
+ - item_id
- output_index
- - item
+ - delta
- sequence_number
- description: Event emitted when an output item is complete
+ type: object
+ BaseFunctionCallArgsDoneEvent:
+ description: Event emitted when function call arguments streaming is complete
example:
- type: response.output_item.done
+ arguments: '{"city": "San Francisco", "units": "celsius"}'
+ item_id: item-1
+ name: get_weather
output_index: 0
- item:
- id: item-1
- type: message
- status: completed
- role: assistant
- content:
- - type: output_text
- text: Hello! How can I help you?
- annotations: []
- sequence_number: 8
- BaseContentPartAddedEvent:
- type: object
+ sequence_number: 6
+ type: response.function_call_arguments.done
properties:
- type:
+ arguments:
type: string
- enum:
- - response.content_part.added
- output_index:
- type: number
item_id:
type: string
- content_index:
- type: number
- part:
- anyOf:
- - $ref: '#/components/schemas/ResponseOutputText'
- - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
+ name:
+ type: string
+ output_index:
+ type: integer
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - response.function_call_arguments.done
+ type: string
required:
- type
- - output_index
- item_id
- - content_index
- - part
+ - output_index
+ - name
+ - arguments
- sequence_number
- description: Event emitted when a new content part is added to an output item
+ type: object
+ BaseInputs:
+ anyOf:
+ - type: string
+ - items:
+ anyOf:
+ - properties:
+ content:
+ anyOf:
+ - items:
+ discriminator:
+ mapping:
+ input_audio: '#/components/schemas/InputAudio'
+ input_file: '#/components/schemas/InputFile'
+ input_image: '#/components/schemas/InputImage'
+ input_text: '#/components/schemas/InputText'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/InputText'
+ - $ref: '#/components/schemas/InputImage'
+ - $ref: '#/components/schemas/InputFile'
+ - $ref: '#/components/schemas/InputAudio'
+ type: array
+ - type: string
+ phase:
+ anyOf:
+ - enum:
+ - commentary
+ type: string
+ - enum:
+ - final_answer
+ type: string
+ - nullable: true
+ role:
+ anyOf:
+ - enum:
+ - user
+ type: string
+ - enum:
+ - system
+ type: string
+ - enum:
+ - assistant
+ type: string
+ - enum:
+ - developer
+ type: string
+ type:
+ enum:
+ - message
+ type: string
+ required:
+ - role
+ - content
+ type: object
+ - $ref: '#/components/schemas/OpenAIResponseInputMessageItem'
+ - $ref: '#/components/schemas/OpenAIResponseFunctionToolCallOutput'
+ - $ref: '#/components/schemas/OpenAIResponseFunctionToolCall'
+ - $ref: '#/components/schemas/OutputItemImageGenerationCall'
+ - $ref: '#/components/schemas/OutputMessage'
+ type: array
+ - nullable: true
example:
- type: response.content_part.added
- output_index: 0
- item_id: item-1
- content_index: 0
- part:
- type: output_text
- text: ''
- annotations: []
- sequence_number: 3
- ContentPartAddedEvent:
- allOf:
- - $ref: '#/components/schemas/BaseContentPartAddedEvent'
- - type: object
- properties:
- part:
- anyOf:
- - $ref: '#/components/schemas/ResponseOutputText'
- - $ref: '#/components/schemas/ReasoningTextContent'
- - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
- description: Event emitted when a new content part is added to an output item
+ - content: What is the weather today?
+ role: user
+ BaseMessagesResult:
+ description: Base Anthropic Messages API response before OpenRouter extensions
example:
- type: response.content_part.added
- output_index: 0
- item_id: item-1
- content_index: 0
- part:
- type: output_text
- text: ''
- annotations: []
- sequence_number: 3
- BaseContentPartDoneEvent:
- type: object
+ container: null
+ content:
+ - citations: null
+ text: Hello!
+ type: text
+ id: msg_01XFDUDYJgAACzvnptvVoYEL
+ model: claude-sonnet-4-5-20250929
+ role: assistant
+ stop_reason: end_turn
+ stop_sequence: null
+ type: message
+ usage:
+ cache_creation_input_tokens: null
+ cache_read_input_tokens: null
+ input_tokens: 12
+ output_tokens: 8
properties:
- type:
+ container:
+ $ref: '#/components/schemas/AnthropicContainer'
+ content:
+ items:
+ $ref: '#/components/schemas/ORAnthropicContentBlock'
+ type: array
+ id:
+ type: string
+ model:
type: string
+ role:
enum:
- - response.content_part.done
- output_index:
- type: number
- item_id:
+ - assistant
type: string
- content_index:
- type: number
- part:
- anyOf:
- - $ref: '#/components/schemas/ResponseOutputText'
- - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
- sequence_number:
- type: number
+ stop_reason:
+ $ref: '#/components/schemas/ORAnthropicStopReason'
+ stop_sequence:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - message
+ type: string
+ usage:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicUsage'
+ - properties:
+ iterations:
+ items:
+ $ref: '#/components/schemas/AnthropicUsageIteration'
+ type: array
+ speed:
+ $ref: '#/components/schemas/AnthropicSpeed'
+ type: object
+ example:
+ cache_creation: null
+ cache_creation_input_tokens: null
+ cache_read_input_tokens: null
+ inference_geo: null
+ input_tokens: 100
+ output_tokens: 50
+ server_tool_use: null
+ service_tier: standard
required:
+ - id
- type
- - output_index
- - item_id
- - content_index
- - part
- - sequence_number
- description: Event emitted when a content part is complete
- example:
- type: response.content_part.done
- output_index: 0
- item_id: item-1
- content_index: 0
- part:
- type: output_text
- text: Hello! How can I help you?
- annotations: []
- sequence_number: 7
- ContentPartDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseContentPartDoneEvent'
- - type: object
- properties:
- part:
- anyOf:
- - $ref: '#/components/schemas/ResponseOutputText'
- - $ref: '#/components/schemas/ReasoningTextContent'
- - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
- description: Event emitted when a content part is complete
- example:
- type: response.content_part.done
- output_index: 0
- item_id: item-1
- content_index: 0
- part:
- type: output_text
- text: Hello! How can I help you?
- annotations: []
- sequence_number: 7
- OpenResponsesTopLogprobs:
+ - role
+ - container
+ - content
+ - model
+ - stop_reason
+ - stop_sequence
+ - usage
type: object
- properties:
- token:
- type: string
- logprob:
- type: number
- bytes:
- type: array
- items:
- type: number
- description: Alternative token with its log probability
+ BaseReasoningConfig:
example:
- token: hello
- logprob: -0.5
- OpenResponsesLogProbs:
- type: object
+ effort: medium
+ summary: auto
+ nullable: true
properties:
- logprob:
- type: number
- token:
- type: string
- top_logprobs:
- type: array
- items:
- $ref: '#/components/schemas/OpenResponsesTopLogprobs'
- bytes:
- type: array
- items:
- type: number
- required:
- - logprob
- - token
- description: Log probability information for a token
- example:
- logprob: -0.1
- token: world
- top_logprobs:
- - token: hello
- logprob: -0.5
- BaseTextDeltaEvent:
+ effort:
+ $ref: '#/components/schemas/ReasoningEffort'
+ summary:
+ $ref: '#/components/schemas/ReasoningSummaryVerbosity'
type: object
+ BaseReasoningDeltaEvent:
+ description: Event emitted when reasoning text delta is streamed
+ example:
+ content_index: 0
+ delta: First, we need
+ item_id: item-1
+ output_index: 0
+ sequence_number: 4
+ type: response.reasoning_text.delta
properties:
- type:
- type: string
- enum:
- - response.output_text.delta
- logprobs:
- type: array
- items:
- $ref: '#/components/schemas/OpenResponsesLogProbs'
- output_index:
- type: number
- item_id:
- type: string
content_index:
- type: number
+ type: integer
delta:
type: string
+ item_id:
+ type: string
+ output_index:
+ type: integer
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - response.reasoning_text.delta
+ type: string
required:
- type
- - logprobs
- output_index
- item_id
- content_index
- delta
- sequence_number
- description: Event emitted when a text delta is streamed
+ type: object
+ BaseReasoningDoneEvent:
+ description: Event emitted when reasoning text streaming is complete
example:
- type: response.output_text.delta
- logprobs: []
- output_index: 0
- item_id: item-1
content_index: 0
- delta: Hello
- sequence_number: 4
- TextDeltaEvent:
- allOf:
- - $ref: '#/components/schemas/BaseTextDeltaEvent'
- - type: object
- properties:
- logprobs:
- type: array
- items:
- allOf:
- - $ref: '#/components/schemas/OpenResponsesLogProbs'
- - type: object
- properties:
- top_logprobs:
- type: array
- items:
- allOf:
- - $ref: '#/components/schemas/OpenResponsesTopLogprobs'
- - type: object
- properties: {}
- description: Alternative token with its log probability
- example:
- token: hello
- logprob: -0.5
- description: Log probability information for a token
- example:
- logprob: -0.1
- token: world
- top_logprobs:
- - token: hello
- logprob: -0.5
- description: Event emitted when a text delta is streamed
- example:
- type: response.output_text.delta
- logprobs: []
- output_index: 0
item_id: item-1
- content_index: 0
- delta: Hello
- sequence_number: 4
- BaseTextDoneEvent:
- type: object
+ output_index: 0
+ sequence_number: 6
+ text: First, we need to identify the key components and then combine them logically.
+ type: response.reasoning_text.done
properties:
- type:
- type: string
- enum:
- - response.output_text.done
- output_index:
- type: number
+ content_index:
+ type: integer
item_id:
type: string
- content_index:
- type: number
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
text:
type: string
- sequence_number:
- type: number
- logprobs:
- type: array
- items:
- $ref: '#/components/schemas/OpenResponsesLogProbs'
+ type:
+ enum:
+ - response.reasoning_text.done
+ type: string
required:
- type
- output_index
@@ -2657,307 +2452,163 @@ components:
- content_index
- text
- sequence_number
- - logprobs
- description: Event emitted when text streaming is complete
+ type: object
+ BaseReasoningSummaryPartAddedEvent:
+ description: Event emitted when a reasoning summary part is added
example:
- type: response.output_text.done
- output_index: 0
item_id: item-1
- content_index: 0
- text: Hello! How can I help you?
- sequence_number: 6
- logprobs: []
- TextDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseTextDoneEvent'
- - type: object
- properties:
- logprobs:
- type: array
- items:
- allOf:
- - $ref: '#/components/schemas/OpenResponsesLogProbs'
- - type: object
- properties:
- top_logprobs:
- type: array
- items:
- allOf:
- - $ref: '#/components/schemas/OpenResponsesTopLogprobs'
- - type: object
- properties: {}
- description: Alternative token with its log probability
- example:
- token: hello
- logprob: -0.5
- description: Log probability information for a token
- example:
- logprob: -0.1
- token: world
- top_logprobs:
- - token: hello
- logprob: -0.5
- description: Event emitted when text streaming is complete
- example:
- type: response.output_text.done
output_index: 0
- item_id: item-1
- content_index: 0
- text: Hello! How can I help you?
- sequence_number: 6
- logprobs: []
- BaseRefusalDeltaEvent:
- type: object
+ part:
+ text: ''
+ type: summary_text
+ sequence_number: 3
+ summary_index: 0
+ type: response.reasoning_summary_part.added
properties:
- type:
- type: string
- enum:
- - response.refusal.delta
- output_index:
- type: number
item_id:
type: string
- content_index:
- type: number
- delta:
- type: string
+ output_index:
+ type: integer
+ part:
+ $ref: '#/components/schemas/ReasoningSummaryText'
sequence_number:
- type: number
+ type: integer
+ summary_index:
+ type: integer
+ type:
+ enum:
+ - response.reasoning_summary_part.added
+ type: string
required:
- type
- output_index
- item_id
- - content_index
- - delta
+ - summary_index
+ - part
- sequence_number
- description: Event emitted when a refusal delta is streamed
+ type: object
+ BaseReasoningSummaryPartDoneEvent:
+ description: Event emitted when a reasoning summary part is complete
example:
- type: response.refusal.delta
- output_index: 0
item_id: item-1
- content_index: 0
- delta: I'm sorry
- sequence_number: 4
- RefusalDeltaEvent:
- allOf:
- - $ref: '#/components/schemas/BaseRefusalDeltaEvent'
- - type: object
- properties: {}
- description: Event emitted when a refusal delta is streamed
- example:
- type: response.refusal.delta
output_index: 0
- item_id: item-1
- content_index: 0
- delta: I'm sorry
- sequence_number: 4
- BaseRefusalDoneEvent:
- type: object
+ part:
+ text: Analyzing the problem step by step to find the optimal solution.
+ type: summary_text
+ sequence_number: 7
+ summary_index: 0
+ type: response.reasoning_summary_part.done
properties:
- type:
- type: string
- enum:
- - response.refusal.done
- output_index:
- type: number
item_id:
type: string
- content_index:
- type: number
- refusal:
- type: string
+ output_index:
+ type: integer
+ part:
+ $ref: '#/components/schemas/ReasoningSummaryText'
sequence_number:
- type: number
+ type: integer
+ summary_index:
+ type: integer
+ type:
+ enum:
+ - response.reasoning_summary_part.done
+ type: string
required:
- type
- output_index
- item_id
- - content_index
- - refusal
+ - summary_index
+ - part
- sequence_number
- description: Event emitted when refusal streaming is complete
+ type: object
+ BaseReasoningSummaryTextDeltaEvent:
+ description: Event emitted when reasoning summary text delta is streamed
example:
- type: response.refusal.done
- output_index: 0
+ delta: Analyzing
item_id: item-1
- content_index: 0
- refusal: I'm sorry, but I can't assist with that request.
- sequence_number: 6
- RefusalDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseRefusalDoneEvent'
- - type: object
- properties: {}
- description: Event emitted when refusal streaming is complete
- example:
- type: response.refusal.done
output_index: 0
- item_id: item-1
- content_index: 0
- refusal: I'm sorry, but I can't assist with that request.
- sequence_number: 6
- BaseAnnotationAddedEvent:
- type: object
+ sequence_number: 4
+ summary_index: 0
+ type: response.reasoning_summary_text.delta
properties:
- type:
+ delta:
type: string
- enum:
- - response.output_text.annotation.added
- output_index:
- type: number
item_id:
type: string
- content_index:
- type: number
+ output_index:
+ type: integer
sequence_number:
- type: number
- annotation_index:
- type: number
- annotation:
- $ref: '#/components/schemas/OpenAIResponsesAnnotation'
+ type: integer
+ summary_index:
+ type: integer
+ type:
+ enum:
+ - response.reasoning_summary_text.delta
+ type: string
required:
- type
- - output_index
- item_id
- - content_index
+ - output_index
+ - summary_index
+ - delta
- sequence_number
- - annotation_index
- - annotation
- description: Event emitted when a text annotation is added to output
+ type: object
+ BaseReasoningSummaryTextDoneEvent:
+ description: Event emitted when reasoning summary text streaming is complete
example:
- type: response.output_text.annotation.added
- output_index: 0
item_id: item-1
- content_index: 0
- sequence_number: 5
- annotation_index: 0
- annotation:
- type: url_citation
- url: https://example.com
- title: Example
- start_index: 0
- end_index: 7
- AnnotationAddedEvent:
- allOf:
- - $ref: '#/components/schemas/BaseAnnotationAddedEvent'
- - type: object
- properties: {}
- description: Event emitted when a text annotation is added to output
- example:
- type: response.output_text.annotation.added
output_index: 0
- item_id: item-1
- content_index: 0
- sequence_number: 5
- annotation_index: 0
- annotation:
- type: url_citation
- url: https://example.com
- title: Example
- start_index: 0
- end_index: 7
- BaseFunctionCallArgsDeltaEvent:
- type: object
+ sequence_number: 6
+ summary_index: 0
+ text: Analyzing the problem step by step to find the optimal solution.
+ type: response.reasoning_summary_text.done
properties:
- type:
- type: string
- enum:
- - response.function_call_arguments.delta
item_id:
type: string
output_index:
- type: number
- delta:
- type: string
+ type: integer
sequence_number:
- type: number
+ type: integer
+ summary_index:
+ type: integer
+ text:
+ type: string
+ type:
+ enum:
+ - response.reasoning_summary_text.done
+ type: string
required:
- type
- item_id
- output_index
- - delta
+ - summary_index
+ - text
- sequence_number
- description: Event emitted when function call arguments are being streamed
- example:
- type: response.function_call_arguments.delta
- item_id: item-1
- output_index: 0
- delta: '{"city": "San'
- sequence_number: 4
- FunctionCallArgsDeltaEvent:
- allOf:
- - $ref: '#/components/schemas/BaseFunctionCallArgsDeltaEvent'
- - type: object
- properties: {}
- description: Event emitted when function call arguments are being streamed
+ type: object
+ BaseRefusalDeltaEvent:
+ description: Event emitted when a refusal delta is streamed
example:
- type: response.function_call_arguments.delta
+ content_index: 0
+ delta: I'm sorry
item_id: item-1
output_index: 0
- delta: '{"city": "San'
sequence_number: 4
- BaseFunctionCallArgsDoneEvent:
- type: object
+ type: response.refusal.delta
properties:
- type:
+ content_index:
+ type: integer
+ delta:
type: string
- enum:
- - response.function_call_arguments.done
item_id:
type: string
output_index:
- type: number
- name:
- type: string
- arguments:
- type: string
+ type: integer
sequence_number:
- type: number
- required:
- - type
- - item_id
- - output_index
- - name
- - arguments
- - sequence_number
- description: Event emitted when function call arguments streaming is complete
- example:
- type: response.function_call_arguments.done
- item_id: item-1
- output_index: 0
- name: get_weather
- arguments: '{"city": "San Francisco", "units": "celsius"}'
- sequence_number: 6
- FunctionCallArgsDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseFunctionCallArgsDoneEvent'
- - type: object
- properties: {}
- description: Event emitted when function call arguments streaming is complete
- example:
- type: response.function_call_arguments.done
- item_id: item-1
- output_index: 0
- name: get_weather
- arguments: '{"city": "San Francisco", "units": "celsius"}'
- sequence_number: 6
- BaseReasoningDeltaEvent:
- type: object
- properties:
+ type: integer
type:
- type: string
enum:
- - response.reasoning_text.delta
- output_index:
- type: number
- item_id:
- type: string
- content_index:
- type: number
- delta:
+ - response.refusal.delta
type: string
- sequence_number:
- type: number
required:
- type
- output_index
@@ -2965,13523 +2616,13043 @@ components:
- content_index
- delta
- sequence_number
- description: Event emitted when reasoning text delta is streamed
+ type: object
+ BaseRefusalDoneEvent:
+ description: Event emitted when refusal streaming is complete
example:
- type: response.reasoning_text.delta
- output_index: 0
- item_id: item-1
content_index: 0
- delta: First, we need
- sequence_number: 4
- ReasoningDeltaEvent:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningDeltaEvent'
- - type: object
- properties: {}
- description: Event emitted when reasoning text delta is streamed
- example:
- type: response.reasoning_text.delta
- output_index: 0
item_id: item-1
- content_index: 0
- delta: First, we need
- sequence_number: 4
- BaseReasoningDoneEvent:
- type: object
+ output_index: 0
+ refusal: I'm sorry, but I can't assist with that request.
+ sequence_number: 6
+ type: response.refusal.done
properties:
- type:
- type: string
- enum:
- - response.reasoning_text.done
- output_index:
- type: number
+ content_index:
+ type: integer
item_id:
type: string
- content_index:
- type: number
- text:
+ output_index:
+ type: integer
+ refusal:
type: string
sequence_number:
- type: number
- required:
- - type
- - output_index
- - item_id
- - content_index
- - text
- - sequence_number
- description: Event emitted when reasoning text streaming is complete
- example:
- type: response.reasoning_text.done
- output_index: 0
- item_id: item-1
- content_index: 0
- text: First, we need to identify the key components and then combine them logically.
- sequence_number: 6
- ReasoningDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningDoneEvent'
- - type: object
- properties: {}
- description: Event emitted when reasoning text streaming is complete
- example:
- type: response.reasoning_text.done
- output_index: 0
- item_id: item-1
- content_index: 0
- text: First, we need to identify the key components and then combine them logically.
- sequence_number: 6
- BaseReasoningSummaryPartAddedEvent:
- type: object
- properties:
+ type: integer
type:
- type: string
enum:
- - response.reasoning_summary_part.added
- output_index:
- type: number
- item_id:
+ - response.refusal.done
type: string
- summary_index:
- type: number
- part:
- $ref: '#/components/schemas/ReasoningSummaryText'
- sequence_number:
- type: number
required:
- type
- output_index
- item_id
- - summary_index
- - part
+ - content_index
+ - refusal
- sequence_number
- description: Event emitted when a reasoning summary part is added
- example:
- type: response.reasoning_summary_part.added
- output_index: 0
- item_id: item-1
- summary_index: 0
- part:
- type: summary_text
- text: ''
- sequence_number: 3
- ReasoningSummaryPartAddedEvent:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningSummaryPartAddedEvent'
- - type: object
- properties: {}
- description: Event emitted when a reasoning summary part is added
- example:
- type: response.reasoning_summary_part.added
- output_index: 0
- item_id: item-1
- summary_index: 0
- part:
- type: summary_text
- text: ''
- sequence_number: 3
- BaseReasoningSummaryPartDoneEvent:
type: object
+ BaseResponsesResult:
+ example:
+ completed_at: 1704067210
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: completed
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
properties:
- type:
- type: string
- enum:
- - response.reasoning_summary_part.done
- output_index:
+ background:
+ nullable: true
+ type: boolean
+ completed_at:
+ type: integer
+ created_at:
+ type: integer
+ error:
+ $ref: '#/components/schemas/ResponsesErrorField'
+ frequency_penalty:
+ format: double
type: number
- item_id:
+ id:
type: string
- summary_index:
- type: number
- part:
- $ref: '#/components/schemas/ReasoningSummaryText'
- sequence_number:
+ incomplete_details:
+ $ref: '#/components/schemas/IncompleteDetails'
+ instructions:
+ $ref: '#/components/schemas/BaseInputs'
+ max_output_tokens:
+ type: integer
+ max_tool_calls:
+ type: integer
+ metadata:
+ $ref: '#/components/schemas/RequestMetadata'
+ model:
+ type: string
+ object:
+ enum:
+ - response
+ type: string
+ output:
+ items:
+ discriminator:
+ mapping:
+ file_search_call: '#/components/schemas/OutputItemFileSearchCall'
+ function_call: '#/components/schemas/OutputItemFunctionCall'
+ image_generation_call: '#/components/schemas/OutputItemImageGenerationCall'
+ message: '#/components/schemas/OutputMessage'
+ reasoning: '#/components/schemas/OutputItemReasoning'
+ web_search_call: '#/components/schemas/OutputItemWebSearchCall'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/OutputMessage'
+ - $ref: '#/components/schemas/OutputItemReasoning'
+ - $ref: '#/components/schemas/OutputItemFunctionCall'
+ - $ref: '#/components/schemas/OutputItemWebSearchCall'
+ - $ref: '#/components/schemas/OutputItemFileSearchCall'
+ - $ref: '#/components/schemas/OutputItemImageGenerationCall'
+ type: array
+ output_text:
+ type: string
+ parallel_tool_calls:
+ type: boolean
+ presence_penalty:
+ format: double
+ type: number
+ previous_response_id:
+ nullable: true
+ type: string
+ prompt:
+ $ref: '#/components/schemas/StoredPromptTemplate'
+ prompt_cache_key:
+ nullable: true
+ type: string
+ reasoning:
+ $ref: '#/components/schemas/BaseReasoningConfig'
+ safety_identifier:
+ nullable: true
+ type: string
+ service_tier:
+ $ref: '#/components/schemas/ServiceTier'
+ status:
+ $ref: '#/components/schemas/OpenAIResponsesResponseStatus'
+ store:
+ type: boolean
+ temperature:
+ format: double
+ type: number
+ text:
+ $ref: '#/components/schemas/TextConfig'
+ tool_choice:
+ $ref: '#/components/schemas/OpenAIResponsesToolChoice'
+ tools:
+ items:
+ oneOf:
+ - allOf:
+ - $ref: '#/components/schemas/FunctionTool'
+ - properties: {}
+ type: object
+ description: Function tool definition
+ example:
+ description: Get the current weather in a location
+ name: get_weather
+ parameters:
+ properties:
+ location:
+ description: The city and state
+ type: string
+ unit:
+ enum:
+ - celsius
+ - fahrenheit
+ type: string
+ required:
+ - location
+ type: object
+ type: function
+ - $ref: '#/components/schemas/Preview_WebSearchServerTool'
+ - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool'
+ - $ref: '#/components/schemas/Legacy_WebSearchServerTool'
+ - $ref: '#/components/schemas/WebSearchServerTool'
+ - $ref: '#/components/schemas/FileSearchServerTool'
+ - $ref: '#/components/schemas/ComputerUseServerTool'
+ - $ref: '#/components/schemas/CodeInterpreterServerTool'
+ - $ref: '#/components/schemas/McpServerTool'
+ - $ref: '#/components/schemas/ImageGenerationServerTool'
+ - $ref: '#/components/schemas/CodexLocalShellTool'
+ - $ref: '#/components/schemas/ShellServerTool'
+ - $ref: '#/components/schemas/ApplyPatchServerTool'
+ - $ref: '#/components/schemas/CustomTool'
+ type: array
+ top_logprobs:
+ type: integer
+ top_p:
+ format: double
type: number
+ truncation:
+ $ref: '#/components/schemas/Truncation'
+ usage:
+ $ref: '#/components/schemas/OpenAIResponsesUsage'
+ user:
+ nullable: true
+ type: string
required:
- - type
- - output_index
- - item_id
- - summary_index
- - part
- - sequence_number
- description: Event emitted when a reasoning summary part is complete
+ - id
+ - object
+ - created_at
+ - model
+ - status
+ - completed_at
+ - output
+ - error
+ - incomplete_details
+ - temperature
+ - top_p
+ - presence_penalty
+ - frequency_penalty
+ - instructions
+ - metadata
+ - tools
+ - tool_choice
+ - parallel_tool_calls
+ type: object
+ BaseTextDeltaEvent:
+ description: Event emitted when a text delta is streamed
example:
- type: response.reasoning_summary_part.done
- output_index: 0
+ content_index: 0
+ delta: Hello
item_id: item-1
- summary_index: 0
- part:
- type: summary_text
- text: Analyzing the problem step by step to find the optimal solution.
- sequence_number: 7
- ReasoningSummaryPartDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningSummaryPartDoneEvent'
- - type: object
- properties: {}
- description: Event emitted when a reasoning summary part is complete
- example:
- type: response.reasoning_summary_part.done
+ logprobs: []
output_index: 0
- item_id: item-1
- summary_index: 0
- part:
- type: summary_text
- text: Analyzing the problem step by step to find the optimal solution.
- sequence_number: 7
- BaseReasoningSummaryTextDeltaEvent:
- type: object
+ sequence_number: 4
+ type: response.output_text.delta
properties:
- type:
+ content_index:
+ type: integer
+ delta:
type: string
- enum:
- - response.reasoning_summary_text.delta
item_id:
type: string
+ logprobs:
+ items:
+ $ref: '#/components/schemas/OpenResponsesLogProbs'
+ type: array
output_index:
- type: number
- summary_index:
- type: number
- delta:
- type: string
+ type: integer
sequence_number:
- type: number
+ type: integer
+ type:
+ enum:
+ - response.output_text.delta
+ type: string
required:
- type
- - item_id
+ - logprobs
- output_index
- - summary_index
+ - item_id
+ - content_index
- delta
- sequence_number
- description: Event emitted when reasoning summary text delta is streamed
- example:
- type: response.reasoning_summary_text.delta
- item_id: item-1
- output_index: 0
- summary_index: 0
- delta: Analyzing
- sequence_number: 4
- ReasoningSummaryTextDeltaEvent:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningSummaryTextDeltaEvent'
- - type: object
- properties: {}
- description: Event emitted when reasoning summary text delta is streamed
+ type: object
+ BaseTextDoneEvent:
+ description: Event emitted when text streaming is complete
example:
- type: response.reasoning_summary_text.delta
+ content_index: 0
item_id: item-1
+ logprobs: []
output_index: 0
- summary_index: 0
- delta: Analyzing
- sequence_number: 4
- BaseReasoningSummaryTextDoneEvent:
- type: object
+ sequence_number: 6
+ text: Hello! How can I help you?
+ type: response.output_text.done
properties:
- type:
- type: string
- enum:
- - response.reasoning_summary_text.done
+ content_index:
+ type: integer
item_id:
type: string
+ logprobs:
+ items:
+ $ref: '#/components/schemas/OpenResponsesLogProbs'
+ type: array
output_index:
- type: number
- summary_index:
- type: number
+ type: integer
+ sequence_number:
+ type: integer
text:
type: string
- sequence_number:
- type: number
+ type:
+ enum:
+ - response.output_text.done
+ type: string
required:
- type
- - item_id
- output_index
- - summary_index
+ - item_id
+ - content_index
- text
- sequence_number
- description: Event emitted when reasoning summary text streaming is complete
+ - logprobs
+ type: object
+ BigNumberUnion:
+ description: Price per million prompt tokens
+ example: 1000
+ type: string
+ BulkAssignKeysRequest:
example:
- type: response.reasoning_summary_text.done
- item_id: item-1
- output_index: 0
- summary_index: 0
- text: Analyzing the problem step by step to find the optimal solution.
- sequence_number: 6
- ReasoningSummaryTextDoneEvent:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningSummaryTextDoneEvent'
- - type: object
- properties: {}
- description: Event emitted when reasoning summary text streaming is complete
- example:
- type: response.reasoning_summary_text.done
- item_id: item-1
- output_index: 0
- summary_index: 0
- text: Analyzing the problem step by step to find the optimal solution.
- sequence_number: 6
- OpenAIResponsesImageGenCallInProgress:
- type: object
+ key_hashes:
+ - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
properties:
- type:
- type: string
- enum:
- - response.image_generation_call.in_progress
- item_id:
- type: string
- output_index:
- type: number
- sequence_number:
- type: number
+ key_hashes:
+ description: Array of API key hashes to assign to the guardrail
+ example:
+ - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ items:
+ minLength: 1
+ type: string
+ minItems: 1
+ type: array
required:
- - type
- - item_id
- - output_index
- - sequence_number
- ImageGenCallInProgressEvent:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesImageGenCallInProgress'
- - type: object
- properties: {}
- description: Image generation call in progress
+ - key_hashes
+ type: object
+ BulkAssignKeysResponse:
example:
- type: response.image_generation_call.in_progress
- output_index: 0
- sequence_number: 1
- item_id: call-123
- OpenAIResponsesImageGenCallGenerating:
+ assigned_count: 3
+ properties:
+ assigned_count:
+ description: Number of keys successfully assigned
+ example: 3
+ type: integer
+ required:
+ - assigned_count
type: object
+ BulkAssignMembersRequest:
+ example:
+ member_user_ids:
+ - user_abc123
+ - user_def456
properties:
- type:
- type: string
- enum:
- - response.image_generation_call.generating
- item_id:
- type: string
- output_index:
- type: number
- sequence_number:
- type: number
+ member_user_ids:
+ description: Array of member user IDs to assign to the guardrail
+ example:
+ - user_abc123
+ - user_def456
+ items:
+ minLength: 1
+ type: string
+ minItems: 1
+ type: array
required:
- - type
- - item_id
- - output_index
- - sequence_number
- ImageGenCallGeneratingEvent:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesImageGenCallGenerating'
- - type: object
- properties: {}
- description: Image generation call is generating
+ - member_user_ids
+ type: object
+ BulkAssignMembersResponse:
example:
- type: response.image_generation_call.generating
- output_index: 0
- sequence_number: 2
- item_id: call-123
- OpenAIResponsesImageGenCallPartialImage:
+ assigned_count: 2
+ properties:
+ assigned_count:
+ description: Number of members successfully assigned
+ example: 2
+ type: integer
+ required:
+ - assigned_count
type: object
+ BulkUnassignKeysRequest:
+ example:
+ key_hashes:
+ - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
properties:
- type:
- type: string
- enum:
- - response.image_generation_call.partial_image
- item_id:
- type: string
- output_index:
- type: number
- sequence_number:
- type: number
- partial_image_b64:
- type: string
- partial_image_index:
- type: number
+ key_hashes:
+ description: Array of API key hashes to unassign from the guardrail
+ example:
+ - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ items:
+ minLength: 1
+ type: string
+ minItems: 1
+ type: array
required:
- - type
- - item_id
- - output_index
- - sequence_number
- - partial_image_b64
- - partial_image_index
- ImageGenCallPartialImageEvent:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesImageGenCallPartialImage'
- - type: object
- properties: {}
- description: Image generation call with partial image
+ - key_hashes
+ type: object
+ BulkUnassignKeysResponse:
example:
- type: response.image_generation_call.partial_image
- output_index: 0
- sequence_number: 3
- item_id: call-123
- partial_image_b64: base64encodedimage...
- partial_image_index: 0
- OpenAIResponsesImageGenCallCompleted:
+ unassigned_count: 3
+ properties:
+ unassigned_count:
+ description: Number of keys successfully unassigned
+ example: 3
+ type: integer
+ required:
+ - unassigned_count
type: object
+ BulkUnassignMembersRequest:
+ example:
+ member_user_ids:
+ - user_abc123
+ - user_def456
properties:
- type:
- type: string
- enum:
- - response.image_generation_call.completed
- item_id:
- type: string
- output_index:
- type: number
- sequence_number:
- type: number
+ member_user_ids:
+ description: Array of member user IDs to unassign from the guardrail
+ example:
+ - user_abc123
+ - user_def456
+ items:
+ minLength: 1
+ type: string
+ minItems: 1
+ type: array
required:
- - type
- - item_id
- - output_index
- - sequence_number
- ImageGenCallCompletedEvent:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesImageGenCallCompleted'
- - type: object
- properties: {}
- description: Image generation call completed
+ - member_user_ids
+ type: object
+ BulkUnassignMembersResponse:
example:
- type: response.image_generation_call.completed
- output_index: 0
- sequence_number: 4
- item_id: call-123
- OpenAIResponsesWebSearchCallInProgress:
+ unassigned_count: 2
+ properties:
+ unassigned_count:
+ description: Number of members successfully unassigned
+ example: 2
+ type: integer
+ required:
+ - unassigned_count
type: object
+ ChatAssistantImages:
+ description: Generated images from image generation models
+ example:
+ - image_url:
+ url: data:image/png;base64,iVBORw0KGgo...
+ items:
+ properties:
+ image_url:
+ properties:
+ url:
+ description: URL or base64-encoded data of the generated image
+ type: string
+ required:
+ - url
+ type: object
+ required:
+ - image_url
+ type: object
+ type: array
+ ChatAssistantMessage:
+ description: Assistant message for requests and responses
+ example:
+ content: The capital of France is Paris.
+ role: assistant
properties:
- type:
+ audio:
+ $ref: '#/components/schemas/ChatAudioOutput'
+ content:
+ anyOf:
+ - type: string
+ - items:
+ $ref: '#/components/schemas/ChatContentItems'
+ type: array
+ - nullable: true
+ description: Assistant message content
+ images:
+ $ref: '#/components/schemas/ChatAssistantImages'
+ name:
+ description: Optional name for the assistant
+ type: string
+ reasoning:
+ description: Reasoning output
+ nullable: true
+ type: string
+ reasoning_details:
+ $ref: '#/components/schemas/ChatReasoningDetails'
+ refusal:
+ description: Refusal message if content was refused
+ nullable: true
type: string
+ role:
enum:
- - response.web_search_call.in_progress
- item_id:
+ - assistant
type: string
- output_index:
- type: number
- sequence_number:
- type: number
+ tool_calls:
+ description: Tool calls made by the assistant
+ items:
+ $ref: '#/components/schemas/ChatToolCall'
+ type: array
required:
- - type
- - item_id
- - output_index
- - sequence_number
- WebSearchCallInProgressEvent:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesWebSearchCallInProgress'
- - type: object
- properties: {}
- description: Web search call in progress
- example:
- type: response.web_search_call.in_progress
- output_index: 0
- sequence_number: 1
- item_id: ws-123
- OpenAIResponsesWebSearchCallSearching:
+ - role
type: object
+ ChatAudioOutput:
+ description: Audio output data or reference
+ example:
+ data: UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1f
+ expires_at: 1677652400
+ id: audio_abc123
+ transcript: Hello! How can I help you today?
properties:
- type:
+ data:
+ description: Base64 encoded audio data
type: string
- enum:
- - response.web_search_call.searching
- item_id:
+ expires_at:
+ description: Audio expiration timestamp
+ type: integer
+ id:
+ description: Audio output identifier
type: string
- output_index:
- type: number
- sequence_number:
- type: number
- required:
- - type
- - item_id
- - output_index
- - sequence_number
- WebSearchCallSearchingEvent:
- allOf:
- - $ref: '#/components/schemas/OpenAIResponsesWebSearchCallSearching'
- - type: object
- properties: {}
- description: Web search call is searching
+ transcript:
+ description: Audio transcript
+ type: string
+ type: object
+ ChatChoice:
+ description: Chat completion choice
example:
- type: response.web_search_call.searching
- output_index: 0
- sequence_number: 2
- item_id: ws-123
- OpenAIResponsesSearchCompleted:
+ finish_reason: stop
+ index: 0
+ logprobs: null
+ message:
+ content: The capital of France is Paris.
+ role: assistant
+ properties:
+ finish_reason:
+ $ref: '#/components/schemas/ChatFinishReasonEnum'
+ index:
+ description: Choice index
+ example: 0
+ type: integer
+ logprobs:
+ $ref: '#/components/schemas/ChatTokenLogprobs'
+ message:
+ $ref: '#/components/schemas/ChatAssistantMessage'
+ required:
+ - finish_reason
+ - index
+ - message
type: object
+ ChatContentAudio:
+ description: Audio input content part. Supported audio formats vary by provider.
+ example:
+ input_audio:
+ data: SGVsbG8gV29ybGQ=
+ format: wav
+ type: input_audio
properties:
+ input_audio:
+ properties:
+ data:
+ description: Base64 encoded audio data
+ type: string
+ format:
+ description: >-
+ Audio format (e.g., wav, mp3, flac, m4a, ogg, aiff, aac, pcm16, pcm24). Supported formats vary by
+ provider.
+ type: string
+ required:
+ - data
+ - format
+ type: object
type:
- type: string
enum:
- - response.web_search_call.completed
- item_id:
+ - input_audio
type: string
- output_index:
- type: number
- sequence_number:
- type: number
required:
- type
- - item_id
- - output_index
- - sequence_number
- WebSearchCallCompletedEvent:
+ - input_audio
+ type: object
+ ChatContentCacheControl:
allOf:
- - $ref: '#/components/schemas/OpenAIResponsesSearchCompleted'
- - type: object
- properties: {}
- description: Web search call completed
+ - $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ - properties: {}
+ type: object
+ description: Cache control for the content part
example:
- type: response.web_search_call.completed
- output_index: 0
- sequence_number: 3
- item_id: ws-123
- StreamEvents:
- oneOf:
- - allOf:
- - $ref: '#/components/schemas/CreatedEvent'
- - type: object
- properties:
- response:
- $ref: '#/components/schemas/OpenResponsesResult'
- description: Event emitted when a response is created
- example:
- type: response.created
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: in_progress
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 0
- - allOf:
- - $ref: '#/components/schemas/InProgressEvent'
- - type: object
- properties:
- response:
- $ref: '#/components/schemas/OpenResponsesResult'
- description: Event emitted when a response is in progress
- example:
- type: response.in_progress
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: in_progress
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 1
- - allOf:
- - $ref: '#/components/schemas/CompletedEvent'
- - type: object
- properties:
- response:
- $ref: '#/components/schemas/OpenResponsesResult'
- description: Event emitted when a response has completed successfully
- example:
- type: response.completed
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: completed
- output:
- - id: item-1
- type: message
- status: completed
- role: assistant
- content:
- - type: output_text
- text: Hello! How can I help you?
- annotations: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 10
- - allOf:
- - $ref: '#/components/schemas/IncompleteEvent'
- - type: object
- properties:
- response:
- $ref: '#/components/schemas/OpenResponsesResult'
- description: Event emitted when a response is incomplete
- example:
- type: response.incomplete
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: incomplete
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 5
- - allOf:
- - $ref: '#/components/schemas/FailedEvent'
- - type: object
- properties:
- response:
- $ref: '#/components/schemas/OpenResponsesResult'
- description: Event emitted when a response has failed
- example:
- type: response.failed
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: failed
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 3
- - $ref: '#/components/schemas/ErrorEvent'
- - allOf:
- - $ref: '#/components/schemas/OutputItemAddedEvent'
- - type: object
- properties:
- item:
- $ref: '#/components/schemas/OutputItems'
- description: Event emitted when a new output item is added to the response
- example:
- type: response.output_item.added
- output_index: 0
- item:
- id: item-1
- type: message
- status: in_progress
- role: assistant
- content: []
- sequence_number: 2
- - allOf:
- - $ref: '#/components/schemas/OutputItemDoneEvent'
- - type: object
- properties:
- item:
- $ref: '#/components/schemas/OutputItems'
- description: Event emitted when an output item is complete
- example:
- type: response.output_item.done
- output_index: 0
- item:
- id: item-1
- type: message
- status: completed
- role: assistant
- content:
- - type: output_text
- text: Hello! How can I help you?
- annotations: []
- sequence_number: 8
- - $ref: '#/components/schemas/ContentPartAddedEvent'
- - $ref: '#/components/schemas/ContentPartDoneEvent'
- - $ref: '#/components/schemas/TextDeltaEvent'
- - $ref: '#/components/schemas/TextDoneEvent'
- - $ref: '#/components/schemas/RefusalDeltaEvent'
- - $ref: '#/components/schemas/RefusalDoneEvent'
- - $ref: '#/components/schemas/AnnotationAddedEvent'
- - $ref: '#/components/schemas/FunctionCallArgsDeltaEvent'
- - $ref: '#/components/schemas/FunctionCallArgsDoneEvent'
- - $ref: '#/components/schemas/ReasoningDeltaEvent'
- - $ref: '#/components/schemas/ReasoningDoneEvent'
- - $ref: '#/components/schemas/ReasoningSummaryPartAddedEvent'
- - $ref: '#/components/schemas/ReasoningSummaryPartDoneEvent'
- - $ref: '#/components/schemas/ReasoningSummaryTextDeltaEvent'
- - $ref: '#/components/schemas/ReasoningSummaryTextDoneEvent'
- - $ref: '#/components/schemas/ImageGenCallInProgressEvent'
- - $ref: '#/components/schemas/ImageGenCallGeneratingEvent'
- - $ref: '#/components/schemas/ImageGenCallPartialImageEvent'
- - $ref: '#/components/schemas/ImageGenCallCompletedEvent'
- - $ref: '#/components/schemas/WebSearchCallInProgressEvent'
- - $ref: '#/components/schemas/WebSearchCallSearchingEvent'
- - $ref: '#/components/schemas/WebSearchCallCompletedEvent'
- description: Union of all possible event types emitted during response streaming
+ ttl: 5m
+ type: ephemeral
+ ChatContentFile:
+ description: File content part for document processing
example:
- type: response.created
- response:
- id: resp-abc123
- object: response
- created_at: 1704067200
- model: gpt-4
- status: in_progress
- output: []
- tools: []
- tool_choice: auto
- parallel_tool_calls: true
- error: null
- incomplete_details: null
- metadata: null
- instructions: null
- temperature: null
- top_p: null
- max_output_tokens: null
- sequence_number: 0
- BadRequestResponseErrorData:
- type: object
+ file:
+ file_data: https://example.com/document.pdf
+ filename: document.pdf
+ type: file
properties:
- code:
- type: integer
- message:
- type: string
- metadata:
+ file:
+ properties:
+ file_data:
+ description: File content as base64 data URL or URL
+ type: string
+ file_id:
+ description: File ID for previously uploaded files
+ type: string
+ filename:
+ description: Original filename
+ type: string
type: object
- nullable: true
- additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for BadRequestResponse
- example:
- code: 400
- message: Invalid request parameters
- BadRequestResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/BadRequestResponseErrorData'
- user_id:
+ type:
+ enum:
+ - file
type: string
- nullable: true
required:
- - error
- description: Bad Request - Invalid request parameters or malformed input
- example:
- error:
- code: 400
- message: Invalid request parameters
- UnauthorizedResponseErrorData:
+ - type
+ - file
type: object
+ ChatContentImage:
+ description: Image content part for vision models
+ example:
+ image_url:
+ detail: auto
+ url: https://example.com/image.jpg
+ type: image_url
properties:
- code:
- type: integer
- message:
- type: string
- metadata:
+ image_url:
+ properties:
+ detail:
+ description: Image detail level for vision models
+ enum:
+ - auto
+ - low
+ - high
+ type: string
+ url:
+ description: 'URL of the image (data: URLs supported)'
+ type: string
+ required:
+ - url
type: object
- nullable: true
- additionalProperties:
- nullable: true
+ type:
+ enum:
+ - image_url
+ type: string
required:
- - code
- - message
- description: Error data for UnauthorizedResponse
- example:
- code: 401
- message: Missing Authentication header
- UnauthorizedResponse:
+ - type
+ - image_url
type: object
- properties:
- error:
- $ref: '#/components/schemas/UnauthorizedResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Unauthorized - Authentication required or invalid credentials
+ ChatContentItems:
+ description: Content part for chat completion messages
+ discriminator:
+ mapping:
+ file: '#/components/schemas/ChatContentFile'
+ image_url: '#/components/schemas/ChatContentImage'
+ input_audio: '#/components/schemas/ChatContentAudio'
+ input_video: '#/components/schemas/Legacy_ChatContentVideo'
+ text: '#/components/schemas/ChatContentText'
+ video_url: '#/components/schemas/ChatContentVideo'
+ propertyName: type
example:
- error:
- code: 401
- message: Missing Authentication header
- PaymentRequiredResponseErrorData:
- type: object
+ text: Hello, world!
+ type: text
+ oneOf:
+ - $ref: '#/components/schemas/ChatContentText'
+ - $ref: '#/components/schemas/ChatContentImage'
+ - $ref: '#/components/schemas/ChatContentAudio'
+ - $ref: '#/components/schemas/Legacy_ChatContentVideo'
+ - $ref: '#/components/schemas/ChatContentVideo'
+ - $ref: '#/components/schemas/ChatContentFile'
+ ChatContentText:
+ description: Text content part
+ example:
+ text: Hello, world!
+ type: text
properties:
- code:
- type: integer
- message:
+ cache_control:
+ $ref: '#/components/schemas/ChatContentCacheControl'
+ text:
+ type: string
+ type:
+ enum:
+ - text
type: string
- metadata:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
required:
- - code
- - message
- description: Error data for PaymentRequiredResponse
- example:
- code: 402
- message: Insufficient credits. Add more using https://openrouter.ai/credits
- PaymentRequiredResponse:
+ - type
+ - text
type: object
+ ChatContentVideo:
+ description: Video input content part
+ example:
+ type: video_url
+ video_url:
+ url: https://example.com/video.mp4
properties:
- error:
- $ref: '#/components/schemas/PaymentRequiredResponseErrorData'
- user_id:
+ type:
+ enum:
+ - video_url
type: string
- nullable: true
+ video_url:
+ $ref: '#/components/schemas/ChatContentVideoInput'
required:
- - error
- description: Payment Required - Insufficient credits or quota to complete request
- example:
- error:
- code: 402
- message: Insufficient credits. Add more using https://openrouter.ai/credits
- NotFoundResponseErrorData:
+ - type
+ - video_url
type: object
+ ChatContentVideoInput:
+ description: Video input object
+ example:
+ url: https://example.com/video.mp4
properties:
- code:
- type: integer
- message:
+ url:
+ description: 'URL of the video (data: URLs supported)'
type: string
- metadata:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
required:
- - code
- - message
- description: Error data for NotFoundResponse
+ - url
+ type: object
+ ChatDebugOptions:
+ description: Debug options for inspecting request transformations (streaming only)
example:
- code: 404
- message: Resource not found
- NotFoundResponse:
+ echo_upstream_body: true
+ properties:
+ echo_upstream_body:
+ description: >-
+ If true, includes the transformed upstream request body in a debug chunk at the start of the stream. Only
+ works with streaming mode.
+ example: true
+ type: boolean
type: object
+ ChatDeveloperMessage:
+ description: Developer message
+ example:
+ content: This is a message from the developer.
+ role: developer
properties:
- error:
- $ref: '#/components/schemas/NotFoundResponseErrorData'
- user_id:
+ content:
+ anyOf:
+ - type: string
+ - items:
+ $ref: '#/components/schemas/ChatContentText'
+ type: array
+ description: Developer message content
+ example: This is a message from the developer.
+ name:
+ description: Optional name for the developer message
+ example: Developer
+ type: string
+ role:
+ enum:
+ - developer
type: string
- nullable: true
required:
+ - role
+ - content
+ type: object
+ ChatFinishReasonEnum:
+ enum:
+ - tool_calls
+ - stop
+ - length
+ - content_filter
- error
- description: Not Found - Resource does not exist
+ - null
+ example: stop
+ nullable: true
+ type: string
+ ChatFormatGrammarConfig:
+ description: Custom grammar response format
example:
- error:
- code: 404
- message: Resource not found
- RequestTimeoutResponseErrorData:
- type: object
+ grammar: root ::= "yes" | "no"
+ type: grammar
properties:
- code:
- type: integer
- message:
+ grammar:
+ description: Custom grammar for text generation
+ example: root ::= "yes" | "no"
+ type: string
+ type:
+ enum:
+ - grammar
type: string
- metadata:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
required:
- - code
- - message
- description: Error data for RequestTimeoutResponse
- example:
- code: 408
- message: Operation timed out. Please try again later.
- RequestTimeoutResponse:
+ - type
+ - grammar
type: object
+ ChatFormatJsonSchemaConfig:
+ description: JSON Schema response format for structured outputs
+ example:
+ json_schema:
+ name: math_response
+ schema:
+ properties:
+ answer:
+ type: number
+ required:
+ - answer
+ type: object
+ type: json_schema
properties:
- error:
- $ref: '#/components/schemas/RequestTimeoutResponseErrorData'
- user_id:
+ json_schema:
+ $ref: '#/components/schemas/ChatJsonSchemaConfig'
+ type:
+ enum:
+ - json_schema
type: string
- nullable: true
required:
- - error
- description: Request Timeout - Operation exceeded time limit
- example:
- error:
- code: 408
- message: Operation timed out. Please try again later.
- GoneResponseErrorData:
+ - type
+ - json_schema
type: object
+ ChatFormatPythonConfig:
+ description: Python code response format
+ example:
+ type: python
properties:
- code:
- type: integer
- message:
+ type:
+ enum:
+ - python
type: string
- metadata:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
required:
- - code
- - message
- description: Error data for GoneResponse
- example:
- code: 410
- message: The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead.
- GoneResponse:
+ - type
type: object
+ ChatFormatTextConfig:
+ description: Default text response format
+ example:
+ type: text
properties:
- error:
- $ref: '#/components/schemas/GoneResponseErrorData'
- user_id:
+ type:
+ enum:
+ - text
type: string
- nullable: true
required:
- - error
- description: Gone - Endpoint has been permanently removed or deprecated
- example:
- error:
- code: 410
- message: The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead.
- PayloadTooLargeResponseErrorData:
+ - type
type: object
- properties:
- code:
- type: integer
- message:
- type: string
- metadata:
+ ChatFunctionTool:
+ anyOf:
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/ChatContentCacheControl'
+ function:
+ description: Function definition for tool calling
+ example:
+ description: Get the current weather for a location
+ name: get_weather
+ parameters:
+ properties:
+ location:
+ description: City name
+ type: string
+ required:
+ - location
+ type: object
+ properties:
+ description:
+ description: Function description for the model
+ example: Get the current weather for a location
+ type: string
+ name:
+ description: Function name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)
+ example: get_weather
+ maxLength: 64
+ type: string
+ parameters:
+ additionalProperties:
+ nullable: true
+ description: Function parameters as JSON Schema object
+ example:
+ properties:
+ location:
+ description: City name
+ type: string
+ required:
+ - location
+ type: object
+ type: object
+ strict:
+ description: Enable strict schema adherence
+ example: false
+ nullable: true
+ type: boolean
+ required:
+ - name
+ type: object
+ type:
+ enum:
+ - function
+ type: string
+ required:
+ - type
+ - function
type: object
- nullable: true
- additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for PayloadTooLargeResponse
+ - $ref: '#/components/schemas/DatetimeServerTool'
+ - $ref: '#/components/schemas/OpenRouterWebSearchServerTool'
+ - $ref: '#/components/schemas/ChatWebSearchShorthand'
+ description: Tool definition for function calling (regular function or OpenRouter built-in server tool)
example:
- code: 413
- message: Request payload too large
- PayloadTooLargeResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/PayloadTooLargeResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Payload Too Large - Request payload exceeds size limits
+ function:
+ description: Get the current weather for a location
+ name: get_weather
+ parameters:
+ properties:
+ location:
+ description: City name
+ type: string
+ unit:
+ enum:
+ - celsius
+ - fahrenheit
+ type: string
+ required:
+ - location
+ type: object
+ type: function
+ ChatJsonSchemaConfig:
+ description: JSON Schema configuration object
example:
- error:
- code: 413
- message: Request payload too large
- UnprocessableEntityResponseErrorData:
- type: object
- properties:
- code:
- type: integer
- message:
- type: string
- metadata:
+ description: A mathematical response
+ name: math_response
+ schema:
+ properties:
+ answer:
+ type: number
+ required:
+ - answer
type: object
- nullable: true
- additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for UnprocessableEntityResponse
- example:
- code: 422
- message: Invalid argument
- UnprocessableEntityResponse:
- type: object
+ strict: true
properties:
- error:
- $ref: '#/components/schemas/UnprocessableEntityResponseErrorData'
- user_id:
+ description:
+ description: Schema description for the model
+ example: A mathematical response
type: string
- nullable: true
- required:
- - error
- description: Unprocessable Entity - Semantic validation failure
- example:
- error:
- code: 422
- message: Invalid argument
- TooManyRequestsResponseErrorData:
- type: object
- properties:
- code:
- type: integer
- message:
+ name:
+ description: Schema name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)
+ example: math_response
+ maxLength: 64
type: string
- metadata:
- type: object
- nullable: true
+ schema:
additionalProperties:
nullable: true
- required:
- - code
- - message
- description: Error data for TooManyRequestsResponse
- example:
- code: 429
- message: Rate limit exceeded
- TooManyRequestsResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/TooManyRequestsResponseErrorData'
- user_id:
- type: string
+ description: JSON Schema object
+ example:
+ properties:
+ answer:
+ type: number
+ required:
+ - answer
+ type: object
+ type: object
+ strict:
+ description: Enable strict schema adherence
+ example: false
nullable: true
+ type: boolean
required:
- - error
- description: Too Many Requests - Rate limit exceeded
- example:
- error:
- code: 429
- message: Rate limit exceeded
- InternalServerResponseErrorData:
+ - name
type: object
+ ChatMessages:
+ description: Chat completion message with role-based discrimination
+ discriminator:
+ mapping:
+ assistant: '#/components/schemas/ChatAssistantMessage'
+ developer: '#/components/schemas/ChatDeveloperMessage'
+ system: '#/components/schemas/ChatSystemMessage'
+ tool: '#/components/schemas/ChatToolMessage'
+ user: '#/components/schemas/ChatUserMessage'
+ propertyName: role
+ example:
+ content: What is the capital of France?
+ role: user
+ oneOf:
+ - $ref: '#/components/schemas/ChatSystemMessage'
+ - $ref: '#/components/schemas/ChatUserMessage'
+ - $ref: '#/components/schemas/ChatDeveloperMessage'
+ - $ref: '#/components/schemas/ChatAssistantMessage'
+ - $ref: '#/components/schemas/ChatToolMessage'
+ ChatModelNames:
+ description: Models to use for completion
+ example:
+ - openai/gpt-4
+ - openai/gpt-4o
+ items:
+ allOf:
+ - $ref: '#/components/schemas/ModelName'
+ - description: Available OpenRouter chat completion models
+ type: array
+ ChatNamedToolChoice:
+ description: Named tool choice for specific function
+ example:
+ function:
+ name: get_weather
+ type: function
properties:
- code:
- type: integer
- message:
- type: string
- metadata:
+ function:
+ properties:
+ name:
+ description: Function name to call
+ example: get_weather
+ type: string
+ required:
+ - name
type: object
- nullable: true
- additionalProperties:
- nullable: true
+ type:
+ enum:
+ - function
+ type: string
required:
- - code
- - message
- description: Error data for InternalServerResponse
+ - type
+ - function
+ type: object
+ ChatReasoningDetails:
+ description: Reasoning details for extended thinking models
example:
- code: 500
- message: Internal Server Error
- InternalServerResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/InternalServerResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Internal Server Error - Unexpected server error
+ - thinking: Let me work through this step by step...
+ type: thinking
+ items:
+ $ref: '#/components/schemas/ReasoningDetailUnion'
+ type: array
+ ChatReasoningSummaryVerbosityEnum:
+ enum:
+ - auto
+ - concise
+ - detailed
+ - null
+ example: concise
+ nullable: true
+ type: string
+ ChatRequest:
+ description: Chat completion request parameters
example:
- error:
- code: 500
- message: Internal Server Error
- BadGatewayResponseErrorData:
- type: object
+ max_tokens: 150
+ messages:
+ - content: You are a helpful assistant.
+ role: system
+ - content: What is the capital of France?
+ role: user
+ model: openai/gpt-4
+ temperature: 0.7
properties:
- code:
- type: integer
- message:
- type: string
- metadata:
- type: object
- nullable: true
+ cache_control:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ - description: >-
+ Enable automatic prompt caching. When set, the system automatically applies cache breakpoints to the
+ last cacheable block in the request. Currently supported for Anthropic Claude models.
+ debug:
+ $ref: '#/components/schemas/ChatDebugOptions'
+ frequency_penalty:
+ description: Frequency penalty (-2.0 to 2.0)
+ example: 0
+ format: double
+ type: number
+ image_config:
additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for BadGatewayResponse
- example:
- code: 502
- message: Provider returned error
- BadGatewayResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/BadGatewayResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Bad Gateway - Provider/upstream API failure
- example:
- error:
- code: 502
- message: Provider returned error
- ServiceUnavailableResponseErrorData:
- type: object
- properties:
- code:
- type: integer
- message:
- type: string
- metadata:
+ 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
- nullable: true
+ logit_bias:
additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for ServiceUnavailableResponse
- example:
- code: 503
- message: Service temporarily unavailable
- ServiceUnavailableResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/ServiceUnavailableResponseErrorData'
- user_id:
- type: string
+ format: double
+ type: number
+ description: Token logit bias adjustments
+ example:
+ '50256': -100
nullable: true
- required:
- - error
- description: Service Unavailable - Service temporarily unavailable
- example:
- error:
- code: 503
- message: Service temporarily unavailable
- EdgeNetworkTimeoutResponseErrorData:
- type: object
- properties:
- code:
- type: integer
- message:
- type: string
- metadata:
type: object
+ logprobs:
+ description: Return log probabilities
+ example: false
nullable: true
- additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for EdgeNetworkTimeoutResponse
- example:
- code: 524
- message: Request timed out. Please try again later.
- EdgeNetworkTimeoutResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/EdgeNetworkTimeoutResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Infrastructure Timeout - Provider request timed out at edge network
- example:
- error:
- code: 524
- message: Request timed out. Please try again later.
- ProviderOverloadedResponseErrorData:
- type: object
- properties:
- code:
+ type: boolean
+ max_completion_tokens:
+ description: Maximum tokens in completion
+ example: 100
type: integer
- message:
- type: string
+ max_tokens:
+ description: 'Maximum tokens (deprecated, use max_completion_tokens). Note: some providers enforce a minimum of 16.'
+ example: 100
+ type: integer
+ messages:
+ description: List of messages for the conversation
+ example:
+ - content: Hello!
+ role: user
+ items:
+ $ref: '#/components/schemas/ChatMessages'
+ minItems: 1
+ type: array
metadata:
- type: object
- nullable: true
additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for ProviderOverloadedResponse
- example:
- code: 529
- message: Provider returned error
- ProviderOverloadedResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/ProviderOverloadedResponseErrorData'
- user_id:
- type: string
+ type: string
+ description: Key-value pairs for additional object information (max 16 pairs, 64 char keys, 512 char values)
+ example:
+ session_id: session-456
+ user_id: user-123
+ type: object
+ modalities:
+ description: Output modalities for the response. Supported values are "text", "image", and "audio".
+ example:
+ - text
+ - image
+ items:
+ enum:
+ - text
+ - image
+ - audio
+ type: string
+ type: array
+ model:
+ $ref: '#/components/schemas/ModelName'
+ models:
+ $ref: '#/components/schemas/ChatModelNames'
+ parallel_tool_calls:
+ description: >-
+ Whether to enable parallel function calling during tool use. When true, the model may generate multiple tool
+ calls in a single response.
+ example: true
nullable: true
- required:
- - error
- description: Provider Overloaded - Provider is temporarily overloaded
- example:
- error:
- code: 529
- message: Provider returned error
- ReasoningItem:
- allOf:
- - $ref: '#/components/schemas/OutputItemReasoning'
- - type: object
+ type: boolean
+ plugins:
+ description: Plugins you want to enable for this request, including their settings.
+ items:
+ discriminator:
+ mapping:
+ auto-router: '#/components/schemas/AutoRouterPlugin'
+ context-compression: '#/components/schemas/ContextCompressionPlugin'
+ file-parser: '#/components/schemas/FileParserPlugin'
+ moderation: '#/components/schemas/ModerationPlugin'
+ response-healing: '#/components/schemas/ResponseHealingPlugin'
+ web: '#/components/schemas/WebSearchPlugin'
+ propertyName: id
+ oneOf:
+ - $ref: '#/components/schemas/AutoRouterPlugin'
+ - $ref: '#/components/schemas/ModerationPlugin'
+ - $ref: '#/components/schemas/WebSearchPlugin'
+ - $ref: '#/components/schemas/FileParserPlugin'
+ - $ref: '#/components/schemas/ResponseHealingPlugin'
+ - $ref: '#/components/schemas/ContextCompressionPlugin'
+ type: array
+ presence_penalty:
+ description: Presence penalty (-2.0 to 2.0)
+ example: 0
+ format: double
+ type: number
+ provider:
+ $ref: '#/components/schemas/ProviderPreferences'
+ reasoning:
+ description: Configuration options for reasoning models
+ example:
+ effort: medium
+ summary: concise
properties:
- content:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/ReasoningTextContent'
- signature:
- type: string
- nullable: true
- format:
- type: string
- nullable: true
+ effort:
+ description: Constrains effort on reasoning for reasoning models
enum:
- - unknown
- - openai-responses-v1
- - azure-openai-responses-v1
- - xai-responses-v1
- - anthropic-claude-v1
- - google-gemini-v1
- example:
- type: reasoning
- id: reasoning-abc123
- summary:
- - type: summary_text
- text: Step by step analysis
- description: Reasoning output item with signature and format extensions
- InputVideo:
- type: object
- properties:
- type:
- type: string
+ - xhigh
+ - high
+ - medium
+ - low
+ - minimal
+ - none
+ - null
+ example: medium
+ nullable: true
+ type: string
+ summary:
+ $ref: '#/components/schemas/ChatReasoningSummaryVerbosityEnum'
+ type: object
+ response_format:
+ description: Response format configuration
+ discriminator:
+ mapping:
+ grammar: '#/components/schemas/ChatFormatGrammarConfig'
+ json_object: '#/components/schemas/FormatJsonObjectConfig'
+ json_schema: '#/components/schemas/ChatFormatJsonSchemaConfig'
+ python: '#/components/schemas/ChatFormatPythonConfig'
+ text: '#/components/schemas/ChatFormatTextConfig'
+ propertyName: type
+ example:
+ type: json_object
+ oneOf:
+ - $ref: '#/components/schemas/ChatFormatTextConfig'
+ - $ref: '#/components/schemas/FormatJsonObjectConfig'
+ - $ref: '#/components/schemas/ChatFormatJsonSchemaConfig'
+ - $ref: '#/components/schemas/ChatFormatGrammarConfig'
+ - $ref: '#/components/schemas/ChatFormatPythonConfig'
+ route:
+ $ref: '#/components/schemas/DeprecatedRoute'
+ seed:
+ description: Random seed for deterministic outputs
+ example: 42
+ type: integer
+ service_tier:
+ description: The service tier to use for processing this request.
enum:
- - input_video
- video_url:
+ - auto
+ - default
+ - flex
+ - priority
+ - scale
+ - null
+ example: auto
+ nullable: true
type: string
- description: A base64 data URL or remote URL that resolves to a video file
- required:
- - type
- - video_url
- description: Video input content item
- example:
- type: input_video
- video_url: https://example.com/video.mp4
- EasyInputMessage:
- type: object
- properties:
- type:
+ session_id:
+ description: >-
+ A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for
+ observability. If provided in both the request body and the x-session-id header, the body value takes
+ precedence. Maximum of 256 characters.
+ maxLength: 256
type: string
- enum:
- - message
- role:
- anyOf:
- - type: string
- enum:
- - user
- - type: string
- enum:
- - system
- - type: string
- enum:
- - assistant
- - type: string
- enum:
- - developer
- content:
- anyOf:
- - type: array
- items:
- oneOf:
- - $ref: '#/components/schemas/InputText'
- - allOf:
- - $ref: '#/components/schemas/InputImage'
- - type: object
- properties: {}
- description: Image input content item
- example:
- type: input_image
- detail: auto
- image_url: https://example.com/image.jpg
- - $ref: '#/components/schemas/InputFile'
- - $ref: '#/components/schemas/InputAudio'
- - $ref: '#/components/schemas/InputVideo'
- - type: string
- - nullable: true
- phase:
+ stop:
anyOf:
- type: string
- enum:
- - commentary
- - type: string
- enum:
- - final_answer
+ - items:
+ type: string
+ maxItems: 4
+ type: array
- nullable: true
- description: >-
- The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer`
- for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve
- and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.
- example: final_answer
+ description: Stop sequences (up to 4)
+ example:
+ - |+
+
+ stream:
+ default: false
+ description: Enable streaming response
+ example: false
+ type: boolean
+ stream_options:
+ $ref: '#/components/schemas/ChatStreamOptions'
+ temperature:
+ description: Sampling temperature (0-2)
+ example: 0.7
+ format: double
+ type: number
+ tool_choice:
+ $ref: '#/components/schemas/ChatToolChoice'
+ tools:
+ description: Available tools for function calling
+ example:
+ - function:
+ description: Get weather
+ name: get_weather
+ type: function
+ items:
+ $ref: '#/components/schemas/ChatFunctionTool'
+ type: array
+ top_logprobs:
+ description: Number of top log probabilities to return (0-20)
+ example: 5
+ type: integer
+ top_p:
+ description: Nucleus sampling parameter (0-1)
+ example: 1
+ format: double
+ type: number
+ trace:
+ $ref: '#/components/schemas/TraceConfig'
+ user:
+ description: Unique user identifier
+ example: user-123
+ type: string
required:
- - role
- InputMessageItem:
+ - messages
type: object
+ ChatResult:
+ description: Chat completion response
+ example:
+ choices:
+ - finish_reason: stop
+ index: 0
+ message:
+ content: The capital of France is Paris.
+ role: assistant
+ created: 1677652288
+ id: chatcmpl-123
+ model: openai/gpt-4
+ object: chat.completion
+ usage:
+ completion_tokens: 15
+ prompt_tokens: 10
+ total_tokens: 25
properties:
+ choices:
+ description: List of completion choices
+ items:
+ $ref: '#/components/schemas/ChatChoice'
+ type: array
+ created:
+ description: Unix timestamp of creation
+ example: 1677652288
+ type: integer
id:
+ description: Unique completion identifier
+ example: chatcmpl-123
type: string
- type:
- type: string
- enum:
- - message
- role:
- anyOf:
- - type: string
- enum:
- - user
- - type: string
- enum:
- - system
- - type: string
- enum:
- - developer
- content:
- type: array
- nullable: true
- items:
- oneOf:
- - $ref: '#/components/schemas/InputText'
- - allOf:
- - $ref: '#/components/schemas/InputImage'
- - type: object
- properties: {}
- description: Image input content item
- example:
- type: input_image
- detail: auto
- image_url: https://example.com/image.jpg
- - $ref: '#/components/schemas/InputFile'
- - $ref: '#/components/schemas/InputAudio'
- - $ref: '#/components/schemas/InputVideo'
- required:
- - role
- FunctionCallItem:
- type: object
- properties:
- type:
+ model:
+ description: Model used for completion
+ example: openai/gpt-4
type: string
+ object:
enum:
- - function_call
- call_id:
- type: string
- name:
+ - chat.completion
type: string
- arguments:
+ service_tier:
+ description: The service tier used by the upstream provider for this request
+ example: default
+ nullable: true
type: string
- id:
+ system_fingerprint:
+ description: System fingerprint
+ example: fp_44709d6fcb
+ nullable: true
type: string
- status:
- $ref: '#/components/schemas/ToolCallStatusEnum'
+ usage:
+ $ref: '#/components/schemas/ChatUsage'
required:
- - type
- - call_id
- - name
- - arguments
- id
- description: A function call initiated by the model
- example:
- id: call-abc123
- type: function_call
- call_id: call-abc123
- name: get_weather
- arguments: '{"location":"San Francisco"}'
- status: completed
- FunctionCallOutputItem:
+ - choices
+ - created
+ - model
+ - object
+ - system_fingerprint
type: object
+ ChatStreamChoice:
+ description: Streaming completion choice chunk
+ example:
+ delta:
+ content: Hello
+ role: assistant
+ finish_reason: null
+ index: 0
properties:
- type:
+ delta:
+ $ref: '#/components/schemas/ChatStreamDelta'
+ finish_reason:
+ $ref: '#/components/schemas/ChatFinishReasonEnum'
+ index:
+ description: Choice index
+ example: 0
+ type: integer
+ logprobs:
+ $ref: '#/components/schemas/ChatTokenLogprobs'
+ required:
+ - delta
+ - finish_reason
+ - index
+ type: object
+ ChatStreamChunk:
+ description: Streaming chat completion chunk
+ example:
+ choices:
+ - delta:
+ content: Hello
+ role: assistant
+ finish_reason: null
+ index: 0
+ created: 1677652288
+ id: chatcmpl-123
+ model: openai/gpt-4
+ object: chat.completion.chunk
+ properties:
+ choices:
+ description: List of streaming chunk choices
+ items:
+ $ref: '#/components/schemas/ChatStreamChoice'
+ type: array
+ created:
+ description: Unix timestamp of creation
+ example: 1677652288
+ type: integer
+ error:
+ description: Error information
+ example:
+ code: 429
+ message: Rate limit exceeded
+ properties:
+ code:
+ description: Error code
+ example: 429
+ format: int32
+ type: integer
+ message:
+ description: Error message
+ example: Rate limit exceeded
+ type: string
+ required:
+ - message
+ - code
+ type: object
+ id:
+ description: Unique chunk identifier
+ example: chatcmpl-123
type: string
+ model:
+ description: Model used for completion
+ example: openai/gpt-4
+ type: string
+ object:
enum:
- - function_call_output
- id:
+ - chat.completion.chunk
type: string
+ service_tier:
+ description: The service tier used by the upstream provider for this request
+ example: default
nullable: true
- call_id:
type: string
- output:
- anyOf:
- - type: string
- - type: array
- items:
- oneOf:
- - $ref: '#/components/schemas/InputText'
- - allOf:
- - $ref: '#/components/schemas/InputImage'
- - type: object
- properties: {}
- description: Image input content item
- example:
- type: input_image
- detail: auto
- image_url: https://example.com/image.jpg
- - $ref: '#/components/schemas/InputFile'
- status:
- $ref: '#/components/schemas/ToolCallStatusEnum'
+ system_fingerprint:
+ description: System fingerprint
+ example: fp_44709d6fcb
+ type: string
+ usage:
+ $ref: '#/components/schemas/ChatUsage'
required:
- - type
- - call_id
- - output
- description: The output from a function call execution
- example:
- type: function_call_output
- id: output-abc123
- call_id: call-abc123
- output: '{"temperature":72,"conditions":"sunny"}'
- status: completed
- OutputDatetimeItem:
+ - id
+ - choices
+ - created
+ - model
+ - object
type: object
+ x-speakeasy-entity: ChatStreamChunk
+ ChatStreamDelta:
+ description: Delta changes in streaming response
+ example:
+ content: Hello
+ role: assistant
properties:
- type:
+ audio:
+ allOf:
+ - $ref: '#/components/schemas/ChatAudioOutput'
+ - description: Audio output data
+ content:
+ description: Message content delta
+ example: Hello
+ nullable: true
type: string
- enum:
- - openrouter:datetime
- id:
+ reasoning:
+ description: Reasoning content delta
+ example: I need to
+ nullable: true
type: string
- status:
+ reasoning_details:
+ $ref: '#/components/schemas/ChatStreamReasoningDetails'
+ refusal:
+ description: Refusal message delta
+ example: null
+ nullable: true
type: string
+ role:
+ description: The role of the message author
enum:
- - completed
- - in_progress
- - incomplete
- datetime:
- type: string
- description: ISO 8601 datetime string
- timezone:
+ - assistant
+ example: assistant
type: string
- description: IANA timezone name
- required:
- - type
- - status
- - datetime
- - timezone
- description: An openrouter:datetime server tool output item
- example:
- type: openrouter:datetime
- id: dt_tmp_abc123
- status: completed
- datetime: '2026-03-12T14:30:00.000Z'
- timezone: UTC
- Inputs:
- anyOf:
- - type: string
- - type: array
+ tool_calls:
+ description: Tool calls delta
items:
- anyOf:
- - $ref: '#/components/schemas/ReasoningItem'
- - $ref: '#/components/schemas/EasyInputMessage'
- - $ref: '#/components/schemas/InputMessageItem'
- - $ref: '#/components/schemas/FunctionCallItem'
- - $ref: '#/components/schemas/FunctionCallOutputItem'
- - allOf:
- - $ref: '#/components/schemas/OutputMessageItem'
- - type: object
- properties:
- content:
- anyOf:
- - type: array
- items:
- anyOf:
- - $ref: '#/components/schemas/ResponseOutputText'
- - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
- - type: string
- - nullable: true
- example:
- id: msg-123
- type: message
- role: assistant
- status: completed
- content:
- - type: output_text
- text: Hello! How can I help you?
- annotations: []
- description: An output message item
- - allOf:
- - $ref: '#/components/schemas/OutputReasoningItem'
- - type: object
- properties:
- summary:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/ReasoningSummaryText'
- example:
- id: reasoning-123
- type: reasoning
- status: completed
- summary:
- - type: summary_text
- text: Analyzed the problem and found the optimal solution.
- content:
- - type: reasoning_text
- text: First, we analyze the problem...
- signature: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...
- format: anthropic-claude-v1
- description: An output item containing reasoning
- - $ref: '#/components/schemas/OutputFunctionCallItem'
- - $ref: '#/components/schemas/OutputWebSearchCallItem'
- - $ref: '#/components/schemas/OutputFileSearchCallItem'
- - $ref: '#/components/schemas/OutputImageGenerationCallItem'
- - $ref: '#/components/schemas/OutputDatetimeItem'
- - $ref: '#/components/schemas/OutputServerToolItem'
- description: Input for a response request - can be a string or array of items
- example:
- - role: user
- content: What is the weather today?
- DatetimeServerTool:
+ $ref: '#/components/schemas/ChatStreamToolCall'
+ type: array
type: object
- properties:
- type:
- type: string
- enum:
- - openrouter:datetime
- parameters:
- type: object
- properties:
- timezone:
- type: string
- description: IANA timezone name (e.g. "America/New_York"). Defaults to UTC.
- example: America/New_York
- required:
- - type
- description: 'OpenRouter built-in server tool: returns the current date and time'
+ ChatStreamOptions:
+ description: Streaming configuration options
example:
- type: openrouter:datetime
- parameters:
- timezone: America/New_York
- WebSearchServerTool_OpenRouter:
- type: object
+ include_usage: true
+ nullable: true
properties:
- type:
- type: string
- enum:
- - openrouter:web_search
- parameters:
- type: object
- properties:
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: Maximum number of search results to return per search call. Defaults to 5.
- example: 5
- max_total_results:
- type: number
- minimum: 1
- description: >-
- Maximum total number of search results across all search calls in a single request. Once this limit is
- reached, the tool will stop returning new results.
- example: 20
- required:
- - type
- description: 'OpenRouter built-in server tool: searches the web for current information'
- example:
- type: openrouter:web_search
- parameters:
- max_results: 5
- TextExtendedConfig:
- allOf:
- - $ref: '#/components/schemas/TextConfig'
- - type: object
- properties: {}
- description: Text output configuration including format and verbosity
+ include_usage:
+ deprecated: true
+ description: 'Deprecated: This field has no effect. Full usage details are always included.'
+ example: true
+ type: boolean
+ type: object
+ ChatStreamReasoningDetails:
+ description: Reasoning details for extended thinking models
example:
- format:
+ - text: Let me think about this...
type: text
- verbosity: medium
- ReasoningConfig:
- allOf:
- - $ref: '#/components/schemas/BaseReasoningConfig'
- - type: object
- nullable: true
- properties:
- max_tokens:
- type: number
- nullable: true
- enabled:
- type: boolean
- nullable: true
- description: Configuration for reasoning mode in the response
+ items:
+ $ref: '#/components/schemas/ReasoningDetailUnion'
+ type: array
+ ChatStreamToolCall:
+ description: Tool call delta for streaming responses
example:
- summary: auto
- enabled: true
- OutputModalityEnum:
- type: string
- enum:
- - text
- - image
- ResponseIncludesEnum:
- type: string
- enum:
- - file_search_call.results
- - message.input_image.image_url
- - computer_call_output.output.image_url
- - reasoning.encrypted_content
- - code_interpreter_call.outputs
- OpenAIResponsesTruncation:
- type: string
- nullable: true
- enum:
- - auto
- - disabled
- example: auto
- DataCollection:
- type: string
- nullable: true
- enum:
- - deny
- - allow
- description: >-
- Data collection setting. If no available model provider meets the requirement, your request will return an
- error.
-
- - allow: (default) allow providers which store user data non-transiently and may train on it
-
-
- - deny: use only providers which do not collect user data.
- example: allow
- ProviderName:
- type: string
- enum:
- - AkashML
- - AI21
- - AionLabs
- - Alibaba
- - Ambient
- - Amazon Bedrock
- - Amazon Nova
- - Anthropic
- - Arcee AI
- - AtlasCloud
- - Avian
- - Azure
- - BaseTen
- - BytePlus
- - Black Forest Labs
- - Cerebras
- - Chutes
- - Cirrascale
- - Clarifai
- - Cloudflare
- - Cohere
- - Crusoe
- - DeepInfra
- - DeepSeek
- - Featherless
- - Fireworks
- - Friendli
- - GMICloud
- - Google
- - Google AI Studio
- - Groq
- - Hyperbolic
- - Inception
- - Inceptron
- - InferenceNet
- - Ionstream
- - Infermatic
- - Io Net
- - Inflection
- - Liquid
- - Mara
- - Mancer 2
- - Minimax
- - ModelRun
- - Mistral
- - Modular
- - Moonshot AI
- - Morph
- - NCompass
- - Nebius
- - NextBit
- - Novita
- - Nvidia
- - OpenAI
- - OpenInference
- - Parasail
- - Perplexity
- - Phala
- - Reka
- - Relace
- - SambaNova
- - Seed
- - SiliconFlow
- - Sourceful
- - StepFun
- - Stealth
- - StreamLake
- - Switchpoint
- - Together
- - Upstage
- - Venice
- - WandB
- - Xiaomi
- - xAI
- - Z.AI
- - FakeProvider
- example: OpenAI
- Quantization:
- type: string
- enum:
- - int4
- - int8
- - fp4
- - fp6
- - fp8
- - fp16
- - bf16
- - fp32
- - unknown
- example: fp16
- ProviderSort:
- type: string
- enum:
- - price
- - throughput
- - latency
- - exacto
- description: The provider sorting strategy (price, throughput, latency)
- example: price
- ProviderSortConfig:
- type: object
+ function:
+ arguments: '{"location": "..."}'
+ name: get_weather
+ id: call_abc123
+ index: 0
+ type: function
properties:
- by:
+ function:
+ description: Function call details
+ properties:
+ arguments:
+ description: Function arguments as JSON string
+ example: '{"location": "..."}'
+ type: string
+ name:
+ description: Function name
+ example: get_weather
+ type: string
+ type: object
+ id:
+ description: Tool call identifier
+ example: call_abc123
type: string
- nullable: true
+ index:
+ description: Tool call index in the array
+ example: 0
+ type: integer
+ type:
+ description: Tool call type
enum:
- - price
- - throughput
- - latency
- - exacto
- description: The provider sorting strategy (price, throughput, latency)
- example: price
- partition:
+ - function
+ example: function
type: string
- nullable: true
- enum:
- - model
- - none
- description: >-
- Partitioning strategy for sorting: "model" (default) groups endpoints by model before sorting (fallback
- models remain fallbacks), "none" sorts all endpoints together regardless of model.
- example: model
- description: The provider sorting strategy (price, throughput, latency)
- example:
- by: price
- partition: model
- BigNumberUnion:
- type: string
- description: Price per million prompt tokens
- example: 1000
- PercentileThroughputCutoffs:
+ required:
+ - index
type: object
+ ChatSystemMessage:
+ description: System message for setting behavior
+ example:
+ content: You are a helpful assistant.
+ name: Assistant Config
+ role: system
properties:
- p50:
- type: number
- nullable: true
- description: Minimum p50 throughput (tokens/sec)
- p75:
- type: number
- nullable: true
- description: Minimum p75 throughput (tokens/sec)
- p90:
- type: number
- nullable: true
- description: Minimum p90 throughput (tokens/sec)
- p99:
- type: number
- nullable: true
- description: Minimum p99 throughput (tokens/sec)
- description: Percentile-based throughput cutoffs. All specified cutoffs must be met for an endpoint to be preferred.
- example:
- p50: 100
- p90: 50
- PreferredMinThroughput:
- anyOf:
- - type: number
- - $ref: '#/components/schemas/PercentileThroughputCutoffs'
- - nullable: true
- description: >-
- Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with
- percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in
- routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if
- it meets the threshold.
- example: 100
- PercentileLatencyCutoffs:
+ content:
+ anyOf:
+ - type: string
+ - items:
+ $ref: '#/components/schemas/ChatContentText'
+ type: array
+ description: System message content
+ example: You are a helpful assistant.
+ name:
+ description: Optional name for the system message
+ example: Assistant Config
+ type: string
+ role:
+ enum:
+ - system
+ type: string
+ required:
+ - role
+ - content
type: object
+ ChatTokenLogprob:
+ description: Token log probability information
+ example:
+ bytes: null
+ logprob: -0.612345
+ token: ' Hello'
+ top_logprobs:
+ - bytes: null
+ logprob: -0.612345
+ token: ' Hello'
properties:
- p50:
- type: number
- nullable: true
- description: Maximum p50 latency (seconds)
- p75:
- type: number
+ bytes:
+ description: UTF-8 bytes of the token
+ items:
+ type: integer
nullable: true
- description: Maximum p75 latency (seconds)
- p90:
+ type: array
+ logprob:
+ description: Log probability of the token
+ format: double
type: number
+ token:
+ description: The token
+ type: string
+ top_logprobs:
+ description: Top alternative tokens with probabilities
+ items:
+ properties:
+ bytes:
+ items:
+ type: integer
+ nullable: true
+ type: array
+ logprob:
+ format: double
+ type: number
+ token:
+ type: string
+ required:
+ - token
+ - logprob
+ - bytes
+ type: object
+ type: array
+ required:
+ - token
+ - logprob
+ - bytes
+ - top_logprobs
+ type: object
+ ChatTokenLogprobs:
+ description: Log probabilities for the completion
+ example:
+ content:
+ - bytes: null
+ logprob: -0.612345
+ token: ' Hello'
+ top_logprobs: []
+ refusal: null
+ nullable: true
+ properties:
+ content:
+ description: Log probabilities for content tokens
+ items:
+ $ref: '#/components/schemas/ChatTokenLogprob'
nullable: true
- description: Maximum p90 latency (seconds)
- p99:
- type: number
+ type: array
+ refusal:
+ description: Log probabilities for refusal tokens
+ items:
+ $ref: '#/components/schemas/ChatTokenLogprob'
nullable: true
- description: Maximum p99 latency (seconds)
- description: Percentile-based latency cutoffs. All specified cutoffs must be met for an endpoint to be preferred.
+ type: array
+ required:
+ - content
+ type: object
+ ChatToolCall:
+ description: Tool call made by the assistant
example:
- p50: 5
- p90: 10
- PreferredMaxLatency:
- anyOf:
- - type: number
- - $ref: '#/components/schemas/PercentileLatencyCutoffs'
- - nullable: true
- description: >-
- Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific
- cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using
- fallback models, this may cause a fallback model to be used instead of the primary model if it meets the
- threshold.
- example: 5
- WebSearchEngine:
- type: string
- enum:
- - native
- - exa
- - firecrawl
- - parallel
- description: The search engine to use for web search.
- PDFParserEngine:
- anyOf:
- - type: string
- enum:
- - mistral-ocr
- - native
- - cloudflare-ai
- - type: string
+ function:
+ arguments: '{"location": "Boston, MA"}'
+ name: get_current_weather
+ id: call_abc123
+ type: function
+ properties:
+ function:
+ properties:
+ arguments:
+ description: Function arguments as JSON string
+ type: string
+ name:
+ description: Function name to call
+ type: string
+ required:
+ - name
+ - arguments
+ type: object
+ id:
+ description: Tool call identifier
+ type: string
+ type:
enum:
- - pdf-text
- description: >-
- The engine to use for parsing PDF files. "pdf-text" is deprecated and automatically redirected to
- "cloudflare-ai".
- PDFParserOptions:
+ - function
+ type: string
+ required:
+ - id
+ - type
+ - function
type: object
+ ChatToolChoice:
+ anyOf:
+ - enum:
+ - none
+ type: string
+ - enum:
+ - auto
+ type: string
+ - enum:
+ - required
+ type: string
+ - $ref: '#/components/schemas/ChatNamedToolChoice'
+ description: Tool choice configuration
+ example: auto
+ ChatToolMessage:
+ description: Tool response message
+ example:
+ content: The weather in San Francisco is 72°F and sunny.
+ role: tool
+ tool_call_id: call_abc123
properties:
- engine:
- $ref: '#/components/schemas/PDFParserEngine'
- description: Options for PDF parsing.
- ContextCompressionEngine:
- type: string
- enum:
- - middle-out
- description: The compression engine to use. Defaults to "middle-out".
- ResponsesRequest:
+ content:
+ anyOf:
+ - type: string
+ - items:
+ $ref: '#/components/schemas/ChatContentItems'
+ type: array
+ description: Tool response content
+ example: The weather in San Francisco is 72°F and sunny.
+ role:
+ enum:
+ - tool
+ type: string
+ tool_call_id:
+ description: ID of the assistant message tool call this message responds to
+ example: call_abc123
+ type: string
+ required:
+ - role
+ - content
+ - tool_call_id
type: object
+ ChatUsage:
+ description: Token usage statistics
+ example:
+ completion_tokens: 15
+ completion_tokens_details:
+ reasoning_tokens: 5
+ prompt_tokens: 10
+ prompt_tokens_details:
+ cached_tokens: 2
+ total_tokens: 25
properties:
- input:
- $ref: '#/components/schemas/Inputs'
- instructions:
- type: string
+ completion_tokens:
+ description: Number of tokens in the completion
+ type: integer
+ completion_tokens_details:
+ description: Detailed completion token usage
nullable: true
- metadata:
- $ref: '#/components/schemas/RequestMetadata'
- tools:
- type: array
- items:
- anyOf:
- - allOf:
- - $ref: '#/components/schemas/FunctionTool'
- - type: object
- properties: {}
- description: Function tool definition
- example:
- type: function
- name: get_weather
- description: Get the current weather in a location
- parameters:
- type: object
- properties:
- location:
- type: string
- description: The city and state
- unit:
- type: string
- enum:
- - celsius
- - fahrenheit
- required:
- - location
- - $ref: '#/components/schemas/Preview_WebSearchServerTool'
- - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool'
- - $ref: '#/components/schemas/Legacy_WebSearchServerTool'
- - $ref: '#/components/schemas/WebSearchServerTool'
- - $ref: '#/components/schemas/FileSearchServerTool'
- - $ref: '#/components/schemas/ComputerUseServerTool'
- - $ref: '#/components/schemas/CodeInterpreterServerTool'
- - $ref: '#/components/schemas/McpServerTool'
- - $ref: '#/components/schemas/ImageGenerationServerTool'
- - $ref: '#/components/schemas/CodexLocalShellTool'
- - $ref: '#/components/schemas/ShellServerTool'
- - $ref: '#/components/schemas/ApplyPatchServerTool'
- - $ref: '#/components/schemas/CustomTool'
- - $ref: '#/components/schemas/DatetimeServerTool'
- - $ref: '#/components/schemas/WebSearchServerTool_OpenRouter'
- tool_choice:
- $ref: '#/components/schemas/OpenAIResponsesToolChoice'
- parallel_tool_calls:
- type: boolean
- nullable: true
- model:
- type: string
- models:
- type: array
- items:
- type: string
- text:
- $ref: '#/components/schemas/TextExtendedConfig'
- reasoning:
- $ref: '#/components/schemas/ReasoningConfig'
- max_output_tokens:
- type: number
- nullable: true
- temperature:
- type: number
- nullable: true
- minimum: 0
- maximum: 2
- top_p:
- type: number
- nullable: true
- minimum: 0
- top_logprobs:
- type: integer
- nullable: true
- minimum: 0
- maximum: 20
- max_tool_calls:
+ properties:
+ accepted_prediction_tokens:
+ description: Accepted prediction tokens
+ type: integer
+ audio_tokens:
+ description: Tokens used for audio output
+ type: integer
+ reasoning_tokens:
+ description: Tokens used for reasoning
+ type: integer
+ rejected_prediction_tokens:
+ description: Rejected prediction tokens
+ type: integer
+ type: object
+ prompt_tokens:
+ description: Number of tokens in the prompt
type: integer
+ prompt_tokens_details:
+ description: Detailed prompt token usage
nullable: true
- presence_penalty:
- type: number
- nullable: true
- minimum: -2
- maximum: 2
- frequency_penalty:
- type: number
- nullable: true
- minimum: -2
- maximum: 2
- top_k:
- type: number
- image_config:
+ properties:
+ audio_tokens:
+ description: Audio input tokens
+ type: integer
+ cache_write_tokens:
+ description: Tokens written to cache. Only returned for models with explicit caching and cache write pricing.
+ type: integer
+ cached_tokens:
+ description: Cached prompt tokens
+ type: integer
+ video_tokens:
+ description: Video input tokens
+ type: integer
type: object
- additionalProperties:
- anyOf:
- - type: string
- - 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'
- modalities:
- type: array
- items:
- $ref: '#/components/schemas/OutputModalityEnum'
- description: Output modalities for the response. Supported values are "text" and "image".
- example:
- - text
- - image
- prompt_cache_key:
+ total_tokens:
+ description: Total number of tokens
+ type: integer
+ required:
+ - completion_tokens
+ - prompt_tokens
+ - total_tokens
+ type: object
+ ChatUserMessage:
+ description: User message
+ example:
+ content: What is the capital of France?
+ role: user
+ properties:
+ content:
+ anyOf:
+ - type: string
+ - items:
+ $ref: '#/components/schemas/ChatContentItems'
+ type: array
+ description: User message content
+ example: What is the capital of France?
+ name:
+ description: Optional name for the user
+ example: User
type: string
- nullable: true
- previous_response_id:
+ role:
+ enum:
+ - user
type: string
- nullable: true
- prompt:
- $ref: '#/components/schemas/StoredPromptTemplate'
- include:
+ required:
+ - role
+ - content
+ type: object
+ ChatWebSearchShorthand:
+ description: Web search tool using OpenAI Responses API syntax. Automatically converted to openrouter:web_search.
+ example:
+ type: web_search_preview
+ properties:
+ allowed_domains:
+ description: >-
+ Limit search results to these domains. Supported by Exa, Parallel, and most native providers (Anthropic,
+ OpenAI, xAI). Not supported with Firecrawl or Perplexity.
+ items:
+ type: string
type: array
- nullable: true
+ engine:
+ $ref: '#/components/schemas/WebSearchEngineEnum'
+ excluded_domains:
+ description: >-
+ Exclude search results from these domains. Supported by Exa, Parallel, Anthropic, and xAI. Not supported
+ with Firecrawl, OpenAI (silently ignored), or Perplexity.
items:
- $ref: '#/components/schemas/ResponseIncludesEnum'
- background:
- type: boolean
- nullable: true
- safety_identifier:
+ type: string
+ type: array
+ max_results:
+ description: >-
+ Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
+ Parallel engines; ignored with native provider search.
+ example: 5
+ type: integer
+ max_total_results:
+ description: >-
+ Maximum total number of search results across all search calls in a single request. Once this limit is
+ reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic
+ loops.
+ example: 20
+ type: integer
+ parameters:
+ $ref: '#/components/schemas/WebSearchConfig'
+ search_context_size:
+ $ref: '#/components/schemas/SearchQualityLevel'
+ type:
+ enum:
+ - web_search
+ - web_search_preview
+ - web_search_preview_2025_03_11
+ - web_search_2025_08_26
type: string
- nullable: true
- store:
- type: boolean
- const: false
- default: false
- service_tier:
+ user_location:
+ $ref: '#/components/schemas/WebSearchUserLocationServerTool'
+ required:
+ - type
+ type: object
+ CodeInterpreterServerTool:
+ description: Code interpreter tool configuration
+ example:
+ container: auto
+ type: code_interpreter
+ properties:
+ container:
+ anyOf:
+ - type: string
+ - properties:
+ file_ids:
+ items:
+ type: string
+ type: array
+ memory_limit:
+ enum:
+ - 1g
+ - 4g
+ - 16g
+ - 64g
+ - null
+ nullable: true
+ type: string
+ type:
+ enum:
+ - auto
+ type: string
+ required:
+ - type
+ type: object
+ type:
+ enum:
+ - code_interpreter
type: string
- nullable: true
+ required:
+ - type
+ - container
+ type: object
+ CodexLocalShellTool:
+ description: Local shell tool configuration
+ example:
+ type: local_shell
+ properties:
+ type:
enum:
- - auto
- - default
- - flex
- - priority
- - scale
- default: auto
- truncation:
- $ref: '#/components/schemas/OpenAIResponsesTruncation'
- stream:
- type: boolean
- default: false
- provider:
- type: object
- nullable: true
- properties:
- allow_fallbacks:
- type: boolean
- nullable: true
- description: >
- Whether to allow backup providers to serve requests
-
- - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use
- the next best provider.
-
- - false: use only the primary/custom provider, and return the upstream error if it's unavailable.
- require_parameters:
- type: boolean
- nullable: true
- description: >-
- Whether to filter providers to only those that support the parameters you've provided. If this setting
- is omitted or set to false, then providers will receive only the parameters they support, and ignore the
- rest.
- data_collection:
- $ref: '#/components/schemas/DataCollection'
- zdr:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that
- do not retain prompts will be used.
- example: true
- enforce_distillable_text:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only models that allow text distillation. When true, only models where
- the author has allowed distillation will be used.
- example: true
- order:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- An ordered list of provider slugs. The router will attempt to use the first provider in the subset of
- this list that supports your requested model, and fall back to the next if it is unavailable. If no
- providers are available, the request will fail with an error message.
- only:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to allow. If provided, this list is merged with your account-wide allowed
- provider settings for this request.
- ignore:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored
- provider settings for this request.
- quantizations:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/Quantization'
- description: A list of quantization levels to filter the provider by.
- sort:
- anyOf:
- - $ref: '#/components/schemas/ProviderSort'
- - $ref: '#/components/schemas/ProviderSortConfig'
- - nullable: true
- description: >-
- The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing
- is performed.
- example: price
- max_price:
- type: object
- properties:
- prompt:
- $ref: '#/components/schemas/BigNumberUnion'
- completion:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per million completion tokens
- image:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per image
- audio:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per audio unit
- request:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per request
- description: >-
- The object specifying the maximum price you want to pay for this request. USD price per million tokens,
- for prompt and completion.
- preferred_min_throughput:
- $ref: '#/components/schemas/PreferredMinThroughput'
- preferred_max_latency:
- $ref: '#/components/schemas/PreferredMaxLatency'
- additionalProperties: false
- description: When multiple model providers are available, optionally indicate your routing preference.
- plugins:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- id:
- type: string
- enum:
- - auto-router
- enabled:
- type: boolean
- description: Set to false to disable the auto-router plugin for this request. Defaults to true.
- allowed_models:
- type: array
- items:
- type: string
- description: >-
- List of model patterns to filter which models the auto-router can route between. Supports
- wildcards (e.g., "anthropic/*" matches all Anthropic models). When not specified, uses the default
- supported models list.
- example:
- - anthropic/*
- - openai/gpt-4o
- - google/*
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - moderation
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - web
- enabled:
- type: boolean
- description: Set to false to disable the web-search plugin for this request. Defaults to true.
- max_results:
- type: number
- search_prompt:
- type: string
- engine:
- $ref: '#/components/schemas/WebSearchEngine'
- include_domains:
- type: array
- items:
- type: string
- description: >-
- A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com")
- and path filtering (e.g. "openai.com/blog").
- example:
- - example.com
- - '*.substack.com'
- - openai.com/blog
- exclude_domains:
- type: array
- items:
- type: string
- description: >-
- A list of domains to exclude from web search results. Supports wildcards (e.g. "*.substack.com")
- and path filtering (e.g. "openai.com/blog").
- example:
- - example.com
- - '*.substack.com'
- - openai.com/blog
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - file-parser
- enabled:
- type: boolean
- description: Set to false to disable the file-parser plugin for this request. Defaults to true.
- pdf:
- $ref: '#/components/schemas/PDFParserOptions'
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - response-healing
- enabled:
- type: boolean
- description: Set to false to disable the response-healing plugin for this request. Defaults to true.
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - context-compression
- enabled:
- type: boolean
- description: Set to false to disable the context-compression plugin for this request. Defaults to true.
- engine:
- $ref: '#/components/schemas/ContextCompressionEngine'
- required:
- - id
- description: Plugins you want to enable for this request, including their settings.
- route:
+ - local_shell
type: string
- nullable: true
+ required:
+ - type
+ type: object
+ CompletedEvent:
+ description: Event emitted when a response has completed successfully
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output:
+ - content:
+ - annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ id: item-1
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: true
+ status: completed
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 10
+ type: response.completed
+ properties:
+ response:
+ $ref: '#/components/schemas/BaseResponsesResult'
+ sequence_number:
+ type: integer
+ type:
enum:
- - fallback
- - sort
- deprecated: true
- description: >-
- **DEPRECATED** Use providers.sort.partition instead. Backwards-compatible alias for
- providers.sort.partition. Accepts legacy values: "fallback" (maps to "model"), "sort" (maps to "none").
- x-speakeasy-deprecation-message: Use providers.sort.partition instead.
- x-speakeasy-ignore: true
- x-fern-ignore: true
- user:
- type: string
- maxLength: 256
- description: >-
- A unique identifier representing your end-user, which helps distinguish between different users of your app.
- This allows your app to identify specific users in case of abuse reports, preventing your entire app from
- being affected by the actions of individual users. Maximum of 256 characters.
- session_id:
+ - response.completed
type: string
- maxLength: 256
- description: >-
- A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for
- observability. If provided in both the request body and the x-session-id header, the body value takes
- precedence. Maximum of 256 characters.
- trace:
- type: object
- properties:
- trace_id:
- type: string
- trace_name:
- type: string
- span_name:
- type: string
- generation_name:
- type: string
- parent_span_id:
- type: string
- additionalProperties:
- nullable: true
- description: >-
- Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name,
- parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured
- broadcast destinations.
- description: Request schema for Responses endpoint
- example:
- model: anthropic/claude-4.5-sonnet-20250929
- input:
- - type: message
- content: Hello, how are you?
- role: user
- temperature: 0.7
- top_p: 0.9
- tools:
- - type: function
- name: get_current_weather
- description: Get the current weather in a given location
- parameters:
- type: object
- properties:
- location:
- type: string
- BaseMessagesResult:
+ required:
+ - type
+ - response
+ - sequence_number
type: object
+ CompoundFilter:
+ description: A compound filter that combines multiple comparison or compound filters
+ example:
+ filters:
+ - key: author
+ type: eq
+ value: Alice
+ type: and
properties:
- id:
- type: string
+ filters:
+ items:
+ additionalProperties:
+ nullable: true
+ type: object
+ type: array
type:
+ enum:
+ - and
+ - or
type: string
+ required:
+ - type
+ - filters
+ type: object
+ ComputerUseServerTool:
+ description: Computer use preview tool configuration
+ example:
+ display_height: 768
+ display_width: 1024
+ environment: linux
+ type: computer_use_preview
+ properties:
+ display_height:
+ type: integer
+ display_width:
+ type: integer
+ environment:
enum:
- - message
- role:
+ - windows
+ - mac
+ - linux
+ - ubuntu
+ - browser
type: string
+ type:
enum:
- - assistant
- container:
- type: object
+ - computer_use_preview
+ type: string
+ required:
+ - type
+ - display_height
+ - display_width
+ - environment
+ type: object
+ ConflictResponse:
+ description: Conflict - Resource conflict or concurrent modification
+ example:
+ error:
+ code: 409
+ message: Resource conflict. Please try again later.
+ properties:
+ error:
+ $ref: '#/components/schemas/ConflictResponseErrorData'
+ user_id:
nullable: true
- properties:
- id:
- type: string
- expires_at:
- type: string
- required:
- - id
- - expires_at
- content:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- required:
- - type
- - text
- - citations
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_use
- id:
- type: string
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- name:
- type: string
- input:
- nullable: true
- required:
- - type
- - id
- - caller
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - thinking
- thinking:
- type: string
- signature:
- type: string
- required:
- - type
- - thinking
- - signature
- - type: object
- properties:
- type:
- type: string
- enum:
- - redacted_thinking
- data:
- type: string
- required:
- - type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - server_tool_use
- id:
- type: string
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- name:
- type: string
- enum:
- - web_search
- - web_fetch
- - code_execution
- - bash_code_execution
- - text_editor_code_execution
- - tool_search_tool_regex
- - tool_search_tool_bm25
- input:
- nullable: true
- required:
- - type
- - id
- - caller
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- tool_use_id:
- type: string
- content:
- anyOf:
- - type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result
- encrypted_content:
- type: string
- page_age:
- type: string
- nullable: true
- title:
- type: string
- url:
- type: string
- required:
- - type
- - encrypted_content
- - page_age
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - max_uses_exceeded
- - too_many_requests
- - query_too_long
- - request_too_large
- required:
- - type
- - error_code
- required:
- - type
- - caller
- - tool_use_id
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_fetch_tool_result
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- content:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_fetch_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - url_too_long
- - url_not_allowed
- - url_not_accessible
- - unsupported_content_type
- - too_many_requests
- - max_uses_exceeded
- - unavailable
- required:
- - type
- - error_code
- - type: object
- properties:
- content:
- type: object
- properties:
- citations:
- type: object
- nullable: true
- properties:
- enabled:
- type: boolean
- required:
- - enabled
- source:
- anyOf:
- - type: object
- properties:
- data:
- type: string
- media_type:
- type: string
- enum:
- - application/pdf
- type:
- type: string
- enum:
- - base64
- required:
- - data
- - media_type
- - type
- - type: object
- properties:
- data:
- type: string
- media_type:
- type: string
- enum:
- - text/plain
- type:
- type: string
- enum:
- - text
- required:
- - data
- - media_type
- - type
- title:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - document
- required:
- - citations
- - source
- - title
- - type
- retrieved_at:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - web_fetch_result
- url:
- type: string
- required:
- - content
- - retrieved_at
- - type
- - url
- tool_use_id:
- type: string
- required:
- - type
- - caller
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- type:
- type: string
- enum:
- - code_execution_tool_result_error
- required:
- - error_code
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - code_execution_output
- required:
- - file_id
- - type
- return_code:
- type: number
- stderr:
- type: string
- stdout:
- type: string
- type:
- type: string
- enum:
- - code_execution_result
- required:
- - content
- - return_code
- - stderr
- - stdout
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - code_execution_output
- required:
- - file_id
- - type
- encrypted_stdout:
- type: string
- return_code:
- type: number
- stderr:
- type: string
- type:
- type: string
- enum:
- - encrypted_code_execution_result
- required:
- - content
- - encrypted_stdout
- - return_code
- - stderr
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - bash_code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- - output_file_too_large
- type:
- type: string
- enum:
- - bash_code_execution_tool_result_error
- required:
- - error_code
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - bash_code_execution_output
- required:
- - file_id
- - type
- return_code:
- type: number
- stderr:
- type: string
- stdout:
- type: string
- type:
- type: string
- enum:
- - bash_code_execution_result
- required:
- - content
- - return_code
- - stderr
- - stdout
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - text_editor_code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- - file_not_found
- error_message:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_tool_result_error
- required:
- - error_code
- - error_message
- - type
- - type: object
- properties:
- content:
- type: string
- file_type:
- type: string
- enum:
- - text
- - image
- - pdf
- num_lines:
- type: number
- nullable: true
- start_line:
- type: number
- nullable: true
- total_lines:
- type: number
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_view_result
- required:
- - content
- - file_type
- - num_lines
- - start_line
- - total_lines
- - type
- - type: object
- properties:
- is_file_update:
- type: boolean
- type:
- type: string
- enum:
- - text_editor_code_execution_create_result
- required:
- - is_file_update
- - type
- - type: object
- properties:
- lines:
- type: array
- nullable: true
- items:
- type: string
- new_lines:
- type: number
- nullable: true
- new_start:
- type: number
- nullable: true
- old_lines:
- type: number
- nullable: true
- old_start:
- type: number
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_str_replace_result
- required:
- - lines
- - new_lines
- - new_start
- - old_lines
- - old_start
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_search_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- error_message:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - tool_search_tool_result_error
- required:
- - error_code
- - error_message
- - type
- - type: object
- properties:
- tool_references:
- type: array
- items:
- type: object
- properties:
- tool_name:
- type: string
- type:
- type: string
- enum:
- - tool_reference
- required:
- - tool_name
- - type
- type:
- type: string
- enum:
- - tool_search_tool_search_result
- required:
- - tool_references
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - container_upload
- file_id:
- type: string
- required:
- - type
- - file_id
- model:
- type: string
- stop_reason:
- type: string
- nullable: true
- enum:
- - end_turn
- - max_tokens
- - stop_sequence
- - tool_use
- - pause_turn
- - refusal
- stop_sequence:
- type: string
- nullable: true
- usage:
- type: object
- properties:
- input_tokens:
- type: number
- output_tokens:
- type: number
- cache_creation_input_tokens:
- type: number
- nullable: true
- cache_read_input_tokens:
- type: number
- nullable: true
- cache_creation:
- type: object
- nullable: true
- properties:
- ephemeral_5m_input_tokens:
- type: number
- ephemeral_1h_input_tokens:
- type: number
- required:
- - ephemeral_5m_input_tokens
- - ephemeral_1h_input_tokens
- inference_geo:
- type: string
- nullable: true
- server_tool_use:
- type: object
- nullable: true
- properties:
- web_search_requests:
- type: number
- web_fetch_requests:
- type: number
- required:
- - web_search_requests
- - web_fetch_requests
- service_tier:
- type: string
- nullable: true
- enum:
- - standard
- - priority
- - batch
- speed:
- type: string
- nullable: true
- enum:
- - fast
- - standard
- required:
- - input_tokens
- - output_tokens
- - cache_creation_input_tokens
- - cache_read_input_tokens
- - cache_creation
- - inference_geo
- - server_tool_use
- - service_tier
- required:
- - id
- - type
- - role
- - container
- - content
- - model
- - stop_reason
- - stop_sequence
- - usage
- MessagesResult:
- allOf:
- - $ref: '#/components/schemas/BaseMessagesResult'
- - type: object
- properties:
- usage:
- type: object
- properties:
- input_tokens:
- type: number
- output_tokens:
- type: number
- cache_creation_input_tokens:
- type: number
- nullable: true
- cache_read_input_tokens:
- type: number
- nullable: true
- cache_creation:
- type: object
- nullable: true
- properties:
- ephemeral_5m_input_tokens:
- type: number
- ephemeral_1h_input_tokens:
- type: number
- required:
- - ephemeral_5m_input_tokens
- - ephemeral_1h_input_tokens
- inference_geo:
- type: string
- nullable: true
- server_tool_use:
- type: object
- nullable: true
- properties:
- web_search_requests:
- type: number
- web_fetch_requests:
- type: number
- required:
- - web_search_requests
- - web_fetch_requests
- service_tier:
- type: string
- nullable: true
- speed:
- type: string
- nullable: true
- enum:
- - fast
- - standard
- cost:
- type: number
- nullable: true
- is_byok:
- type: boolean
- cost_details:
- type: object
- nullable: true
- properties:
- upstream_inference_cost:
- type: number
- nullable: true
- upstream_inference_prompt_cost:
- type: number
- upstream_inference_completions_cost:
- type: number
- required:
- - upstream_inference_prompt_cost
- - upstream_inference_completions_cost
- required:
- - input_tokens
- - output_tokens
- - cache_creation_input_tokens
- - cache_read_input_tokens
- - cache_creation
- - inference_geo
- - server_tool_use
- - service_tier
- provider:
- type: string
- enum:
- - AnyScale
- - Atoma
- - Cent-ML
- - CrofAI
- - Enfer
- - GoPomelo
- - HuggingFace
- - Hyperbolic 2
- - InoCloud
- - Kluster
- - Lambda
- - Lepton
- - Lynn 2
- - Lynn
- - Mancer
- - Meta
- - Modal
- - Nineteen
- - OctoAI
- - Recursal
- - Reflection
- - Replicate
- - SambaNova 2
- - SF Compute
- - Targon
- - Together 2
- - Ubicloud
- - 01.AI
- - AkashML
- - AI21
- - AionLabs
- - Alibaba
- - Ambient
- - Amazon Bedrock
- - Amazon Nova
- - Anthropic
- - Arcee AI
- - AtlasCloud
- - Avian
- - Azure
- - BaseTen
- - BytePlus
- - Black Forest Labs
- - Cerebras
- - Chutes
- - Cirrascale
- - Clarifai
- - Cloudflare
- - Cohere
- - Crusoe
- - DeepInfra
- - DeepSeek
- - Featherless
- - Fireworks
- - Friendli
- - GMICloud
- - Google
- - Google AI Studio
- - Groq
- - Hyperbolic
- - Inception
- - Inceptron
- - InferenceNet
- - Ionstream
- - Infermatic
- - Io Net
- - Inflection
- - Liquid
- - Mara
- - Mancer 2
- - Minimax
- - ModelRun
- - Mistral
- - Modular
- - Moonshot AI
- - Morph
- - NCompass
- - Nebius
- - NextBit
- - Novita
- - Nvidia
- - OpenAI
- - OpenInference
- - Parasail
- - Perplexity
- - Phala
- - Reka
- - Relace
- - SambaNova
- - Seed
- - SiliconFlow
- - Sourceful
- - StepFun
- - Stealth
- - StreamLake
- - Switchpoint
- - Together
- - Upstage
- - Venice
- - WandB
- - Xiaomi
- - xAI
- - Z.AI
- - FakeProvider
- description: Non-streaming response from the Anthropic Messages API with OpenRouter extensions
- example:
- id: msg_01XFDUDYJgAACzvnptvVoYEL
- type: message
- role: assistant
- container: null
- content:
- - type: text
- text: Hello! I'm doing well, thank you for asking.
- citations: null
- model: claude-sonnet-4-5-20250929
- stop_reason: end_turn
- stop_sequence: null
- usage:
- input_tokens: 12
- output_tokens: 15
- cache_creation_input_tokens: null
- cache_read_input_tokens: null
- cache_creation: null
- inference_geo: null
- server_tool_use: null
- service_tier: standard
- MessagesStartEvent:
- type: object
- properties:
- type:
- type: string
- enum:
- - message_start
- message:
- type: object
- properties:
- id:
- type: string
- type:
- type: string
- enum:
- - message
- role:
- type: string
- enum:
- - assistant
- container:
- type: object
- nullable: true
- properties:
- id:
- type: string
- expires_at:
- type: string
- required:
- - id
- - expires_at
- content:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- required:
- - type
- - text
- - citations
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_use
- id:
- type: string
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- name:
- type: string
- input:
- nullable: true
- required:
- - type
- - id
- - caller
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - thinking
- thinking:
- type: string
- signature:
- type: string
- required:
- - type
- - thinking
- - signature
- - type: object
- properties:
- type:
- type: string
- enum:
- - redacted_thinking
- data:
- type: string
- required:
- - type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - server_tool_use
- id:
- type: string
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- name:
- type: string
- enum:
- - web_search
- - web_fetch
- - code_execution
- - bash_code_execution
- - text_editor_code_execution
- - tool_search_tool_regex
- - tool_search_tool_bm25
- input:
- nullable: true
- required:
- - type
- - id
- - caller
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- tool_use_id:
- type: string
- content:
- anyOf:
- - type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result
- encrypted_content:
- type: string
- page_age:
- type: string
- nullable: true
- title:
- type: string
- url:
- type: string
- required:
- - type
- - encrypted_content
- - page_age
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - max_uses_exceeded
- - too_many_requests
- - query_too_long
- - request_too_large
- required:
- - type
- - error_code
- required:
- - type
- - caller
- - tool_use_id
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_fetch_tool_result
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- content:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_fetch_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - url_too_long
- - url_not_allowed
- - url_not_accessible
- - unsupported_content_type
- - too_many_requests
- - max_uses_exceeded
- - unavailable
- required:
- - type
- - error_code
- - type: object
- properties:
- content:
- type: object
- properties:
- citations:
- type: object
- nullable: true
- properties:
- enabled:
- type: boolean
- required:
- - enabled
- source:
- anyOf:
- - type: object
- properties:
- data:
- type: string
- media_type:
- type: string
- enum:
- - application/pdf
- type:
- type: string
- enum:
- - base64
- required:
- - data
- - media_type
- - type
- - type: object
- properties:
- data:
- type: string
- media_type:
- type: string
- enum:
- - text/plain
- type:
- type: string
- enum:
- - text
- required:
- - data
- - media_type
- - type
- title:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - document
- required:
- - citations
- - source
- - title
- - type
- retrieved_at:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - web_fetch_result
- url:
- type: string
- required:
- - content
- - retrieved_at
- - type
- - url
- tool_use_id:
- type: string
- required:
- - type
- - caller
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- type:
- type: string
- enum:
- - code_execution_tool_result_error
- required:
- - error_code
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - code_execution_output
- required:
- - file_id
- - type
- return_code:
- type: number
- stderr:
- type: string
- stdout:
- type: string
- type:
- type: string
- enum:
- - code_execution_result
- required:
- - content
- - return_code
- - stderr
- - stdout
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - code_execution_output
- required:
- - file_id
- - type
- encrypted_stdout:
- type: string
- return_code:
- type: number
- stderr:
- type: string
- type:
- type: string
- enum:
- - encrypted_code_execution_result
- required:
- - content
- - encrypted_stdout
- - return_code
- - stderr
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - bash_code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- - output_file_too_large
- type:
- type: string
- enum:
- - bash_code_execution_tool_result_error
- required:
- - error_code
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - bash_code_execution_output
- required:
- - file_id
- - type
- return_code:
- type: number
- stderr:
- type: string
- stdout:
- type: string
- type:
- type: string
- enum:
- - bash_code_execution_result
- required:
- - content
- - return_code
- - stderr
- - stdout
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - text_editor_code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- - file_not_found
- error_message:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_tool_result_error
- required:
- - error_code
- - error_message
- - type
- - type: object
- properties:
- content:
- type: string
- file_type:
- type: string
- enum:
- - text
- - image
- - pdf
- num_lines:
- type: number
- nullable: true
- start_line:
- type: number
- nullable: true
- total_lines:
- type: number
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_view_result
- required:
- - content
- - file_type
- - num_lines
- - start_line
- - total_lines
- - type
- - type: object
- properties:
- is_file_update:
- type: boolean
- type:
- type: string
- enum:
- - text_editor_code_execution_create_result
- required:
- - is_file_update
- - type
- - type: object
- properties:
- lines:
- type: array
- nullable: true
- items:
- type: string
- new_lines:
- type: number
- nullable: true
- new_start:
- type: number
- nullable: true
- old_lines:
- type: number
- nullable: true
- old_start:
- type: number
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_str_replace_result
- required:
- - lines
- - new_lines
- - new_start
- - old_lines
- - old_start
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_search_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- error_message:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - tool_search_tool_result_error
- required:
- - error_code
- - error_message
- - type
- - type: object
- properties:
- tool_references:
- type: array
- items:
- type: object
- properties:
- tool_name:
- type: string
- type:
- type: string
- enum:
- - tool_reference
- required:
- - tool_name
- - type
- type:
- type: string
- enum:
- - tool_search_tool_search_result
- required:
- - tool_references
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - container_upload
- file_id:
- type: string
- required:
- - type
- - file_id
- model:
- type: string
- stop_reason:
- nullable: true
- stop_sequence:
- nullable: true
- usage:
- type: object
- properties:
- input_tokens:
- type: number
- output_tokens:
- type: number
- cache_creation_input_tokens:
- type: number
- nullable: true
- cache_read_input_tokens:
- type: number
- nullable: true
- cache_creation:
- type: object
- nullable: true
- properties:
- ephemeral_5m_input_tokens:
- type: number
- ephemeral_1h_input_tokens:
- type: number
- required:
- - ephemeral_5m_input_tokens
- - ephemeral_1h_input_tokens
- inference_geo:
- type: string
- nullable: true
- server_tool_use:
- type: object
- nullable: true
- properties:
- web_search_requests:
- type: number
- web_fetch_requests:
- type: number
- required:
- - web_search_requests
- - web_fetch_requests
- service_tier:
- type: string
- nullable: true
- enum:
- - standard
- - priority
- - batch
- speed:
- type: string
- nullable: true
- enum:
- - fast
- - standard
- required:
- - input_tokens
- - output_tokens
- - cache_creation_input_tokens
- - cache_read_input_tokens
- - cache_creation
- - inference_geo
- - server_tool_use
- - service_tier
- provider:
- type: string
- enum:
- - AnyScale
- - Atoma
- - Cent-ML
- - CrofAI
- - Enfer
- - GoPomelo
- - HuggingFace
- - Hyperbolic 2
- - InoCloud
- - Kluster
- - Lambda
- - Lepton
- - Lynn 2
- - Lynn
- - Mancer
- - Meta
- - Modal
- - Nineteen
- - OctoAI
- - Recursal
- - Reflection
- - Replicate
- - SambaNova 2
- - SF Compute
- - Targon
- - Together 2
- - Ubicloud
- - 01.AI
- - AkashML
- - AI21
- - AionLabs
- - Alibaba
- - Ambient
- - Amazon Bedrock
- - Amazon Nova
- - Anthropic
- - Arcee AI
- - AtlasCloud
- - Avian
- - Azure
- - BaseTen
- - BytePlus
- - Black Forest Labs
- - Cerebras
- - Chutes
- - Cirrascale
- - Clarifai
- - Cloudflare
- - Cohere
- - Crusoe
- - DeepInfra
- - DeepSeek
- - Featherless
- - Fireworks
- - Friendli
- - GMICloud
- - Google
- - Google AI Studio
- - Groq
- - Hyperbolic
- - Inception
- - Inceptron
- - InferenceNet
- - Ionstream
- - Infermatic
- - Io Net
- - Inflection
- - Liquid
- - Mara
- - Mancer 2
- - Minimax
- - ModelRun
- - Mistral
- - Modular
- - Moonshot AI
- - Morph
- - NCompass
- - Nebius
- - NextBit
- - Novita
- - Nvidia
- - OpenAI
- - OpenInference
- - Parasail
- - Perplexity
- - Phala
- - Reka
- - Relace
- - SambaNova
- - Seed
- - SiliconFlow
- - Sourceful
- - StepFun
- - Stealth
- - StreamLake
- - Switchpoint
- - Together
- - Upstage
- - Venice
- - WandB
- - Xiaomi
- - xAI
- - Z.AI
- - FakeProvider
- required:
- - id
- - type
- - role
- - container
- - content
- - model
- - stop_reason
- - stop_sequence
- - usage
- required:
- - type
- - message
- description: Event sent at the start of a streaming message
- MessagesStreamEvents:
- oneOf:
- - $ref: '#/components/schemas/MessagesStartEvent'
- - type: object
- properties:
- type:
- type: string
- enum:
- - message_delta
- delta:
- type: object
- properties:
- container:
- type: object
- nullable: true
- properties:
- id:
- type: string
- expires_at:
- type: string
- required:
- - id
- - expires_at
- stop_reason:
- type: string
- nullable: true
- enum:
- - end_turn
- - max_tokens
- - stop_sequence
- - tool_use
- - pause_turn
- - refusal
- stop_sequence:
- type: string
- nullable: true
- required:
- - container
- - stop_reason
- - stop_sequence
- usage:
- type: object
- properties:
- input_tokens:
- type: number
- nullable: true
- output_tokens:
- type: number
- cache_creation_input_tokens:
- type: number
- nullable: true
- cache_read_input_tokens:
- type: number
- nullable: true
- server_tool_use:
- type: object
- nullable: true
- properties:
- web_search_requests:
- type: number
- web_fetch_requests:
- type: number
- required:
- - web_search_requests
- - web_fetch_requests
- required:
- - input_tokens
- - output_tokens
- - cache_creation_input_tokens
- - cache_read_input_tokens
- - server_tool_use
- required:
- - type
- - delta
- - usage
- - type: object
- properties:
- type:
- type: string
- enum:
- - message_stop
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_start
- index:
- type: number
- content_block:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- required:
- - type
- - text
- - citations
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_use
- id:
- type: string
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- name:
- type: string
- input:
- nullable: true
- required:
- - type
- - id
- - caller
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - thinking
- thinking:
- type: string
- signature:
- type: string
- required:
- - type
- - thinking
- - signature
- - type: object
- properties:
- type:
- type: string
- enum:
- - redacted_thinking
- data:
- type: string
- required:
- - type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - server_tool_use
- id:
- type: string
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- name:
- type: string
- enum:
- - web_search
- - web_fetch
- - code_execution
- - bash_code_execution
- - text_editor_code_execution
- - tool_search_tool_regex
- - tool_search_tool_bm25
- input:
- nullable: true
- required:
- - type
- - id
- - caller
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- tool_use_id:
- type: string
- content:
- anyOf:
- - type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result
- encrypted_content:
- type: string
- page_age:
- type: string
- nullable: true
- title:
- type: string
- url:
- type: string
- required:
- - type
- - encrypted_content
- - page_age
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - max_uses_exceeded
- - too_many_requests
- - query_too_long
- - request_too_large
- required:
- - type
- - error_code
- required:
- - type
- - caller
- - tool_use_id
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_fetch_tool_result
- caller:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - direct
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20250825
- tool_id:
- type: string
- required:
- - type
- - tool_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_20260120
- tool_id:
- type: string
- required:
- - type
- - tool_id
- content:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_fetch_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - url_too_long
- - url_not_allowed
- - url_not_accessible
- - unsupported_content_type
- - too_many_requests
- - max_uses_exceeded
- - unavailable
- required:
- - type
- - error_code
- - type: object
- properties:
- content:
- type: object
- properties:
- citations:
- type: object
- nullable: true
- properties:
- enabled:
- type: boolean
- required:
- - enabled
- source:
- anyOf:
- - type: object
- properties:
- data:
- type: string
- media_type:
- type: string
- enum:
- - application/pdf
- type:
- type: string
- enum:
- - base64
- required:
- - data
- - media_type
- - type
- - type: object
- properties:
- data:
- type: string
- media_type:
- type: string
- enum:
- - text/plain
- type:
- type: string
- enum:
- - text
- required:
- - data
- - media_type
- - type
- title:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - document
- required:
- - citations
- - source
- - title
- - type
- retrieved_at:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - web_fetch_result
- url:
- type: string
- required:
- - content
- - retrieved_at
- - type
- - url
- tool_use_id:
- type: string
- required:
- - type
- - caller
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- type:
- type: string
- enum:
- - code_execution_tool_result_error
- required:
- - error_code
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - code_execution_output
- required:
- - file_id
- - type
- return_code:
- type: number
- stderr:
- type: string
- stdout:
- type: string
- type:
- type: string
- enum:
- - code_execution_result
- required:
- - content
- - return_code
- - stderr
- - stdout
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - code_execution_output
- required:
- - file_id
- - type
- encrypted_stdout:
- type: string
- return_code:
- type: number
- stderr:
- type: string
- type:
- type: string
- enum:
- - encrypted_code_execution_result
- required:
- - content
- - encrypted_stdout
- - return_code
- - stderr
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - bash_code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- - output_file_too_large
- type:
- type: string
- enum:
- - bash_code_execution_tool_result_error
- required:
- - error_code
- - type
- - type: object
- properties:
- content:
- type: array
- items:
- type: object
- properties:
- file_id:
- type: string
- type:
- type: string
- enum:
- - bash_code_execution_output
- required:
- - file_id
- - type
- return_code:
- type: number
- stderr:
- type: string
- stdout:
- type: string
- type:
- type: string
- enum:
- - bash_code_execution_result
- required:
- - content
- - return_code
- - stderr
- - stdout
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - text_editor_code_execution_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- - file_not_found
- error_message:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_tool_result_error
- required:
- - error_code
- - error_message
- - type
- - type: object
- properties:
- content:
- type: string
- file_type:
- type: string
- enum:
- - text
- - image
- - pdf
- num_lines:
- type: number
- nullable: true
- start_line:
- type: number
- nullable: true
- total_lines:
- type: number
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_view_result
- required:
- - content
- - file_type
- - num_lines
- - start_line
- - total_lines
- - type
- - type: object
- properties:
- is_file_update:
- type: boolean
- type:
- type: string
- enum:
- - text_editor_code_execution_create_result
- required:
- - is_file_update
- - type
- - type: object
- properties:
- lines:
- type: array
- nullable: true
- items:
- type: string
- new_lines:
- type: number
- nullable: true
- new_start:
- type: number
- nullable: true
- old_lines:
- type: number
- nullable: true
- old_start:
- type: number
- nullable: true
- type:
- type: string
- enum:
- - text_editor_code_execution_str_replace_result
- required:
- - lines
- - new_lines
- - new_start
- - old_lines
- - old_start
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_search_tool_result
- content:
- oneOf:
- - type: object
- properties:
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - too_many_requests
- - execution_time_exceeded
- error_message:
- type: string
- nullable: true
- type:
- type: string
- enum:
- - tool_search_tool_result_error
- required:
- - error_code
- - error_message
- - type
- - type: object
- properties:
- tool_references:
- type: array
- items:
- type: object
- properties:
- tool_name:
- type: string
- type:
- type: string
- enum:
- - tool_reference
- required:
- - tool_name
- - type
- type:
- type: string
- enum:
- - tool_search_tool_search_result
- required:
- - tool_references
- - type
- tool_use_id:
- type: string
- required:
- - type
- - content
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - container_upload
- file_id:
- type: string
- required:
- - type
- - file_id
- required:
- - type
- - index
- - content_block
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_delta
- index:
- type: number
- delta:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text_delta
- text:
- type: string
- required:
- - type
- - text
- - type: object
- properties:
- type:
- type: string
- enum:
- - input_json_delta
- partial_json:
- type: string
- required:
- - type
- - partial_json
- - type: object
- properties:
- type:
- type: string
- enum:
- - thinking_delta
- thinking:
- type: string
- required:
- - type
- - thinking
- - type: object
- properties:
- type:
- type: string
- enum:
- - signature_delta
- signature:
- type: string
- required:
- - type
- - signature
- - type: object
- properties:
- type:
- type: string
- enum:
- - citations_delta
- citation:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- file_id:
- type: string
- nullable: true
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - file_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- required:
- - type
- - citation
- required:
- - type
- - index
- - delta
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_stop
- index:
- type: number
- required:
- - type
- - index
- - type: object
- properties:
- type:
- type: string
- enum:
- - ping
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- description: Union of all possible streaming events
- MessagesMessageParam:
- type: object
- properties:
- role:
- type: string
- enum:
- - user
- - assistant
- content:
- anyOf:
- - type: string
- - type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- - type: object
- properties:
- type:
- type: string
- enum:
- - image
- source:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - base64
- media_type:
- type: string
- enum:
- - image/jpeg
- - image/png
- - image/gif
- - image/webp
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- - type: object
- properties:
- type:
- type: string
- enum:
- - document
- source:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - base64
- media_type:
- type: string
- enum:
- - application/pdf
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- media_type:
- type: string
- enum:
- - text/plain
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - content
- content:
- anyOf:
- - type: string
- - type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- - type: object
- properties:
- type:
- type: string
- enum:
- - image
- source:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - base64
- media_type:
- type: string
- enum:
- - image/jpeg
- - image/png
- - image/gif
- - image/webp
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- required:
- - type
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- citations:
- type: object
- nullable: true
- properties:
- enabled:
- type: boolean
- context:
- type: string
- nullable: true
- title:
- type: string
- nullable: true
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_use
- id:
- type: string
- name:
- type: string
- input:
- nullable: true
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - id
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_result
- tool_use_id:
- type: string
- content:
- anyOf:
- - type: string
- - type: array
- items:
- anyOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- - type: object
- properties:
- type:
- type: string
- enum:
- - image
- source:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - base64
- media_type:
- type: string
- enum:
- - image/jpeg
- - image/png
- - image/gif
- - image/webp
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_reference
- tool_name:
- type: string
- required:
- - type
- - tool_name
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result
- source:
- type: string
- title:
- type: string
- content:
- type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- citations:
- type: object
- properties:
- enabled:
- type: boolean
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- - title
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - document
- source:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - base64
- media_type:
- type: string
- enum:
- - application/pdf
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- media_type:
- type: string
- enum:
- - text/plain
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - content
- content:
- anyOf:
- - type: string
- - type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- - type: object
- properties:
- type:
- type: string
- enum:
- - image
- source:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - base64
- media_type:
- type: string
- enum:
- - image/jpeg
- - image/png
- - image/gif
- - image/webp
- data:
- type: string
- required:
- - type
- - media_type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- required:
- - type
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - url
- url:
- type: string
- required:
- - type
- - url
- citations:
- type: object
- nullable: true
- properties:
- enabled:
- type: boolean
- context:
- type: string
- nullable: true
- title:
- type: string
- nullable: true
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- is_error:
- type: boolean
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - tool_use_id
- - type: object
- properties:
- type:
- type: string
- enum:
- - thinking
- thinking:
- type: string
- signature:
- type: string
- required:
- - type
- - thinking
- - signature
- - type: object
- properties:
- type:
- type: string
- enum:
- - redacted_thinking
- data:
- type: string
- required:
- - type
- - data
- - type: object
- properties:
- type:
- type: string
- enum:
- - server_tool_use
- id:
- type: string
- name:
- type: string
- enum:
- - web_search
- - web_fetch
- - code_execution
- - bash_code_execution
- - text_editor_code_execution
- - tool_search_tool_regex
- - tool_search_tool_bm25
- input:
- nullable: true
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - id
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result
- tool_use_id:
- type: string
- content:
- anyOf:
- - type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result
- encrypted_content:
- type: string
- title:
- type: string
- url:
- type: string
- page_age:
- type: string
- nullable: true
- required:
- - type
- - encrypted_content
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_tool_result_error
- error_code:
- type: string
- enum:
- - invalid_tool_input
- - unavailable
- - max_uses_exceeded
- - too_many_requests
- - query_too_long
- required:
- - type
- - error_code
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - tool_use_id
- - content
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result
- source:
- type: string
- title:
- type: string
- content:
- type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- citations:
- type: object
- properties:
- enabled:
- type: boolean
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - source
- - title
- - content
- required:
- - role
- - content
- description: Anthropic message with OpenRouter extensions
- MessagesWebSearchServerTool:
- type: object
- properties:
- type:
- type: string
- enum:
- - openrouter:web_search
- parameters:
- type: object
- properties:
- engine:
- type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses
- Firecrawl (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl,
- and Parallel engines; ignored with native provider search.
- example: 5
- max_total_results:
- type: number
- minimum: 1
- description: >-
- Maximum total number of search results across all search calls in a single request. Once this limit is
- reached, the tool will stop returning new results. Useful for controlling cost and context size in
- agentic loops.
- example: 20
- search_context_size:
- type: string
- enum:
- - low
- - medium
- - high
- description: >-
- How much context to retrieve per result. Defaults to medium (15000 chars). Only applies when using the
- Exa engine; ignored with native provider search.
- user_location:
- type: object
- properties:
- type:
- type: string
- enum:
- - approximate
- city:
- type: string
- region:
- type: string
- country:
- type: string
- timezone:
- type: string
- description: Approximate user location for location-biased results.
- allowed_domains:
- type: array
- items:
- type: string
- description: >-
- Limit search results to these domains. Applies to Exa and Parallel engines. Not supported with Firecrawl
- or native provider search.
- excluded_domains:
- type: array
- items:
- type: string
- description: >-
- Exclude search results from these domains. Applies to Exa and Parallel engines. Not supported with
- Firecrawl or native provider search.
- required:
- - type
- description: 'OpenRouter built-in server tool: searches the web for current information'
- example:
- type: openrouter:web_search
- parameters:
- max_results: 5
- MessagesOutputConfig:
- type: object
- properties:
- effort:
- type: string
- nullable: true
- enum:
- - low
- - medium
- - high
- - max
- description: >-
- How much effort the model should put into its response. Higher effort levels may result in more thorough
- analysis but take longer. Valid values are `low`, `medium`, `high`, or `max`.
- example: medium
- format:
- type: object
- nullable: true
- properties:
- type:
- type: string
- enum:
- - json_schema
- schema:
- type: object
- additionalProperties:
- nullable: true
- required:
- - type
- - schema
- description: >-
- A schema to specify Claude's output format in responses. See [structured
- outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
- description: Configuration for controlling output behavior. Supports the effort parameter and structured output format.
- MessagesRequest:
- type: object
- properties:
- model:
- type: string
- max_tokens:
- type: number
- messages:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/MessagesMessageParam'
- system:
- anyOf:
- - type: string
- - type: array
- items:
- type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- citations:
- type: array
- nullable: true
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - char_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_char_index:
- type: number
- end_char_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_char_index
- - end_char_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - page_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_page_number:
- type: number
- end_page_number:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_page_number
- - end_page_number
- - type: object
- properties:
- type:
- type: string
- enum:
- - content_block_location
- cited_text:
- type: string
- document_index:
- type: number
- document_title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - document_index
- - document_title
- - start_block_index
- - end_block_index
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_result_location
- cited_text:
- type: string
- encrypted_index:
- type: string
- title:
- type: string
- nullable: true
- url:
- type: string
- required:
- - type
- - cited_text
- - encrypted_index
- - title
- - url
- - type: object
- properties:
- type:
- type: string
- enum:
- - search_result_location
- cited_text:
- type: string
- search_result_index:
- type: number
- source:
- type: string
- title:
- type: string
- nullable: true
- start_block_index:
- type: number
- end_block_index:
- type: number
- required:
- - type
- - cited_text
- - search_result_index
- - source
- - title
- - start_block_index
- - end_block_index
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - text
- metadata:
- type: object
- properties:
- user_id:
- type: string
- nullable: true
- stop_sequences:
- type: array
- items:
- type: string
- temperature:
- type: number
- top_p:
- type: number
- top_k:
- type: number
- tools:
- type: array
- items:
- anyOf:
- - type: object
- properties:
- name:
- type: string
- description:
- type: string
- input_schema:
- type: object
- properties:
- type:
- type: string
- default: object
- properties:
- nullable: true
- required:
- type: array
- nullable: true
- items:
- type: string
- additionalProperties:
- nullable: true
- type:
- type: string
- enum:
- - custom
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - name
- - input_schema
- - type: object
- properties:
- type:
- type: string
- enum:
- - bash_20250124
- name:
- type: string
- enum:
- - bash
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - text_editor_20250124
- name:
- type: string
- enum:
- - str_replace_editor
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_20250305
- name:
- type: string
- enum:
- - web_search
- allowed_domains:
- type: array
- nullable: true
- items:
- type: string
- blocked_domains:
- type: array
- nullable: true
- items:
- type: string
- max_uses:
- type: number
- nullable: true
- user_location:
- type: object
- nullable: true
- properties:
- type:
- type: string
- enum:
- - approximate
- city:
- type: string
- nullable: true
- country:
- type: string
- nullable: true
- region:
- type: string
- nullable: true
- timezone:
- type: string
- nullable: true
- required:
- - type
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - name
- - type: object
- properties:
- type:
- type: string
- enum:
- - web_search_20260209
- name:
- type: string
- enum:
- - web_search
- allowed_callers:
- type: array
- items:
- type: string
- enum:
- - direct
- - code_execution_20250825
- - code_execution_20260120
- allowed_domains:
- type: array
- nullable: true
- items:
- type: string
- blocked_domains:
- type: array
- nullable: true
- items:
- type: string
- max_uses:
- type: number
- nullable: true
- user_location:
- type: object
- nullable: true
- properties:
- type:
- type: string
- enum:
- - approximate
- city:
- type: string
- nullable: true
- country:
- type: string
- nullable: true
- region:
- type: string
- nullable: true
- timezone:
- type: string
- nullable: true
- required:
- - type
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- required:
- - type
- - name
- - $ref: '#/components/schemas/DatetimeServerTool'
- - $ref: '#/components/schemas/MessagesWebSearchServerTool'
- tool_choice:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - auto
- disable_parallel_tool_use:
- type: boolean
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - any
- disable_parallel_tool_use:
- type: boolean
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - none
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool
- name:
- type: string
- disable_parallel_tool_use:
- type: boolean
- required:
- - type
- - name
- thinking:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - enabled
- budget_tokens:
- type: number
- required:
- - type
- - budget_tokens
- - type: object
- properties:
- type:
- type: string
- enum:
- - disabled
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - adaptive
- required:
- - type
- service_tier:
- type: string
- enum:
- - auto
- - standard_only
- output_config:
- $ref: '#/components/schemas/MessagesOutputConfig'
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- stream:
- type: boolean
- context_management:
- type: object
- nullable: true
- properties:
- edits:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - clear_tool_uses_20250919
- clear_at_least:
- type: object
- nullable: true
- properties:
- type:
- type: string
- enum:
- - input_tokens
- value:
- type: number
- required:
- - type
- - value
- clear_tool_inputs:
- anyOf:
- - type: boolean
- - type: array
- items:
- type: string
- - nullable: true
- exclude_tools:
- type: array
- nullable: true
- items:
- type: string
- keep:
- type: object
- properties:
- type:
- type: string
- enum:
- - tool_uses
- value:
- type: number
- required:
- - type
- - value
- trigger:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - input_tokens
- value:
- type: number
- required:
- - type
- - value
- - type: object
- properties:
- type:
- type: string
- enum:
- - tool_uses
- value:
- type: number
- required:
- - type
- - value
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - clear_thinking_20251015
- keep:
- anyOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - thinking_turns
- value:
- type: number
- required:
- - type
- - value
- - type: object
- properties:
- type:
- type: string
- enum:
- - all
- required:
- - type
- - type: string
- enum:
- - all
- required:
- - type
- - type: object
- properties:
- type:
- type: string
- enum:
- - compact_20260112
- instructions:
- type: string
- nullable: true
- pause_after_compaction:
- type: boolean
- trigger:
- type: object
- nullable: true
- properties:
- type:
- type: string
- enum:
- - input_tokens
- value:
- type: number
- required:
- - type
- - value
- required:
- - type
- provider:
- type: object
- nullable: true
- properties:
- allow_fallbacks:
- type: boolean
- nullable: true
- description: >
- Whether to allow backup providers to serve requests
-
- - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use
- the next best provider.
-
- - false: use only the primary/custom provider, and return the upstream error if it's unavailable.
- require_parameters:
- type: boolean
- nullable: true
- description: >-
- Whether to filter providers to only those that support the parameters you've provided. If this setting
- is omitted or set to false, then providers will receive only the parameters they support, and ignore the
- rest.
- data_collection:
- $ref: '#/components/schemas/DataCollection'
- zdr:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that
- do not retain prompts will be used.
- example: true
- enforce_distillable_text:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only models that allow text distillation. When true, only models where
- the author has allowed distillation will be used.
- example: true
- order:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- An ordered list of provider slugs. The router will attempt to use the first provider in the subset of
- this list that supports your requested model, and fall back to the next if it is unavailable. If no
- providers are available, the request will fail with an error message.
- only:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to allow. If provided, this list is merged with your account-wide allowed
- provider settings for this request.
- ignore:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored
- provider settings for this request.
- quantizations:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/Quantization'
- description: A list of quantization levels to filter the provider by.
- sort:
- allOf:
- - $ref: '#/components/schemas/ProviderSort'
- - anyOf:
- - $ref: '#/components/schemas/ProviderSort'
- - $ref: '#/components/schemas/ProviderSortConfig'
- - nullable: true
- description: >-
- The sorting strategy to use for this request, if "order" is not specified. When set, no load
- balancing is performed.
- max_price:
- type: object
- properties:
- prompt:
- $ref: '#/components/schemas/BigNumberUnion'
- completion:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per million completion tokens
- image:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per image
- audio:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per audio unit
- request:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per request
- description: >-
- The object specifying the maximum price you want to pay for this request. USD price per million tokens,
- for prompt and completion.
- preferred_min_throughput:
- $ref: '#/components/schemas/PreferredMinThroughput'
- preferred_max_latency:
- $ref: '#/components/schemas/PreferredMaxLatency'
- additionalProperties: false
- description: When multiple model providers are available, optionally indicate your routing preference.
- plugins:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- id:
- type: string
- enum:
- - auto-router
- enabled:
- type: boolean
- description: Set to false to disable the auto-router plugin for this request. Defaults to true.
- allowed_models:
- type: array
- items:
- type: string
- description: >-
- List of model patterns to filter which models the auto-router can route between. Supports
- wildcards (e.g., "anthropic/*" matches all Anthropic models). When not specified, uses the default
- supported models list.
- example:
- - anthropic/*
- - openai/gpt-4o
- - google/*
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - moderation
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - web
- enabled:
- type: boolean
- description: Set to false to disable the web-search plugin for this request. Defaults to true.
- max_results:
- type: number
- search_prompt:
- type: string
- engine:
- $ref: '#/components/schemas/WebSearchEngine'
- include_domains:
- type: array
- items:
- type: string
- description: >-
- A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com")
- and path filtering (e.g. "openai.com/blog").
- example:
- - example.com
- - '*.substack.com'
- - openai.com/blog
- exclude_domains:
- type: array
- items:
- type: string
- description: >-
- A list of domains to exclude from web search results. Supports wildcards (e.g. "*.substack.com")
- and path filtering (e.g. "openai.com/blog").
- example:
- - example.com
- - '*.substack.com'
- - openai.com/blog
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - file-parser
- enabled:
- type: boolean
- description: Set to false to disable the file-parser plugin for this request. Defaults to true.
- pdf:
- $ref: '#/components/schemas/PDFParserOptions'
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - response-healing
- enabled:
- type: boolean
- description: Set to false to disable the response-healing plugin for this request. Defaults to true.
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - context-compression
- enabled:
- type: boolean
- description: Set to false to disable the context-compression plugin for this request. Defaults to true.
- engine:
- $ref: '#/components/schemas/ContextCompressionEngine'
- required:
- - id
- description: Plugins you want to enable for this request, including their settings.
- route:
- type: string
- nullable: true
- enum:
- - fallback
- - sort
- deprecated: true
- description: >-
- **DEPRECATED** Use providers.sort.partition instead. Backwards-compatible alias for
- providers.sort.partition. Accepts legacy values: "fallback" (maps to "model"), "sort" (maps to "none").
- x-speakeasy-deprecation-message: Use providers.sort.partition instead.
- x-speakeasy-ignore: true
- x-fern-ignore: true
- user:
- type: string
- maxLength: 256
- description: >-
- A unique identifier representing your end-user, which helps distinguish between different users of your app.
- This allows your app to identify specific users in case of abuse reports, preventing your entire app from
- being affected by the actions of individual users. Maximum of 256 characters.
- session_id:
- type: string
- maxLength: 256
- description: >-
- A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for
- observability. If provided in both the request body and the x-session-id header, the body value takes
- precedence. Maximum of 256 characters.
- trace:
- type: object
- properties:
- trace_id:
- type: string
- trace_name:
- type: string
- span_name:
- type: string
- generation_name:
- type: string
- parent_span_id:
- type: string
- additionalProperties:
- nullable: true
- description: >-
- Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name,
- parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured
- broadcast destinations.
- models:
- type: array
- items:
- type: string
- speed:
- type: string
- enum:
- - fast
- - standard
- description: >-
- Controls output generation speed. When set to `fast`, uses a higher-speed inference configuration at premium
- pricing. Defaults to `standard` when omitted.
- example: fast
- required:
- - model
- - messages
- description: Request schema for Anthropic Messages API endpoint
- example:
- model: anthropic/claude-4.5-sonnet-20250929
- max_tokens: 1024
- messages:
- - role: user
- content: Hello, how are you?
- temperature: 0.7
- ActivityItem:
- type: object
- properties:
- date:
- type: string
- description: Date of the activity (YYYY-MM-DD format)
- example: '2025-08-24'
- model:
- type: string
- description: Model slug (e.g., "openai/gpt-4.1")
- example: openai/gpt-4.1
- model_permaslug:
- type: string
- description: Model permaslug (e.g., "openai/gpt-4.1-2025-04-14")
- example: openai/gpt-4.1-2025-04-14
- endpoint_id:
- type: string
- description: Unique identifier for the endpoint
- example: 550e8400-e29b-41d4-a716-446655440000
- provider_name:
- type: string
- description: Name of the provider serving this endpoint
- example: OpenAI
- usage:
- type: number
- description: Total cost in USD (OpenRouter credits spent)
- example: 0.015
- byok_usage_inference:
- type: number
- description: BYOK inference cost in USD (external credits spent)
- example: 0.012
- requests:
- type: number
- description: Number of requests made
- example: 5
- prompt_tokens:
- type: number
- description: Total prompt tokens used
- example: 50
- completion_tokens:
- type: number
- description: Total completion tokens generated
- example: 125
- reasoning_tokens:
- type: number
- description: Total reasoning tokens used
- example: 25
- required:
- - date
- - model
- - model_permaslug
- - endpoint_id
- - provider_name
- - usage
- - byok_usage_inference
- - requests
- - prompt_tokens
- - completion_tokens
- - reasoning_tokens
- example:
- date: '2025-08-24'
- model: openai/gpt-4.1
- model_permaslug: openai/gpt-4.1-2025-04-14
- endpoint_id: 550e8400-e29b-41d4-a716-446655440000
- provider_name: OpenAI
- usage: 0.015
- byok_usage_inference: 0.012
- requests: 5
- prompt_tokens: 50
- completion_tokens: 125
- reasoning_tokens: 25
- ForbiddenResponseErrorData:
- type: object
- properties:
- code:
- type: integer
- message:
- type: string
- metadata:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for ForbiddenResponse
- example:
- code: 403
- message: Only management keys can perform this operation
- ForbiddenResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/ForbiddenResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Forbidden - Authentication successful but insufficient permissions
- example:
- error:
- code: 403
- message: Only management keys can perform this operation
- ChatFinishReasonEnum:
- type: string
- enum:
- - tool_calls
- - stop
- - length
- - content_filter
- - error
- example: stop
- ChatContentCacheControl:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- description: Cache control for the content part
- example:
- type: ephemeral
- ttl: 5m
- ChatContentText:
- type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- cache_control:
- $ref: '#/components/schemas/ChatContentCacheControl'
- required:
- - type
- - text
- description: Text content part
- example:
- type: text
- text: Hello, world!
- ChatContentImage:
- type: object
- properties:
- type:
- type: string
- enum:
- - image_url
- image_url:
- type: object
- properties:
- url:
- type: string
- description: 'URL of the image (data: URLs supported)'
- detail:
- type: string
- enum:
- - auto
- - low
- - high
- description: Image detail level for vision models
- required:
- - url
- required:
- - type
- - image_url
- description: Image content part for vision models
- example:
- type: image_url
- image_url:
- url: https://example.com/image.jpg
- detail: auto
- ChatContentAudio:
- type: object
- properties:
- type:
- type: string
- enum:
- - input_audio
- input_audio:
- type: object
- properties:
- data:
- type: string
- description: Base64 encoded audio data
- format:
- type: string
- description: >-
- Audio format (e.g., wav, mp3, flac, m4a, ogg, aiff, aac, pcm16, pcm24). Supported formats vary by
- provider.
- required:
- - data
- - format
- required:
- - type
- - input_audio
- description: Audio input content part. Supported audio formats vary by provider.
- example:
- type: input_audio
- input_audio:
- data: SGVsbG8gV29ybGQ=
- format: wav
- Legacy_ChatContentVideo:
- type: object
- properties:
- type:
- type: string
- enum:
- - input_video
- video_url:
- $ref: '#/components/schemas/ChatContentVideoInput'
- required:
- - type
- - video_url
- description: Video input content part (legacy format - deprecated)
- deprecated: true
- example:
- type: input_video
- video_url:
- url: https://example.com/video.mp4
- ChatContentVideoInput:
- type: object
- properties:
- url:
- type: string
- description: 'URL of the video (data: URLs supported)'
- required:
- - url
- description: Video input object
- ChatContentVideo:
- type: object
- properties:
- type:
- type: string
- enum:
- - video_url
- video_url:
- $ref: '#/components/schemas/ChatContentVideoInput'
- required:
- - type
- - video_url
- description: Video input content part
- example:
- type: video_url
- video_url:
- url: https://example.com/video.mp4
- ChatContentFile:
- type: object
- properties:
- type:
- type: string
- enum:
- - file
- file:
- type: object
- properties:
- file_data:
- type: string
- description: File content as base64 data URL or URL
- file_id:
- type: string
- description: File ID for previously uploaded files
- filename:
- type: string
- description: Original filename
- required:
- - type
- - file
- description: File content part for document processing
- example:
- type: file
- file:
- file_data: https://example.com/document.pdf
- filename: document.pdf
- ChatContentItems:
- oneOf:
- - $ref: '#/components/schemas/ChatContentText'
- - $ref: '#/components/schemas/ChatContentImage'
- - $ref: '#/components/schemas/ChatContentAudio'
- - oneOf:
- - $ref: '#/components/schemas/Legacy_ChatContentVideo'
- - $ref: '#/components/schemas/ChatContentVideo'
- discriminator:
- propertyName: type
- mapping:
- input_video: '#/components/schemas/Legacy_ChatContentVideo'
- video_url: '#/components/schemas/ChatContentVideo'
- - $ref: '#/components/schemas/ChatContentFile'
- discriminator:
- propertyName: type
- description: Content part for chat completion messages
- example:
- type: text
- text: Hello, world!
- ChatToolCall:
- type: object
- properties:
- id:
- type: string
- description: Tool call identifier
- type:
- type: string
- enum:
- - function
- function:
- type: object
- properties:
- name:
- type: string
- description: Function name to call
- arguments:
- type: string
- description: Function arguments as JSON string
- required:
- - name
- - arguments
- required:
- - id
- - type
- - function
- description: Tool call made by the assistant
- example:
- id: call_abc123
- type: function
- function:
- name: get_current_weather
- arguments: '{"location": "Boston, MA"}'
- ReasoningDetailSummary:
- type: object
- properties:
- type:
- type: string
- enum:
- - reasoning.summary
- summary:
- type: string
- id:
- type: string
- nullable: true
- format:
- type: string
- nullable: true
- enum:
- - unknown
- - openai-responses-v1
- - azure-openai-responses-v1
- - xai-responses-v1
- - anthropic-claude-v1
- - google-gemini-v1
- index:
- type: number
- required:
- - type
- - summary
- description: Reasoning detail summary schema
- example:
- type: reasoning.summary
- summary: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...
- ReasoningDetailEncrypted:
- type: object
- properties:
- type:
- type: string
- enum:
- - reasoning.encrypted
- data:
- type: string
- id:
- type: string
- nullable: true
- format:
- type: string
- nullable: true
- enum:
- - unknown
- - openai-responses-v1
- - azure-openai-responses-v1
- - xai-responses-v1
- - anthropic-claude-v1
- - google-gemini-v1
- index:
- type: number
- required:
- - type
- - data
- description: Reasoning detail encrypted schema
- example:
- type: reasoning.encrypted
- data: encrypted data
- ReasoningDetailText:
- type: object
- properties:
- type:
- type: string
- enum:
- - reasoning.text
- text:
- type: string
- nullable: true
- signature:
- type: string
- nullable: true
- id:
- type: string
- nullable: true
- format:
- type: string
- nullable: true
- enum:
- - unknown
- - openai-responses-v1
- - azure-openai-responses-v1
- - xai-responses-v1
- - anthropic-claude-v1
- - google-gemini-v1
- index:
- type: number
- required:
- - type
- description: Reasoning detail text schema
- example:
- type: reasoning.text
- text: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...
- signature: signature
- ReasoningDetailUnion:
- oneOf:
- - $ref: '#/components/schemas/ReasoningDetailSummary'
- - $ref: '#/components/schemas/ReasoningDetailEncrypted'
- - $ref: '#/components/schemas/ReasoningDetailText'
- discriminator:
- propertyName: type
- mapping:
- reasoning.summary: '#/components/schemas/ReasoningDetailSummary'
- reasoning.encrypted: '#/components/schemas/ReasoningDetailEncrypted'
- reasoning.text: '#/components/schemas/ReasoningDetailText'
- description: Reasoning detail union schema
- example:
- type: reasoning.summary
- summary: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...
- ChatReasoningDetails:
- type: array
- items:
- $ref: '#/components/schemas/ReasoningDetailUnion'
- description: Reasoning details for extended thinking models
- ChatAssistantImages:
- type: array
- items:
- type: object
- properties:
- image_url:
- type: object
- properties:
- url:
- type: string
- description: URL or base64-encoded data of the generated image
- required:
- - url
- required:
- - image_url
- description: Generated images from image generation models
- example:
- - image_url:
- url: data:image/png;base64,iVBORw0KGgo...
- ChatAudioOutput:
- type: object
- properties:
- id:
- type: string
- description: Audio output identifier
- expires_at:
- type: number
- description: Audio expiration timestamp
- data:
- type: string
- description: Base64 encoded audio data
- transcript:
- type: string
- description: Audio transcript
- description: Audio output data or reference
- example:
- id: audio_abc123
- expires_at: 1677652400
- data: UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1f
- transcript: Hello! How can I help you today?
- ChatAssistantMessage:
- type: object
- properties:
- role:
- type: string
- enum:
- - assistant
- content:
- anyOf:
- - type: string
- - type: array
- items:
- $ref: '#/components/schemas/ChatContentItems'
- - nullable: true
- description: Assistant message content
- name:
- type: string
- description: Optional name for the assistant
- tool_calls:
- type: array
- items:
- $ref: '#/components/schemas/ChatToolCall'
- description: Tool calls made by the assistant
- refusal:
- type: string
- nullable: true
- description: Refusal message if content was refused
- reasoning:
- type: string
- nullable: true
- description: Reasoning output
- reasoning_details:
- $ref: '#/components/schemas/ChatReasoningDetails'
- images:
- $ref: '#/components/schemas/ChatAssistantImages'
- audio:
- $ref: '#/components/schemas/ChatAudioOutput'
- required:
- - role
- description: Assistant message for requests and responses
- example:
- role: assistant
- content: The capital of France is Paris.
- ChatTokenLogprob:
- type: object
- properties:
- token:
- type: string
- description: The token
- logprob:
- type: number
- description: Log probability of the token
- bytes:
- type: array
- nullable: true
- items:
- type: number
- description: UTF-8 bytes of the token
- top_logprobs:
- type: array
- items:
- type: object
- properties:
- token:
- type: string
- logprob:
- type: number
- bytes:
- type: array
- nullable: true
- items:
- type: number
- required:
- - token
- - logprob
- - bytes
- description: Top alternative tokens with probabilities
- required:
- - token
- - logprob
- - bytes
- - top_logprobs
- description: Token log probability information
- example:
- token: ' Hello'
- logprob: -0.612345
- bytes: null
- top_logprobs:
- - token: ' Hello'
- logprob: -0.612345
- bytes: null
- ChatTokenLogprobs:
- type: object
- nullable: true
- properties:
- content:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/ChatTokenLogprob'
- description: Log probabilities for content tokens
- refusal:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/ChatTokenLogprob'
- description: Log probabilities for refusal tokens
- required:
- - content
- description: Log probabilities for the completion
- example:
- content:
- - token: ' Hello'
- logprob: -0.612345
- bytes: null
- top_logprobs: []
- refusal: null
- ChatChoice:
- type: object
- properties:
- finish_reason:
- anyOf:
- - $ref: '#/components/schemas/ChatFinishReasonEnum'
- - nullable: true
- - nullable: true
- index:
- type: number
- description: Choice index
- example: 0
- message:
- $ref: '#/components/schemas/ChatAssistantMessage'
- logprobs:
- $ref: '#/components/schemas/ChatTokenLogprobs'
- required:
- - finish_reason
- - index
- - message
- description: Chat completion choice
- example:
- finish_reason: stop
- index: 0
- message:
- role: assistant
- content: The capital of France is Paris.
- logprobs: null
- ChatUsage:
- type: object
- properties:
- completion_tokens:
- type: number
- description: Number of tokens in the completion
- prompt_tokens:
- type: number
- description: Number of tokens in the prompt
- total_tokens:
- type: number
- description: Total number of tokens
- completion_tokens_details:
- type: object
- nullable: true
- properties:
- reasoning_tokens:
- type: number
- nullable: true
- description: Tokens used for reasoning
- audio_tokens:
- type: number
- nullable: true
- description: Tokens used for audio output
- accepted_prediction_tokens:
- type: number
- nullable: true
- description: Accepted prediction tokens
- rejected_prediction_tokens:
- type: number
- nullable: true
- description: Rejected prediction tokens
- description: Detailed completion token usage
- prompt_tokens_details:
- type: object
- nullable: true
- properties:
- cached_tokens:
- type: number
- description: Cached prompt tokens
- cache_write_tokens:
- type: number
- description: Tokens written to cache. Only returned for models with explicit caching and cache write pricing.
- audio_tokens:
- type: number
- description: Audio input tokens
- video_tokens:
- type: number
- description: Video input tokens
- description: Detailed prompt token usage
- required:
- - completion_tokens
- - prompt_tokens
- - total_tokens
- description: Token usage statistics
- example:
- completion_tokens: 15
- prompt_tokens: 10
- total_tokens: 25
- completion_tokens_details:
- reasoning_tokens: 5
- prompt_tokens_details:
- cached_tokens: 2
- ChatResult:
- type: object
- properties:
- id:
- type: string
- description: Unique completion identifier
- example: chatcmpl-123
- choices:
- type: array
- items:
- $ref: '#/components/schemas/ChatChoice'
- description: List of completion choices
- created:
- type: number
- description: Unix timestamp of creation
- example: 1677652288
- model:
- type: string
- description: Model used for completion
- example: openai/gpt-4
- object:
- type: string
- enum:
- - chat.completion
- system_fingerprint:
- type: string
- nullable: true
- description: System fingerprint
- example: fp_44709d6fcb
- service_tier:
- type: string
- nullable: true
- description: The service tier used by the upstream provider for this request
- example: default
- usage:
- $ref: '#/components/schemas/ChatUsage'
- required:
- - id
- - choices
- - created
- - model
- - object
- - system_fingerprint
- description: Chat completion response
- example:
- id: chatcmpl-123
- object: chat.completion
- created: 1677652288
- model: openai/gpt-4
- choices:
- - index: 0
- message:
- role: assistant
- content: The capital of France is Paris.
- finish_reason: stop
- usage:
- prompt_tokens: 10
- completion_tokens: 15
- total_tokens: 25
- ChatStreamToolCall:
- type: object
- properties:
- index:
- type: number
- description: Tool call index in the array
- example: 0
- id:
- type: string
- description: Tool call identifier
- example: call_abc123
- type:
- type: string
- enum:
- - function
- description: Tool call type
- example: function
- function:
- type: object
- properties:
- name:
- type: string
- description: Function name
- example: get_weather
- arguments:
- type: string
- description: Function arguments as JSON string
- example: '{"location":'
- description: Function call details
- required:
- - index
- description: Tool call delta for streaming responses
- example:
- index: 0
- id: call_abc123
- type: function
- function:
- name: get_weather
- arguments: '{"location":'
- ChatStreamDelta:
- type: object
- properties:
- role:
- type: string
- enum:
- - assistant
- description: The role of the message author
- example: assistant
- content:
- type: string
- nullable: true
- description: Message content delta
- example: Hello
- reasoning:
- type: string
- nullable: true
- description: Reasoning content delta
- example: I need to
- refusal:
- type: string
- nullable: true
- description: Refusal message delta
- example: null
- tool_calls:
- type: array
- items:
- $ref: '#/components/schemas/ChatStreamToolCall'
- description: Tool calls delta
- reasoning_details:
- $ref: '#/components/schemas/ChatReasoningDetails'
- audio:
- allOf:
- - $ref: '#/components/schemas/ChatAudioOutput'
- - description: Audio output data
- description: Delta changes in streaming response
- example:
- role: assistant
- content: Hello
- ChatStreamChoice:
- type: object
- properties:
- delta:
- $ref: '#/components/schemas/ChatStreamDelta'
- finish_reason:
- anyOf:
- - $ref: '#/components/schemas/ChatFinishReasonEnum'
- - nullable: true
- - nullable: true
- index:
- type: number
- description: Choice index
- example: 0
- logprobs:
- $ref: '#/components/schemas/ChatTokenLogprobs'
- required:
- - delta
- - finish_reason
- - index
- description: Streaming completion choice chunk
- example:
- index: 0
- delta:
- role: assistant
- content: Hello
- finish_reason: null
- ChatStreamChunk:
- type: object
- properties:
- id:
- type: string
- description: Unique chunk identifier
- example: chatcmpl-123
- choices:
- type: array
- items:
- $ref: '#/components/schemas/ChatStreamChoice'
- description: List of streaming chunk choices
- created:
- type: number
- description: Unix timestamp of creation
- example: 1677652288
- model:
- type: string
- description: Model used for completion
- example: openai/gpt-4
- object:
- type: string
- enum:
- - chat.completion.chunk
- system_fingerprint:
- type: string
- description: System fingerprint
- example: fp_44709d6fcb
- service_tier:
- type: string
- nullable: true
- description: The service tier used by the upstream provider for this request
- example: default
- error:
- type: object
- properties:
- message:
- type: string
- description: Error message
- example: Rate limit exceeded
- code:
- type: number
- description: Error code
- example: 429
- required:
- - message
- - code
- description: Error information
- example:
- message: Rate limit exceeded
- code: 429
- usage:
- $ref: '#/components/schemas/ChatUsage'
- required:
- - id
- - choices
- - created
- - model
- - object
- description: Streaming chat completion chunk
- x-speakeasy-entity: ChatStreamChunk
- example:
- id: chatcmpl-123
- object: chat.completion.chunk
- created: 1677652288
- model: openai/gpt-4
- choices:
- - index: 0
- delta:
- role: assistant
- content: Hello
- finish_reason: null
- ChatSystemMessage:
- type: object
- properties:
- role:
- type: string
- enum:
- - system
- content:
- anyOf:
- - type: string
- - type: array
- items:
- $ref: '#/components/schemas/ChatContentText'
- description: System message content
- example: You are a helpful assistant.
- name:
- type: string
- description: Optional name for the system message
- example: Assistant Config
- required:
- - role
- - content
- description: System message for setting behavior
- example:
- role: system
- content: You are a helpful assistant.
- name: Assistant Config
- ChatUserMessage:
- type: object
- properties:
- role:
- type: string
- enum:
- - user
- content:
- anyOf:
- - type: string
- - type: array
- items:
- $ref: '#/components/schemas/ChatContentItems'
- description: User message content
- example: What is the capital of France?
- name:
- type: string
- description: Optional name for the user
- example: User
- required:
- - role
- - content
- description: User message
- example:
- role: user
- content: What is the capital of France?
- ChatDeveloperMessage:
- type: object
- properties:
- role:
- type: string
- enum:
- - developer
- content:
- anyOf:
- - type: string
- - type: array
- items:
- $ref: '#/components/schemas/ChatContentText'
- description: Developer message content
- example: This is a message from the developer.
- name:
- type: string
- description: Optional name for the developer message
- example: Developer
- required:
- - role
- - content
- description: Developer message
- example:
- role: developer
- content: This is a message from the developer.
- ChatToolMessage:
- type: object
- properties:
- role:
- type: string
- enum:
- - tool
- content:
- anyOf:
- - type: string
- - type: array
- items:
- $ref: '#/components/schemas/ChatContentItems'
- description: Tool response content
- example: The weather in San Francisco is 72°F and sunny.
- tool_call_id:
- type: string
- description: ID of the assistant message tool call this message responds to
- example: call_abc123
- required:
- - role
- - content
- - tool_call_id
- description: Tool response message
- example:
- role: tool
- content: The weather in San Francisco is 72°F and sunny.
- tool_call_id: call_abc123
- ChatMessages:
- oneOf:
- - $ref: '#/components/schemas/ChatSystemMessage'
- - $ref: '#/components/schemas/ChatUserMessage'
- - $ref: '#/components/schemas/ChatDeveloperMessage'
- - $ref: '#/components/schemas/ChatAssistantMessage'
- - $ref: '#/components/schemas/ChatToolMessage'
- discriminator:
- propertyName: role
- description: Chat completion message with role-based discrimination
- example:
- role: user
- content: What is the capital of France?
- ModelName:
- type: string
- description: Model to use for completion
- example: openai/gpt-4
- ChatModelNames:
- type: array
- items:
- allOf:
- - $ref: '#/components/schemas/ModelName'
- - description: Available OpenRouter chat completion models
- description: Models to use for completion
- example:
- - openai/gpt-4
- - openai/gpt-4o
- ChatReasoningSummaryVerbosityEnum:
- type: string
- enum:
- - auto
- - concise
- - detailed
- ChatFormatTextConfig:
- type: object
- properties:
- type:
- type: string
- enum:
- - text
- required:
- - type
- description: Default text response format
- example:
- type: text
- ChatJsonSchemaConfig:
- type: object
- properties:
- name:
- type: string
- maxLength: 64
- description: Schema name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)
- example: math_response
- description:
- type: string
- description: Schema description for the model
- example: A mathematical response
- schema:
- type: object
- additionalProperties:
- nullable: true
- description: JSON Schema object
- example:
- type: object
- properties:
- answer:
- type: number
- required:
- - answer
- strict:
- type: boolean
- nullable: true
- description: Enable strict schema adherence
- example: false
- required:
- - name
- description: JSON Schema configuration object
- example:
- name: math_response
- description: A mathematical response
- schema:
- type: object
- properties:
- answer:
- type: number
- required:
- - answer
- strict: true
- ChatFormatJsonSchemaConfig:
- type: object
- properties:
- type:
- type: string
- enum:
- - json_schema
- json_schema:
- $ref: '#/components/schemas/ChatJsonSchemaConfig'
- required:
- - type
- - json_schema
- description: JSON Schema response format for structured outputs
- example:
- type: json_schema
- json_schema:
- name: math_response
- schema:
- type: object
- properties:
- answer:
- type: number
- required:
- - answer
- ChatFormatGrammarConfig:
- type: object
- properties:
- type:
- type: string
- enum:
- - grammar
- grammar:
- type: string
- description: Custom grammar for text generation
- example: root ::= "yes" | "no"
- required:
- - type
- - grammar
- description: Custom grammar response format
- example:
- type: grammar
- grammar: root ::= "yes" | "no"
- ChatFormatPythonConfig:
- type: object
- properties:
- type:
- type: string
- enum:
- - python
- required:
- - type
- description: Python code response format
- example:
- type: python
- ChatStreamOptions:
- type: object
- nullable: true
- properties:
- include_usage:
- type: boolean
- description: 'Deprecated: This field has no effect. Full usage details are always included.'
- example: true
- deprecated: true
- description: Streaming configuration options
- example:
- include_usage: true
- ChatNamedToolChoice:
- type: object
- properties:
- type:
- type: string
- enum:
- - function
- function:
- type: object
- properties:
- name:
- type: string
- description: Function name to call
- example: get_weather
- required:
- - name
- required:
- - type
- - function
- description: Named tool choice for specific function
- example:
- type: function
- function:
- name: get_weather
- ChatToolChoice:
- anyOf:
- - type: string
- enum:
- - none
- - type: string
- enum:
- - auto
- - type: string
- enum:
- - required
- - $ref: '#/components/schemas/ChatNamedToolChoice'
- description: Tool choice configuration
- example: auto
- ChatWebSearchServerTool:
- type: object
- properties:
- type:
- type: string
- enum:
- - openrouter:web_search
- parameters:
- type: object
- properties:
- engine:
- type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses
- Firecrawl (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl,
- and Parallel engines; ignored with native provider search.
- example: 5
- max_total_results:
- type: number
- minimum: 1
- description: >-
- Maximum total number of search results across all search calls in a single request. Once this limit is
- reached, the tool will stop returning new results. Useful for controlling cost and context size in
- agentic loops.
- example: 20
- search_context_size:
- type: string
- enum:
- - low
- - medium
- - high
- description: >-
- How much context to retrieve per result. Defaults to medium (15000 chars). Only applies when using the
- Exa engine; ignored with native provider search.
- user_location:
- type: object
- properties:
- type:
- type: string
- enum:
- - approximate
- city:
- type: string
- region:
- type: string
- country:
- type: string
- timezone:
- type: string
- description: Approximate user location for location-biased results.
- allowed_domains:
- type: array
- items:
- type: string
- description: >-
- Limit search results to these domains. Applies to Exa and Parallel engines. Not supported with Firecrawl
- or native provider search.
- excluded_domains:
- type: array
- items:
- type: string
- description: >-
- Exclude search results from these domains. Applies to Exa and Parallel engines. Not supported with
- Firecrawl or native provider search.
- required:
- - type
- description: 'OpenRouter built-in server tool: searches the web for current information'
- example:
- type: openrouter:web_search
- parameters:
- engine: auto
- max_results: 5
- ChatWebSearchShorthand:
- type: object
- properties:
- type:
- type: string
- enum:
- - web_search
- - web_search_preview
- - web_search_preview_2025_03_11
- - web_search_2025_08_26
- engine:
- type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl
- (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
- Parallel engines; ignored with native provider search.
- example: 5
- max_total_results:
- type: number
- minimum: 1
- description: >-
- Maximum total number of search results across all search calls in a single request. Once this limit is
- reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic
- loops.
- example: 20
- search_context_size:
- type: string
- enum:
- - low
- - medium
- - high
- description: >-
- How much context to retrieve per result. Defaults to medium (15000 chars). Only applies when using the Exa
- engine; ignored with native provider search.
- user_location:
- type: object
- properties:
- type:
- type: string
- enum:
- - approximate
- city:
- type: string
- region:
- type: string
- country:
- type: string
- timezone:
- type: string
- description: Approximate user location for location-biased results.
- allowed_domains:
- type: array
- items:
- type: string
- description: >-
- Limit search results to these domains. Applies to Exa and Parallel engines. Not supported with Firecrawl or
- native provider search.
- excluded_domains:
- type: array
- items:
- type: string
- description: >-
- Exclude search results from these domains. Applies to Exa and Parallel engines. Not supported with Firecrawl
- or native provider search.
- parameters:
- type: object
- properties:
- engine:
- type: string
- enum:
- - auto
- - native
- - exa
- - firecrawl
- - parallel
- description: >-
- Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa.
- "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses
- Firecrawl (requires BYOK). "parallel" uses the Parallel search API.
- example: auto
- max_results:
- type: number
- minimum: 1
- maximum: 25
- description: >-
- Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl,
- and Parallel engines; ignored with native provider search.
- example: 5
- max_total_results:
- type: number
- minimum: 1
- description: >-
- Maximum total number of search results across all search calls in a single request. Once this limit is
- reached, the tool will stop returning new results. Useful for controlling cost and context size in
- agentic loops.
- example: 20
- search_context_size:
- type: string
- enum:
- - low
- - medium
- - high
- description: >-
- How much context to retrieve per result. Defaults to medium (15000 chars). Only applies when using the
- Exa engine; ignored with native provider search.
- user_location:
- type: object
- properties:
- type:
- type: string
- enum:
- - approximate
- city:
- type: string
- region:
- type: string
- country:
- type: string
- timezone:
- type: string
- description: Approximate user location for location-biased results.
- allowed_domains:
- type: array
- items:
- type: string
- description: >-
- Limit search results to these domains. Applies to Exa and Parallel engines. Not supported with Firecrawl
- or native provider search.
- excluded_domains:
- type: array
- items:
- type: string
- description: >-
- Exclude search results from these domains. Applies to Exa and Parallel engines. Not supported with
- Firecrawl or native provider search.
- required:
- - type
- description: Web search tool using OpenAI Responses API syntax. Automatically converted to openrouter:web_search.
- ChatFunctionTool:
- anyOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - function
- function:
- type: object
- properties:
- name:
- type: string
- maxLength: 64
- description: Function name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)
- example: get_weather
- description:
- type: string
- description: Function description for the model
- example: Get the current weather for a location
- parameters:
- type: object
- additionalProperties:
- nullable: true
- description: Function parameters as JSON Schema object
- example:
- type: object
- properties:
- location:
- type: string
- description: City name
- required:
- - location
- strict:
- type: boolean
- nullable: true
- description: Enable strict schema adherence
- example: false
- required:
- - name
- description: Function definition for tool calling
- example:
- name: get_weather
- description: Get the current weather for a location
- parameters:
- type: object
- properties:
- location:
- type: string
- description: City name
- required:
- - location
- cache_control:
- $ref: '#/components/schemas/ChatContentCacheControl'
- required:
- - type
- - function
- - $ref: '#/components/schemas/DatetimeServerTool'
- - $ref: '#/components/schemas/ChatWebSearchServerTool'
- - $ref: '#/components/schemas/ChatWebSearchShorthand'
- description: Tool definition for function calling (regular function or OpenRouter built-in server tool)
- example:
- type: function
- function:
- name: get_weather
- description: Get the current weather for a location
- parameters:
- type: object
- properties:
- location:
- type: string
- description: City name
- unit:
- type: string
- enum:
- - celsius
- - fahrenheit
- required:
- - location
- ChatDebugOptions:
- type: object
- properties:
- echo_upstream_body:
- type: boolean
- description: >-
- If true, includes the transformed upstream request body in a debug chunk at the start of the stream. Only
- works with streaming mode.
- example: true
- description: Debug options for inspecting request transformations (streaming only)
- example:
- echo_upstream_body: true
- ChatRequest:
- type: object
- properties:
- provider:
- type: object
- nullable: true
- properties:
- allow_fallbacks:
- type: boolean
- nullable: true
- description: >
- Whether to allow backup providers to serve requests
-
- - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use
- the next best provider.
-
- - false: use only the primary/custom provider, and return the upstream error if it's unavailable.
- require_parameters:
- type: boolean
- nullable: true
- description: >-
- Whether to filter providers to only those that support the parameters you've provided. If this setting
- is omitted or set to false, then providers will receive only the parameters they support, and ignore the
- rest.
- data_collection:
- $ref: '#/components/schemas/DataCollection'
- zdr:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that
- do not retain prompts will be used.
- example: true
- enforce_distillable_text:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only models that allow text distillation. When true, only models where
- the author has allowed distillation will be used.
- example: true
- order:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- An ordered list of provider slugs. The router will attempt to use the first provider in the subset of
- this list that supports your requested model, and fall back to the next if it is unavailable. If no
- providers are available, the request will fail with an error message.
- only:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to allow. If provided, this list is merged with your account-wide allowed
- provider settings for this request.
- ignore:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored
- provider settings for this request.
- quantizations:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/Quantization'
- description: A list of quantization levels to filter the provider by.
- sort:
- allOf:
- - $ref: '#/components/schemas/ProviderSort'
- - anyOf:
- - $ref: '#/components/schemas/ProviderSort'
- - $ref: '#/components/schemas/ProviderSortConfig'
- - nullable: true
- description: >-
- The sorting strategy to use for this request, if "order" is not specified. When set, no load
- balancing is performed.
- max_price:
- type: object
- properties:
- prompt:
- $ref: '#/components/schemas/BigNumberUnion'
- completion:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per million completion tokens
- image:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per image
- audio:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per audio unit
- request:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per request
- description: >-
- The object specifying the maximum price you want to pay for this request. USD price per million tokens,
- for prompt and completion.
- preferred_min_throughput:
- $ref: '#/components/schemas/PreferredMinThroughput'
- preferred_max_latency:
- $ref: '#/components/schemas/PreferredMaxLatency'
- additionalProperties: false
- description: When multiple model providers are available, optionally indicate your routing preference.
- plugins:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- id:
- type: string
- enum:
- - auto-router
- enabled:
- type: boolean
- description: Set to false to disable the auto-router plugin for this request. Defaults to true.
- allowed_models:
- type: array
- items:
- type: string
- description: >-
- List of model patterns to filter which models the auto-router can route between. Supports
- wildcards (e.g., "anthropic/*" matches all Anthropic models). When not specified, uses the default
- supported models list.
- example:
- - anthropic/*
- - openai/gpt-4o
- - google/*
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - moderation
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - web
- enabled:
- type: boolean
- description: Set to false to disable the web-search plugin for this request. Defaults to true.
- max_results:
- type: number
- search_prompt:
- type: string
- engine:
- $ref: '#/components/schemas/WebSearchEngine'
- include_domains:
- type: array
- items:
- type: string
- description: >-
- A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com")
- and path filtering (e.g. "openai.com/blog").
- example:
- - example.com
- - '*.substack.com'
- - openai.com/blog
- exclude_domains:
- type: array
- items:
- type: string
- description: >-
- A list of domains to exclude from web search results. Supports wildcards (e.g. "*.substack.com")
- and path filtering (e.g. "openai.com/blog").
- example:
- - example.com
- - '*.substack.com'
- - openai.com/blog
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - file-parser
- enabled:
- type: boolean
- description: Set to false to disable the file-parser plugin for this request. Defaults to true.
- pdf:
- $ref: '#/components/schemas/PDFParserOptions'
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - response-healing
- enabled:
- type: boolean
- description: Set to false to disable the response-healing plugin for this request. Defaults to true.
- required:
- - id
- - type: object
- properties:
- id:
- type: string
- enum:
- - context-compression
- enabled:
- type: boolean
- description: Set to false to disable the context-compression plugin for this request. Defaults to true.
- engine:
- $ref: '#/components/schemas/ContextCompressionEngine'
- required:
- - id
- description: Plugins you want to enable for this request, including their settings.
- route:
- type: string
- nullable: true
- enum:
- - fallback
- - sort
- deprecated: true
- description: >-
- **DEPRECATED** Use providers.sort.partition instead. Backwards-compatible alias for
- providers.sort.partition. Accepts legacy values: "fallback" (maps to "model"), "sort" (maps to "none").
- x-speakeasy-deprecation-message: Use providers.sort.partition instead.
- x-speakeasy-ignore: true
- x-fern-ignore: true
- user:
- type: string
- description: Unique user identifier
- example: user-123
- session_id:
- type: string
- maxLength: 256
- description: >-
- A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for
- observability. If provided in both the request body and the x-session-id header, the body value takes
- precedence. Maximum of 256 characters.
- trace:
- type: object
- properties:
- trace_id:
- type: string
- trace_name:
- type: string
- span_name:
- type: string
- generation_name:
- type: string
- parent_span_id:
- type: string
- additionalProperties:
- nullable: true
- description: >-
- Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name,
- parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured
- broadcast destinations.
- messages:
- type: array
- items:
- $ref: '#/components/schemas/ChatMessages'
- minItems: 1
- description: List of messages for the conversation
- example:
- - role: user
- content: Hello!
- model:
- $ref: '#/components/schemas/ModelName'
- models:
- $ref: '#/components/schemas/ChatModelNames'
- frequency_penalty:
- type: number
- nullable: true
- minimum: -2
- maximum: 2
- description: Frequency penalty (-2.0 to 2.0)
- example: 0
- logit_bias:
- type: object
- nullable: true
- additionalProperties:
- type: number
- description: Token logit bias adjustments
- example:
- '50256': -100
- logprobs:
- type: boolean
- nullable: true
- description: Return log probabilities
- example: false
- top_logprobs:
- type: number
- nullable: true
- minimum: 0
- maximum: 20
- description: Number of top log probabilities to return (0-20)
- example: 5
- max_completion_tokens:
- type: number
- nullable: true
- minimum: 1
- description: Maximum tokens in completion
- example: 100
- max_tokens:
- type: number
- nullable: true
- minimum: 1
- description: 'Maximum tokens (deprecated, use max_completion_tokens). Note: some providers enforce a minimum of 16.'
- example: 100
- metadata:
- type: object
- additionalProperties:
- type: string
- description: Key-value pairs for additional object information (max 16 pairs, 64 char keys, 512 char values)
- example:
- user_id: user-123
- session_id: session-456
- presence_penalty:
- type: number
- nullable: true
- minimum: -2
- maximum: 2
- description: Presence penalty (-2.0 to 2.0)
- example: 0
- reasoning:
- type: object
- properties:
- effort:
- type: string
- nullable: true
- enum:
- - xhigh
- - high
- - medium
- - low
- - minimal
- - none
- description: Constrains effort on reasoning for reasoning models
- example: medium
- summary:
- anyOf:
- - $ref: '#/components/schemas/ChatReasoningSummaryVerbosityEnum'
- - nullable: true
- - nullable: true
- description: Configuration options for reasoning models
- example:
- effort: medium
- summary: concise
- response_format:
- oneOf:
- - $ref: '#/components/schemas/ChatFormatTextConfig'
- - $ref: '#/components/schemas/FormatJsonObjectConfig'
- - $ref: '#/components/schemas/ChatFormatJsonSchemaConfig'
- - $ref: '#/components/schemas/ChatFormatGrammarConfig'
- - $ref: '#/components/schemas/ChatFormatPythonConfig'
- discriminator:
- propertyName: type
- description: Response format configuration
- example:
- type: json_object
- seed:
- type: integer
- nullable: true
- description: Random seed for deterministic outputs
- example: 42
- stop:
- anyOf:
- - type: string
- - type: array
- items:
- type: string
- maxItems: 4
- - nullable: true
- description: Stop sequences (up to 4)
- example:
- - |+
-
- stream:
- type: boolean
- default: false
- description: Enable streaming response
- example: false
- stream_options:
- $ref: '#/components/schemas/ChatStreamOptions'
- temperature:
- type: number
- nullable: true
- minimum: 0
- maximum: 2
- default: 1
- description: Sampling temperature (0-2)
- example: 0.7
- parallel_tool_calls:
- type: boolean
- nullable: true
- tool_choice:
- $ref: '#/components/schemas/ChatToolChoice'
- tools:
- type: array
- items:
- $ref: '#/components/schemas/ChatFunctionTool'
- description: Available tools for function calling
- example:
- - type: function
- function:
- name: get_weather
- description: Get weather
- top_p:
- type: number
- nullable: true
- minimum: 0
- maximum: 1
- default: 1
- description: Nucleus sampling parameter (0-1)
- example: 1
- debug:
- $ref: '#/components/schemas/ChatDebugOptions'
- image_config:
- type: object
- additionalProperties:
- anyOf:
- - type: string
- - type: number
- - type: array
- items:
- nullable: true
- 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'
- modalities:
- type: array
- items:
- type: string
- enum:
- - text
- - image
- - audio
- description: Output modalities for the response. Supported values are "text", "image", and "audio".
- example:
- - text
- - image
- cache_control:
- type: object
- properties:
- type:
- type: string
- enum:
- - ephemeral
- ttl:
- type: string
- enum:
- - 5m
- - 1h
- required:
- - type
- description: >-
- Enable automatic prompt caching. When set, the system automatically applies cache breakpoints to the last
- cacheable block in the request. Currently supported for Anthropic Claude models.
- service_tier:
- type: string
- nullable: true
- enum:
- - auto
- - default
- - flex
- - priority
- - scale
- description: The service tier to use for processing this request.
- example: auto
- required:
- - messages
- description: Chat completion request parameters
- example:
- messages:
- - role: system
- content: You are a helpful assistant.
- - role: user
- content: What is the capital of France?
- model: openai/gpt-4
- temperature: 0.7
- max_tokens: 150
- ProviderPreferences:
- type: object
- properties:
- allow_fallbacks:
- type: boolean
- nullable: true
- description: >
- Whether to allow backup providers to serve requests
-
- - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the
- next best provider.
-
- - false: use only the primary/custom provider, and return the upstream error if it's unavailable.
- require_parameters:
- type: boolean
- nullable: true
- description: >-
- Whether to filter providers to only those that support the parameters you've provided. If this setting is
- omitted or set to false, then providers will receive only the parameters they support, and ignore the rest.
- data_collection:
- $ref: '#/components/schemas/DataCollection'
- zdr:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that do
- not retain prompts will be used.
- example: true
- enforce_distillable_text:
- type: boolean
- nullable: true
- description: >-
- Whether to restrict routing to only models that allow text distillation. When true, only models where the
- author has allowed distillation will be used.
- example: true
- order:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this
- list that supports your requested model, and fall back to the next if it is unavailable. If no providers are
- available, the request will fail with an error message.
- only:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider
- settings for this request.
- ignore:
- type: array
- nullable: true
- items:
- anyOf:
- - $ref: '#/components/schemas/ProviderName'
- - type: string
- description: >-
- List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider
- settings for this request.
- quantizations:
- type: array
- nullable: true
- items:
- $ref: '#/components/schemas/Quantization'
- description: A list of quantization levels to filter the provider by.
- sort:
- allOf:
- - $ref: '#/components/schemas/ProviderSort'
- - anyOf:
- - $ref: '#/components/schemas/ProviderSort'
- - $ref: '#/components/schemas/ProviderSortConfig'
- - nullable: true
- description: >-
- The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing
- is performed.
- max_price:
- type: object
- properties:
- prompt:
- $ref: '#/components/schemas/BigNumberUnion'
- completion:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per million completion tokens
- image:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per image
- audio:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per audio unit
- request:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: Price per request
- description: >-
- The object specifying the maximum price you want to pay for this request. USD price per million tokens, for
- prompt and completion.
- preferred_min_throughput:
- $ref: '#/components/schemas/PreferredMinThroughput'
- preferred_max_latency:
- $ref: '#/components/schemas/PreferredMaxLatency'
- description: Provider routing preferences for the request.
- PublicPricing:
- type: object
- properties:
- prompt:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- completion:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- request:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- image:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- image_token:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- image_output:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- audio:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- audio_output:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- input_audio_cache:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- web_search:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- internal_reasoning:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- input_cache_read:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- input_cache_write:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- discount:
- type: number
- required:
- - prompt
- - completion
- description: Pricing information for the model
- example:
- prompt: '0.00003'
- completion: '0.00006'
- request: '0'
- image: '0'
- ModelGroup:
- type: string
- enum:
- - Router
- - Media
- - Other
- - GPT
- - Claude
- - Gemini
- - Grok
- - Cohere
- - Nova
- - Qwen
- - Yi
- - DeepSeek
- - Mistral
- - Llama2
- - Llama3
- - Llama4
- - PaLM
- - RWKV
- - Qwen3
- example: GPT
- description: Tokenizer type used by the model
- InputModality:
- type: string
- enum:
- - text
- - image
- - file
- - audio
- - video
- example: text
- OutputModality:
- type: string
- enum:
- - text
- - image
- - embeddings
- - audio
- - video
- example: text
- ModelArchitecture:
- type: object
- properties:
- tokenizer:
- $ref: '#/components/schemas/ModelGroup'
- instruct_type:
- type: string
- nullable: true
- enum:
- - none
- - airoboros
- - alpaca
- - alpaca-modif
- - chatml
- - claude
- - code-llama
- - gemma
- - llama2
- - llama3
- - mistral
- - nemotron
- - neural
- - openchat
- - phi3
- - rwkv
- - vicuna
- - zephyr
- - deepseek-r1
- - deepseek-v3.1
- - qwq
- - qwen3
- example: chatml
- description: Instruction format type
- modality:
- type: string
- nullable: true
- description: Primary modality of the model
- example: text->text
- input_modalities:
- type: array
- items:
- $ref: '#/components/schemas/InputModality'
- description: Supported input modalities
- output_modalities:
- type: array
- items:
- $ref: '#/components/schemas/OutputModality'
- description: Supported output modalities
- required:
- - modality
- - input_modalities
- - output_modalities
- description: Model architecture information
- example:
- tokenizer: GPT
- instruct_type: chatml
- modality: text->text
- input_modalities:
- - text
- output_modalities:
- - text
- TopProviderInfo:
- type: object
- properties:
- context_length:
- type: number
- nullable: true
- description: Context length from the top provider
- example: 8192
- max_completion_tokens:
- type: number
- nullable: true
- description: Maximum completion tokens from the top provider
- example: 4096
- is_moderated:
- type: boolean
- description: Whether the top provider moderates content
- example: true
- required:
- - is_moderated
- description: Information about the top provider for this model
- example:
- context_length: 8192
- max_completion_tokens: 4096
- is_moderated: true
- PerRequestLimits:
- type: object
- nullable: true
- properties:
- prompt_tokens:
- type: number
- example: 1000
- description: Maximum prompt tokens per request
- completion_tokens:
- type: number
- example: 1000
- description: Maximum completion tokens per request
- required:
- - prompt_tokens
- - completion_tokens
- description: Per-request token limits
- example:
- prompt_tokens: 1000
- completion_tokens: 1000
- Parameter:
- type: string
- enum:
- - temperature
- - top_p
- - top_k
- - min_p
- - top_a
- - frequency_penalty
- - presence_penalty
- - repetition_penalty
- - max_tokens
- - logit_bias
- - logprobs
- - top_logprobs
- - seed
- - response_format
- - structured_outputs
- - stop
- - tools
- - tool_choice
- - parallel_tool_calls
- - include_reasoning
- - reasoning
- - reasoning_effort
- - web_search_options
- - verbosity
- example: temperature
- DefaultParameters:
- type: object
- nullable: true
- properties:
- temperature:
- type: number
- nullable: true
- minimum: 0
- maximum: 2
- top_p:
- type: number
- nullable: true
- minimum: 0
- maximum: 1
- top_k:
- type: integer
- nullable: true
- minimum: 0
- frequency_penalty:
- type: number
- nullable: true
- minimum: -2
- maximum: 2
- presence_penalty:
- type: number
- nullable: true
- minimum: -2
- maximum: 2
- repetition_penalty:
- type: number
- nullable: true
- minimum: 0
- maximum: 2
- additionalProperties: false
- description: Default parameters for this model
- example:
- temperature: 0.7
- top_p: 0.9
- top_k: 0
- frequency_penalty: 0
- presence_penalty: 0
- repetition_penalty: 1
- Model:
- type: object
- properties:
- id:
- type: string
- description: Unique identifier for the model
- example: openai/gpt-4
- canonical_slug:
- type: string
- description: Canonical slug for the model
- example: openai/gpt-4
- hugging_face_id:
- type: string
- nullable: true
- description: Hugging Face model identifier, if applicable
- example: microsoft/DialoGPT-medium
- name:
- type: string
- description: Display name of the model
- example: GPT-4
- created:
- type: number
- description: Unix timestamp of when the model was created
- example: 1692901234
- description:
- type: string
- description: Description of the model
- example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
- pricing:
- $ref: '#/components/schemas/PublicPricing'
- context_length:
- type: number
- nullable: true
- description: Maximum context length in tokens
- example: 8192
- architecture:
- $ref: '#/components/schemas/ModelArchitecture'
- top_provider:
- $ref: '#/components/schemas/TopProviderInfo'
- per_request_limits:
- $ref: '#/components/schemas/PerRequestLimits'
- supported_parameters:
- type: array
- items:
- $ref: '#/components/schemas/Parameter'
- description: List of supported parameters for this model
- default_parameters:
- $ref: '#/components/schemas/DefaultParameters'
- knowledge_cutoff:
- type: string
- nullable: true
- description: The date up to which the model was trained on data. ISO 8601 date string (YYYY-MM-DD) or null if unknown.
- example: '2024-10-01'
- expiration_date:
- type: string
- nullable: true
- description: The date after which the model may be removed. ISO 8601 date string (YYYY-MM-DD) or null if no expiration.
- example: '2025-06-01'
- required:
- - id
- - canonical_slug
- - name
- - created
- - pricing
- - context_length
- - architecture
- - top_provider
- - per_request_limits
- - supported_parameters
- - default_parameters
- description: Information about an AI model available on OpenRouter
- example:
- id: openai/gpt-4
- canonical_slug: openai/gpt-4
- name: GPT-4
- created: 1692901234
- description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
- pricing:
- prompt: '0.00003'
- completion: '0.00006'
- request: '0'
- image: '0'
- context_length: 8192
- architecture:
- tokenizer: GPT
- instruct_type: chatml
- modality: text->text
- input_modalities:
- - text
- output_modalities:
- - text
- top_provider:
- context_length: 8192
- max_completion_tokens: 4096
- is_moderated: true
- per_request_limits: null
- supported_parameters:
- - temperature
- - top_p
- - max_tokens
- default_parameters: null
- knowledge_cutoff: null
- expiration_date: null
- ModelsListResponseData:
- type: array
- items:
- $ref: '#/components/schemas/Model'
- description: List of available models
- ModelsListResponse:
- type: object
- properties:
- data:
- $ref: '#/components/schemas/ModelsListResponseData'
- required:
- - data
- description: List of available models
- example:
- data:
- - id: openai/gpt-4
- canonical_slug: openai/gpt-4
- name: GPT-4
- created: 1692901234
- description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
- pricing:
- prompt: '0.00003'
- completion: '0.00006'
- request: '0'
- image: '0'
- context_length: 8192
- architecture:
- tokenizer: GPT
- instruct_type: chatml
- modality: text->text
- input_modalities:
- - text
- output_modalities:
- - text
- top_provider:
- context_length: 8192
- max_completion_tokens: 4096
- is_moderated: true
- per_request_limits: null
- supported_parameters:
- - temperature
- - top_p
- - max_tokens
- - frequency_penalty
- - presence_penalty
- default_parameters: null
- knowledge_cutoff: null
- expiration_date: null
- ModelsCountResponse:
- type: object
- properties:
- data:
- type: object
- properties:
- count:
- type: number
- description: Total number of available models
- example: 150
- required:
- - count
- description: Model count data
- example:
- count: 150
- required:
- - data
- description: Model count data
- example:
- data:
- count: 150
- InstructType:
- type: string
- nullable: true
- enum:
- - none
- - airoboros
- - alpaca
- - alpaca-modif
- - chatml
- - claude
- - code-llama
- - gemma
- - llama2
- - llama3
- - mistral
- - nemotron
- - neural
- - openchat
- - phi3
- - rwkv
- - vicuna
- - zephyr
- - deepseek-r1
- - deepseek-v3.1
- - qwq
- - qwen3
- description: Instruction format type
- EndpointStatus:
- type: integer
- enum:
- - 0
- - -1
- - -2
- - -3
- - -5
- - -10
- example: 0
- PercentileStats:
- type: object
- nullable: true
- properties:
- p50:
- type: number
- description: Median (50th percentile)
- example: 25.5
- p75:
- type: number
- description: 75th percentile
- example: 35.2
- p90:
- type: number
- description: 90th percentile
- example: 48.7
- p99:
- type: number
- description: 99th percentile
- example: 85.3
- required:
- - p50
- - p75
- - p90
- - p99
- description: >-
- Latency percentiles in milliseconds over the last 30 minutes. Latency measures time to first token. Only visible
- when authenticated with an API key or cookie; returns null for unauthenticated requests.
- PublicEndpoint:
- type: object
- properties:
- name:
- type: string
- model_id:
- type: string
- description: The unique identifier for the model (permaslug)
- example: openai/gpt-4
- model_name:
- type: string
- context_length:
- type: number
- pricing:
- type: object
- properties:
- prompt:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- completion:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- request:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- image:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- image_token:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- image_output:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- audio:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- audio_output:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- input_audio_cache:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- web_search:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- internal_reasoning:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- input_cache_read:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- input_cache_write:
- allOf:
- - $ref: '#/components/schemas/BigNumberUnion'
- - description: A number or string value representing a large number
- discount:
- type: number
- required:
- - prompt
- - completion
- provider_name:
- $ref: '#/components/schemas/ProviderName'
- tag:
- type: string
- quantization:
- allOf:
- - $ref: '#/components/schemas/Quantization'
- - nullable: true
- max_completion_tokens:
- type: number
- nullable: true
- max_prompt_tokens:
- type: number
- nullable: true
- supported_parameters:
- type: array
- items:
- $ref: '#/components/schemas/Parameter'
- status:
- $ref: '#/components/schemas/EndpointStatus'
- uptime_last_30m:
- type: number
- nullable: true
- supports_implicit_caching:
- type: boolean
- latency_last_30m:
- $ref: '#/components/schemas/PercentileStats'
- throughput_last_30m:
- allOf:
- - $ref: '#/components/schemas/PercentileStats'
- - description: >-
- Throughput percentiles in tokens per second over the last 30 minutes. Throughput measures output token
- generation speed. Only visible when authenticated with an API key or cookie; returns null for
- unauthenticated requests.
- required:
- - name
- - model_id
- - model_name
- - context_length
- - pricing
- - provider_name
- - tag
- - quantization
- - max_completion_tokens
- - max_prompt_tokens
- - supported_parameters
- - uptime_last_30m
- - supports_implicit_caching
- - latency_last_30m
- - throughput_last_30m
- description: Information about a specific model endpoint
- example:
- name: 'OpenAI: GPT-4'
- model_id: openai/gpt-4
- model_name: GPT-4
- context_length: 8192
- pricing:
- prompt: '0.00003'
- completion: '0.00006'
- request: '0'
- image: '0'
- provider_name: OpenAI
- tag: openai
- quantization: fp16
- max_completion_tokens: 4096
- max_prompt_tokens: 8192
- supported_parameters:
- - temperature
- - top_p
- - max_tokens
- status: 0
- uptime_last_30m: 99.5
- supports_implicit_caching: true
- latency_last_30m:
- p50: 0.25
- p75: 0.35
- p90: 0.48
- p99: 0.85
- throughput_last_30m:
- p50: 45.2
- p75: 38.5
- p90: 28.3
- p99: 15.1
- ListEndpointsResponse:
- type: object
- properties:
- id:
- type: string
- description: Unique identifier for the model
- example: openai/gpt-4
- name:
- type: string
- description: Display name of the model
- example: GPT-4
- created:
- type: number
- description: Unix timestamp of when the model was created
- example: 1692901234
- description:
- type: string
- description: Description of the model
- example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
- architecture:
- allOf:
- - $ref: '#/components/schemas/ModelArchitecture'
- - properties:
- tokenizer:
- allOf:
- - $ref: '#/components/schemas/ModelGroup'
- - nullable: true
- instruct_type:
- $ref: '#/components/schemas/InstructType'
- modality:
- type: string
- nullable: true
- description: Primary modality of the model
- example: text
- input_modalities:
- type: array
- items:
- $ref: '#/components/schemas/InputModality'
- description: Supported input modalities
- output_modalities:
- type: array
- items:
- $ref: '#/components/schemas/OutputModality'
- description: Supported output modalities
- required:
- - tokenizer
- - instruct_type
- - modality
- - input_modalities
- - output_modalities
- example:
- tokenizer: GPT
- instruct_type: chatml
- modality: text
- endpoints:
- type: array
- items:
- $ref: '#/components/schemas/PublicEndpoint'
- description: List of available endpoints for this model
- required:
- - id
- - name
- - created
- - description
- - architecture
- - endpoints
- description: List of available endpoints for a model
- example:
- id: openai/gpt-4
- name: GPT-4
- created: 1692901234
- description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
- architecture:
- tokenizer: GPT
- instruct_type: chatml
- modality: text->text
- input_modalities:
- - text
- output_modalities:
- - text
- endpoints:
- - name: 'OpenAI: GPT-4'
- model_name: GPT-4
- context_length: 8192
- pricing:
- prompt: '0.00003'
- completion: '0.00006'
- request: '0'
- image: '0'
- provider_name: OpenAI
- tag: openai
- quantization: fp16
- max_completion_tokens: 4096
- max_prompt_tokens: 8192
- supported_parameters:
- - temperature
- - top_p
- - max_tokens
- - frequency_penalty
- - presence_penalty
- status: default
- uptime_last_30m: 99.5
- supports_implicit_caching: true
- latency_last_30m:
- p50: 0.25
- p75: 0.35
- p90: 0.48
- p99: 0.85
- throughput_last_30m:
- p50: 45.2
- p75: 38.5
- p90: 28.3
- p99: 15.1
- ConflictResponseErrorData:
- type: object
- properties:
- code:
- type: integer
- message:
- type: string
- metadata:
- type: object
- nullable: true
- additionalProperties:
- nullable: true
- required:
- - code
- - message
- description: Error data for ConflictResponse
- example:
- code: 409
- message: Resource conflict. Please try again later.
- ConflictResponse:
- type: object
- properties:
- error:
- $ref: '#/components/schemas/ConflictResponseErrorData'
- user_id:
- type: string
- nullable: true
- required:
- - error
- description: Conflict - Resource conflict or concurrent modification
- example:
- error:
- code: 409
- message: Resource conflict. Please try again later.
- parameters: {}
- securitySchemes:
- apiKey:
- type: http
- scheme: bearer
- description: API key as bearer token in Authorization header
- bearer:
- type: http
- scheme: bearer
- description: API key as bearer token in Authorization header
-paths:
- /responses:
- post:
- x-speakeasy-name-override: send
- x-speakeasy-stream-request-field: stream
- tags:
- - beta.responses
- summary: Create a response
- description: Creates a streaming or non-streaming response using OpenResponses API format
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ResponsesRequest'
- required: true
- responses:
- '200':
- description: Successful response
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/OpenResponsesResult'
- text/event-stream:
- schema:
- type: object
- properties:
- data:
- $ref: '#/components/schemas/StreamEvents'
- required:
- - data
- x-speakeasy-sse-sentinel: '[DONE]'
- '400':
- description: Bad Request - Invalid request parameters or malformed input
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Authentication required or invalid credentials
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '402':
- description: Payment Required - Insufficient credits or quota to complete request
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PaymentRequiredResponse'
- '404':
- description: Not Found - Resource does not exist
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '408':
- description: Request Timeout - Operation exceeded time limit
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/RequestTimeoutResponse'
- '413':
- description: Payload Too Large - Request payload exceeds size limits
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PayloadTooLargeResponse'
- '422':
- description: Unprocessable Entity - Semantic validation failure
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnprocessableEntityResponse'
- '429':
- description: Too Many Requests - Rate limit exceeded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/TooManyRequestsResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- '502':
- description: Bad Gateway - Provider/upstream API failure
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadGatewayResponse'
- '503':
- description: Service Unavailable - Service temporarily unavailable
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ServiceUnavailableResponse'
- '524':
- description: Infrastructure Timeout - Request timed out at our edge network
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
- '529':
- description: Provider Overloaded - Provider is temporarily overloaded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProviderOverloadedResponse'
- operationId: createResponses
- /messages:
- post:
- x-speakeasy-ignore: true
- x-speakeasy-name-override: create
- x-speakeasy-stream-request-field: stream
- tags:
- - Anthropic Messages
- summary: Create a message
- description: >-
- Creates a message using the Anthropic Messages API format. Supports text, images, PDFs, tools, and extended
- thinking.
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessagesRequest'
- required: true
- responses:
- '200':
- description: Successful response
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessagesResult'
- text/event-stream:
- schema:
- type: object
- properties:
- event:
- type: string
- data:
- $ref: '#/components/schemas/MessagesStreamEvents'
- required:
- - event
- - data
- x-speakeasy-sse-sentinel: '[DONE]'
- '400':
- description: Invalid request error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '401':
- description: Authentication error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '403':
- description: Permission denied error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '404':
- description: Not found error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '429':
- description: Rate limit error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '500':
- description: API error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '503':
- description: Overloaded error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- '529':
- description: Overloaded error
- content:
- application/json:
- schema:
- type: object
- properties:
- type:
- type: string
- enum:
- - error
- error:
- type: object
- properties:
- type:
- type: string
- message:
- type: string
- required:
- - type
- - message
- required:
- - type
- - error
- operationId: createMessages
- /activity:
- get:
- tags:
- - Analytics
- operationId: getUserActivity
- summary: Get user activity grouped by endpoint
- description: >-
- Returns user activity data grouped by endpoint for the last 30 (completed) UTC days. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- description: Filter by a single UTC date in the last 30 days (YYYY-MM-DD format).
- example: '2025-08-24'
- required: false
- description: Filter by a single UTC date in the last 30 days (YYYY-MM-DD format).
- name: date
- in: query
- responses:
- '200':
- description: Returns user activity data grouped by endpoint
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/ActivityItem'
- description: List of activity items
- required:
- - data
- example:
- data:
- - date: '2025-08-24'
- model: openai/gpt-4.1
- model_permaslug: openai/gpt-4.1-2025-04-14
- endpoint_id: 550e8400-e29b-41d4-a716-446655440000
- provider_name: OpenAI
- usage: 0.015
- byok_usage_inference: 0.012
- requests: 5
- prompt_tokens: 50
- completion_tokens: 125
- reasoning_tokens: 25
- '400':
- description: Bad Request - Invalid date format or date range
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Authentication required or invalid credentials
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '403':
- description: Forbidden - Only management keys can fetch activity
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ForbiddenResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /chat/completions:
- post:
- x-speakeasy-group: chat
- x-speakeasy-name-override: send
- x-speakeasy-stream-request-field: stream
- tags:
- - Chat
- summary: Create a chat completion
- operationId: sendChatCompletionRequest
- description: >-
- Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming
- modes.
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ChatRequest'
- required: true
- responses:
- '200':
- description: Successful chat completion response
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ChatResult'
- text/event-stream:
- schema:
- type: object
- properties:
- data:
- $ref: '#/components/schemas/ChatStreamChunk'
- required:
- - data
- x-speakeasy-sse-sentinel: '[DONE]'
- '400':
- description: Bad Request - Invalid request parameters or malformed input
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Authentication required or invalid credentials
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '402':
- description: Payment Required - Insufficient credits or quota to complete request
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PaymentRequiredResponse'
- '404':
- description: Not Found - Resource does not exist
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '408':
- description: Request Timeout - Operation exceeded time limit
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/RequestTimeoutResponse'
- '413':
- description: Payload Too Large - Request payload exceeds size limits
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PayloadTooLargeResponse'
- '422':
- description: Unprocessable Entity - Semantic validation failure
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnprocessableEntityResponse'
- '429':
- description: Too Many Requests - Rate limit exceeded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/TooManyRequestsResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- '502':
- description: Bad Gateway - Provider/upstream API failure
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadGatewayResponse'
- '503':
- description: Service Unavailable - Service temporarily unavailable
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ServiceUnavailableResponse'
- '524':
- description: Infrastructure Timeout - Request timed out at our edge network
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
- '529':
- description: Provider Overloaded - Provider is temporarily overloaded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProviderOverloadedResponse'
- /credits:
- get:
- x-speakeasy-name-override: getCredits
- tags:
- - Credits
- summary: Get remaining credits
- operationId: getCredits
- description: >-
- Get total credits purchased and used for the authenticated user. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- responses:
- '200':
- description: Returns the total credits purchased and used
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: object
- properties:
- total_credits:
- type: number
- description: Total credits purchased
- example: 100.5
- total_usage:
- type: number
- description: Total credits used
- example: 25.75
- required:
- - total_credits
- - total_usage
- example:
- total_credits: 100.5
- total_usage: 25.75
- required:
- - data
- description: Total credits purchased and used
- example:
- data:
- total_credits: 100.5
- total_usage: 25.75
- '401':
- description: Unauthorized - Authentication required or invalid credentials
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '403':
- description: Forbidden - Only management keys can fetch credits
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ForbiddenResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /credits/coinbase:
- post:
- security: []
- x-speakeasy-name-override: createCoinbaseCharge
- deprecated: true
- tags:
- - Credits
- summary: Deprecated Coinbase Commerce charge endpoint
- operationId: createCoinbaseCharge
- description: Deprecated. The Coinbase APIs used by this endpoint have been deprecated, so Coinbase Commerce charges have been removed. Use the web credits purchase flow instead.
- responses:
- '410':
- description: Gone - Coinbase Commerce charge creation has been removed
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/GoneResponse'
- /embeddings:
- post:
- x-speakeasy-name-override: generate
- tags:
- - Embeddings
- summary: Submit an embedding request
- description: Submits an embedding request to the embeddings router
- requestBody:
- content:
- application/json:
- schema:
- type: object
- properties:
- input:
- anyOf:
- - type: string
- - type: array
- items:
- type: string
- - type: array
- items:
- type: number
- - type: array
- items:
- type: array
- items:
- type: number
- - type: array
- items:
- type: object
- properties:
- content:
- type: array
- items:
- oneOf:
- - type: object
- properties:
- type:
- type: string
- enum:
- - text
- text:
- type: string
- required:
- - type
- - text
- - type: object
- properties:
- type:
- type: string
- enum:
- - image_url
- image_url:
- type: object
- properties:
- url:
- type: string
- required:
- - url
- required:
- - type
- - image_url
- required:
- - content
- model:
- type: string
- encoding_format:
- type: string
- enum:
- - float
- - base64
- dimensions:
- type: integer
- minimum: 0
- exclusiveMinimum: true
- user:
- type: string
- provider:
- $ref: '#/components/schemas/ProviderPreferences'
- input_type:
- type: string
- required:
- - input
- - model
- required: true
- responses:
- '200':
- description: Embedding response
- content:
- application/json:
- schema:
- type: object
- properties:
- id:
- type: string
- object:
- type: string
- enum:
- - list
- data:
- type: array
- items:
- type: object
- properties:
- object:
- type: string
- enum:
- - embedding
- embedding:
- anyOf:
- - type: array
- items:
- type: number
- - type: string
- index:
- type: number
- required:
- - object
- - embedding
- model:
- type: string
- usage:
- type: object
- properties:
- prompt_tokens:
- type: number
- total_tokens:
- type: number
- cost:
- type: number
- required:
- - prompt_tokens
- - total_tokens
- required:
- - object
- - data
- - model
- text/event-stream:
- schema:
- type: string
- description: Not used for embeddings - embeddings do not support streaming
- x-speakeasy-sse-sentinel: '[DONE]'
- '400':
- description: Bad Request - Invalid request parameters or malformed input
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Authentication required or invalid credentials
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '402':
- description: Payment Required - Insufficient credits or quota to complete request
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PaymentRequiredResponse'
- '404':
- description: Not Found - Resource does not exist
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '429':
- description: Too Many Requests - Rate limit exceeded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/TooManyRequestsResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- '502':
- description: Bad Gateway - Provider/upstream API failure
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadGatewayResponse'
- '503':
- description: Service Unavailable - Service temporarily unavailable
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ServiceUnavailableResponse'
- '524':
- description: Cloudflare Timeout - Provider request timed out at CDN edge
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
- '529':
- description: Provider Overloaded - Provider is temporarily overloaded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProviderOverloadedResponse'
- operationId: createEmbeddings
- /embeddings/models:
- get:
- tags:
- - Embeddings
- x-speakeasy-name-override: listModels
- summary: List all embeddings models
- description: Returns a list of all available embeddings models and their properties
- responses:
- '200':
- description: Returns a list of embeddings models
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ModelsListResponse'
- '400':
- description: Bad Request - Invalid request parameters
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- operationId: listEmbeddingsModels
- /generation:
- get:
- tags:
- - Generations
- summary: Get request & usage metadata for a generation
- parameters:
- - schema:
- type: string
- minLength: 1
- required: true
- name: id
- in: query
- responses:
- '200':
- description: Returns the request metadata for this generation
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: object
- properties:
- id:
- type: string
- description: Unique identifier for the generation
- example: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG
- upstream_id:
- type: string
- nullable: true
- description: Upstream provider's identifier for this generation
- example: chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946
- total_cost:
- type: number
- description: Total cost of the generation in USD
- example: 0.0015
- cache_discount:
- type: number
- nullable: true
- description: Discount applied due to caching
- example: 0.0002
- upstream_inference_cost:
- type: number
- nullable: true
- description: Cost charged by the upstream provider
- example: 0.0012
- created_at:
- type: string
- description: ISO 8601 timestamp of when the generation was created
- example: '2024-07-15T23:33:19.433273+00:00'
- model:
- type: string
- description: Model used for the generation
- example: sao10k/l3-stheno-8b
- app_id:
- type: number
- nullable: true
- description: ID of the app that made the request
- example: 12345
- streamed:
- type: boolean
- nullable: true
- description: Whether the response was streamed
- example: true
- cancelled:
- type: boolean
- nullable: true
- description: Whether the generation was cancelled
- example: false
- provider_name:
- type: string
- nullable: true
- description: Name of the provider that served the request
- example: Infermatic
- latency:
- type: number
- nullable: true
- description: Total latency in milliseconds
- example: 1250
- moderation_latency:
- type: number
- nullable: true
- description: Moderation latency in milliseconds
- example: 50
- generation_time:
- type: number
- nullable: true
- description: Time taken for generation in milliseconds
- example: 1200
- finish_reason:
- type: string
- nullable: true
- description: Reason the generation finished
- example: stop
- tokens_prompt:
- type: number
- nullable: true
- description: Number of tokens in the prompt
- example: 10
- tokens_completion:
- type: number
- nullable: true
- description: Number of tokens in the completion
- example: 25
- native_tokens_prompt:
- type: number
- nullable: true
- description: Native prompt tokens as reported by provider
- example: 10
- native_tokens_completion:
- type: number
- nullable: true
- description: Native completion tokens as reported by provider
- example: 25
- native_tokens_completion_images:
- type: number
- nullable: true
- description: Native completion image tokens as reported by provider
- example: 0
- native_tokens_reasoning:
- type: number
- nullable: true
- description: Native reasoning tokens as reported by provider
- example: 5
- native_tokens_cached:
- type: number
- nullable: true
- description: Native cached tokens as reported by provider
- example: 3
- num_media_prompt:
- type: number
- nullable: true
- description: Number of media items in the prompt
- example: 1
- num_input_audio_prompt:
- type: number
- nullable: true
- description: Number of audio inputs in the prompt
- example: 0
- num_media_completion:
- type: number
- nullable: true
- description: Number of media items in the completion
- example: 0
- num_search_results:
- type: number
- nullable: true
- description: Number of search results included
- example: 5
- origin:
- type: string
- description: Origin URL of the request
- example: https://openrouter.ai/
- usage:
- type: number
- description: Usage amount in USD
- example: 0.0015
- is_byok:
- type: boolean
- description: Whether this used bring-your-own-key
- example: false
- native_finish_reason:
- type: string
- nullable: true
- description: Native finish reason as reported by provider
- example: stop
- external_user:
- type: string
- nullable: true
- description: External user identifier
- example: user-123
- api_type:
- type: string
- nullable: true
- enum:
- - completions
- - embeddings
- - video
- description: Type of API used for the generation
- router:
- type: string
- nullable: true
- description: Router used for the request (e.g., openrouter/auto)
- example: openrouter/auto
- provider_responses:
- type: array
- nullable: true
- items:
- type: object
- properties:
- id:
- type: string
- endpoint_id:
- type: string
- model_permaslug:
- type: string
- provider_name:
- type: string
- enum:
- - AnyScale
- - Atoma
- - Cent-ML
- - CrofAI
- - Enfer
- - GoPomelo
- - HuggingFace
- - Hyperbolic 2
- - InoCloud
- - Kluster
- - Lambda
- - Lepton
- - Lynn 2
- - Lynn
- - Mancer
- - Meta
- - Modal
- - Nineteen
- - OctoAI
- - Recursal
- - Reflection
- - Replicate
- - SambaNova 2
- - SF Compute
- - Targon
- - Together 2
- - Ubicloud
- - 01.AI
- - AkashML
- - AI21
- - AionLabs
- - Alibaba
- - Ambient
- - Amazon Bedrock
- - Amazon Nova
- - Anthropic
- - Arcee AI
- - AtlasCloud
- - Avian
- - Azure
- - BaseTen
- - BytePlus
- - Black Forest Labs
- - Cerebras
- - Chutes
- - Cirrascale
- - Clarifai
- - Cloudflare
- - Cohere
- - Crusoe
- - DeepInfra
- - DeepSeek
- - Featherless
- - Fireworks
- - Friendli
- - GMICloud
- - Google
- - Google AI Studio
- - Groq
- - Hyperbolic
- - Inception
- - Inceptron
- - InferenceNet
- - Ionstream
- - Infermatic
- - Io Net
- - Inflection
- - Liquid
- - Mara
- - Mancer 2
- - Minimax
- - ModelRun
- - Mistral
- - Modular
- - Moonshot AI
- - Morph
- - NCompass
- - Nebius
- - NextBit
- - Novita
- - Nvidia
- - OpenAI
- - OpenInference
- - Parasail
- - Perplexity
- - Phala
- - Reka
- - Relace
- - SambaNova
- - Seed
- - SiliconFlow
- - Sourceful
- - StepFun
- - Stealth
- - StreamLake
- - Switchpoint
- - Together
- - Upstage
- - Venice
- - WandB
- - Xiaomi
- - xAI
- - Z.AI
- - FakeProvider
- status:
- type: number
- nullable: true
- latency:
- type: number
- is_byok:
- type: boolean
- required:
- - status
- description: List of provider responses for this generation, including fallback attempts
- user_agent:
- type: string
- nullable: true
- description: User-Agent header from the request
- http_referer:
- type: string
- nullable: true
- description: Referer header from the request
- required:
- - id
- - upstream_id
- - total_cost
- - cache_discount
- - upstream_inference_cost
- - created_at
- - model
- - app_id
- - streamed
- - cancelled
- - provider_name
- - latency
- - moderation_latency
- - generation_time
- - finish_reason
- - tokens_prompt
- - tokens_completion
- - native_tokens_prompt
- - native_tokens_completion
- - native_tokens_completion_images
- - native_tokens_reasoning
- - native_tokens_cached
- - num_media_prompt
- - num_input_audio_prompt
- - num_media_completion
- - num_search_results
- - origin
- - usage
- - is_byok
- - native_finish_reason
- - external_user
- - api_type
- - router
- - provider_responses
- - user_agent
- - http_referer
- description: Generation data
- required:
- - data
- description: Generation response
- '401':
- description: Unauthorized - Authentication required or invalid credentials
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '402':
- description: Payment Required - Insufficient credits or quota to complete request
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PaymentRequiredResponse'
- '404':
- description: Not Found - Generation not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '429':
- description: Too Many Requests - Rate limit exceeded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/TooManyRequestsResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- '502':
- description: Bad Gateway - Provider/upstream API failure
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadGatewayResponse'
- '524':
- description: Infrastructure Timeout - Request timed out at our edge network
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
- '529':
- description: Provider Overloaded - Provider is temporarily overloaded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ProviderOverloadedResponse'
- operationId: getGeneration
- /models/count:
- get:
- tags:
- - Models
- x-speakeasy-name-override: count
- summary: Get total count of available models
- parameters:
- - schema:
- type: string
- description: >-
- Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
- embeddings) or "all" to include all models. Defaults to "text".
- example: text
- required: false
- description: >-
- Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
- embeddings) or "all" to include all models. Defaults to "text".
- name: output_modalities
- in: query
- responses:
- '200':
- description: Returns the total count of available models
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ModelsCountResponse'
- '400':
- description: Bad Request - Invalid output_modalities value
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- operationId: listModelsCount
- /models:
- get:
- tags:
- - Models
- x-speakeasy-name-override: list
- summary: List all models and their properties
- parameters:
- - schema:
- type: string
- enum:
- - programming
- - roleplay
- - marketing
- - marketing/seo
- - technology
- - science
- - translation
- - legal
- - finance
- - health
- - trivia
- - academia
- description: Filter models by use case category
- example: programming
- required: false
- description: Filter models by use case category
- name: category
- in: query
- - schema:
- type: string
- required: false
- name: supported_parameters
- in: query
- - schema:
- type: string
- description: >-
- Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
- embeddings) or "all" to include all models. Defaults to "text".
- example: text
- required: false
- description: >-
- Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
- embeddings) or "all" to include all models. Defaults to "text".
- name: output_modalities
- in: query
- - schema:
- type: string
- required: false
- name: use_rss
- in: query
- - schema:
- type: string
- required: false
- name: use_rss_chat_links
- in: query
- responses:
- '200':
- description: Returns a list of models or RSS feed
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ModelsListResponse'
- application/rss+xml:
- schema:
- type: string
- '400':
- description: Bad Request - Invalid request parameters
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- operationId: getModels
- /models/user:
- get:
- tags:
- - Models
- x-speakeasy-name-override: listForUser
- description: >-
- List models filtered by user provider preferences, [privacy
- settings](https://openrouter.ai/docs/guides/privacy/logging), and
- [guardrails](https://openrouter.ai/docs/guides/features/guardrails). If requesting through
- `eu.openrouter.ai/api/v1/...` the results will be filtered to models that satisfy [EU in-region
- routing](https://openrouter.ai/docs/guides/privacy/logging#enterprise-eu-in-region-routing).
- summary: List models filtered by user provider preferences, privacy settings, and guardrails
- security:
- - bearer: []
- responses:
- '200':
- description: Returns a list of models filtered by user provider preferences
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/ModelsListResponse'
- '401':
- description: Unauthorized - Missing or invalid authentication
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Not Found - No eligible endpoints found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- operationId: listModelsUser
- /models/{author}/{slug}/endpoints:
- get:
- tags:
- - Endpoints
- operationId: listEndpoints
- x-speakeasy-name-override: list
- summary: List all endpoints for a model
- parameters:
- - schema:
- type: string
- required: true
- name: author
- in: path
- - schema:
- type: string
- required: true
- name: slug
- in: path
- responses:
- '200':
- description: Returns a list of endpoints
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- $ref: '#/components/schemas/ListEndpointsResponse'
- required:
- - data
- '404':
- description: Not Found - Model does not exist
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /endpoints/zdr:
- get:
- tags:
- - Endpoints
- x-speakeasy-name-override: listZdrEndpoints
- summary: Preview the impact of ZDR on the available endpoints
- responses:
- '200':
- description: Returns a list of endpoints
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- $ref: '#/components/schemas/PublicEndpoint'
- required:
- - data
- '500':
- description: Internal Server Error - Unexpected server error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- operationId: listEndpointsZdr
- /providers:
- get:
- tags:
- - Providers
- x-speakeasy-name-override: list
- summary: List all providers
- operationId: listProviders
- responses:
- '200':
- description: Returns a list of providers
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- type: object
- properties:
- name:
- type: string
- description: Display name of the provider
- example: OpenAI
- slug:
- type: string
- description: URL-friendly identifier for the provider
- example: openai
- privacy_policy_url:
- type: string
- nullable: true
- description: URL to the provider's privacy policy
- example: https://openai.com/privacy
- terms_of_service_url:
- type: string
- nullable: true
- description: URL to the provider's terms of service
- example: https://openai.com/terms
- status_page_url:
- type: string
- nullable: true
- description: URL to the provider's status page
- example: https://status.openai.com
- headquarters:
- type: string
- nullable: true
- enum:
- - AD
- - AE
- - AF
- - AG
- - AI
- - AL
- - AM
- - AO
- - AQ
- - AR
- - AS
- - AT
- - AU
- - AW
- - AX
- - AZ
- - BA
- - BB
- - BD
- - BE
- - BF
- - BG
- - BH
- - BI
- - BJ
- - BL
- - BM
- - BN
- - BO
- - BQ
- - BR
- - BS
- - BT
- - BV
- - BW
- - BY
- - BZ
- - CA
- - CC
- - CD
- - CF
- - CG
- - CH
- - CI
- - CK
- - CL
- - CM
- - CN
- - CO
- - CR
- - CU
- - CV
- - CW
- - CX
- - CY
- - CZ
- - DE
- - DJ
- - DK
- - DM
- - DO
- - DZ
- - EC
- - EE
- - EG
- - EH
- - ER
- - ES
- - ET
- - FI
- - FJ
- - FK
- - FM
- - FO
- - FR
- - GA
- - GB
- - GD
- - GE
- - GF
- - GG
- - GH
- - GI
- - GL
- - GM
- - GN
- - GP
- - GQ
- - GR
- - GS
- - GT
- - GU
- - GW
- - GY
- - HK
- - HM
- - HN
- - HR
- - HT
- - HU
- - ID
- - IE
- - IL
- - IM
- - IN
- - IO
- - IQ
- - IR
- - IS
- - IT
- - JE
- - JM
- - JO
- - JP
- - KE
- - KG
- - KH
- - KI
- - KM
- - KN
- - KP
- - KR
- - KW
- - KY
- - KZ
- - LA
- - LB
- - LC
- - LI
- - LK
- - LR
- - LS
- - LT
- - LU
- - LV
- - LY
- - MA
- - MC
- - MD
- - ME
- - MF
- - MG
- - MH
- - MK
- - ML
- - MM
- - MN
- - MO
- - MP
- - MQ
- - MR
- - MS
- - MT
- - MU
- - MV
- - MW
- - MX
- - MY
- - MZ
- - NA
- - NC
- - NE
- - NF
- - NG
- - NI
- - NL
- - 'NO'
- - NP
- - NR
- - NU
- - NZ
- - OM
- - PA
- - PE
- - PF
- - PG
- - PH
- - PK
- - PL
- - PM
- - PN
- - PR
- - PS
- - PT
- - PW
- - PY
- - QA
- - RE
- - RO
- - RS
- - RU
- - RW
- - SA
- - SB
- - SC
- - SD
- - SE
- - SG
- - SH
- - SI
- - SJ
- - SK
- - SL
- - SM
- - SN
- - SO
- - SR
- - SS
- - ST
- - SV
- - SX
- - SY
- - SZ
- - TC
- - TD
- - TF
- - TG
- - TH
- - TJ
- - TK
- - TL
- - TM
- - TN
- - TO
- - TR
- - TT
- - TV
- - TW
- - TZ
- - UA
- - UG
- - UM
- - US
- - UY
- - UZ
- - VA
- - VC
- - VE
- - VG
- - VI
- - VN
- - VU
- - WF
- - WS
- - YE
- - YT
- - ZA
- - ZM
- - ZW
- description: ISO 3166-1 Alpha-2 country code of the provider headquarters
- example: US
- datacenters:
- type: array
- nullable: true
- items:
- type: string
- enum:
- - AD
- - AE
- - AF
- - AG
- - AI
- - AL
- - AM
- - AO
- - AQ
- - AR
- - AS
- - AT
- - AU
- - AW
- - AX
- - AZ
- - BA
- - BB
- - BD
- - BE
- - BF
- - BG
- - BH
- - BI
- - BJ
- - BL
- - BM
- - BN
- - BO
- - BQ
- - BR
- - BS
- - BT
- - BV
- - BW
- - BY
- - BZ
- - CA
- - CC
- - CD
- - CF
- - CG
- - CH
- - CI
- - CK
- - CL
- - CM
- - CN
- - CO
- - CR
- - CU
- - CV
- - CW
- - CX
- - CY
- - CZ
- - DE
- - DJ
- - DK
- - DM
- - DO
- - DZ
- - EC
- - EE
- - EG
- - EH
- - ER
- - ES
- - ET
- - FI
- - FJ
- - FK
- - FM
- - FO
- - FR
- - GA
- - GB
- - GD
- - GE
- - GF
- - GG
- - GH
- - GI
- - GL
- - GM
- - GN
- - GP
- - GQ
- - GR
- - GS
- - GT
- - GU
- - GW
- - GY
- - HK
- - HM
- - HN
- - HR
- - HT
- - HU
- - ID
- - IE
- - IL
- - IM
- - IN
- - IO
- - IQ
- - IR
- - IS
- - IT
- - JE
- - JM
- - JO
- - JP
- - KE
- - KG
- - KH
- - KI
- - KM
- - KN
- - KP
- - KR
- - KW
- - KY
- - KZ
- - LA
- - LB
- - LC
- - LI
- - LK
- - LR
- - LS
- - LT
- - LU
- - LV
- - LY
- - MA
- - MC
- - MD
- - ME
- - MF
- - MG
- - MH
- - MK
- - ML
- - MM
- - MN
- - MO
- - MP
- - MQ
- - MR
- - MS
- - MT
- - MU
- - MV
- - MW
- - MX
- - MY
- - MZ
- - NA
- - NC
- - NE
- - NF
- - NG
- - NI
- - NL
- - 'NO'
- - NP
- - NR
- - NU
- - NZ
- - OM
- - PA
- - PE
- - PF
- - PG
- - PH
- - PK
- - PL
- - PM
- - PN
- - PR
- - PS
- - PT
- - PW
- - PY
- - QA
- - RE
- - RO
- - RS
- - RU
- - RW
- - SA
- - SB
- - SC
- - SD
- - SE
- - SG
- - SH
- - SI
- - SJ
- - SK
- - SL
- - SM
- - SN
- - SO
- - SR
- - SS
- - ST
- - SV
- - SX
- - SY
- - SZ
- - TC
- - TD
- - TF
- - TG
- - TH
- - TJ
- - TK
- - TL
- - TM
- - TN
- - TO
- - TR
- - TT
- - TV
- - TW
- - TZ
- - UA
- - UG
- - UM
- - US
- - UY
- - UZ
- - VA
- - VC
- - VE
- - VG
- - VI
- - VN
- - VU
- - WF
- - WS
- - YE
- - YT
- - ZA
- - ZM
- - ZW
- description: ISO 3166-1 Alpha-2 country codes of the provider datacenter locations
+ type: string
+ required:
+ - error
+ type: object
+ ConflictResponseErrorData:
+ description: Error data for ConflictResponse
+ example:
+ code: 409
+ message: Resource conflict. Please try again later.
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ ContentPartAddedEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseContentPartAddedEvent'
+ - properties:
+ part:
+ anyOf:
+ - $ref: '#/components/schemas/ResponseOutputText'
+ - $ref: '#/components/schemas/ReasoningTextContent'
+ - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
+ type: object
+ description: Event emitted when a new content part is added to an output item
+ example:
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ part:
+ annotations: []
+ text: ''
+ type: output_text
+ sequence_number: 3
+ type: response.content_part.added
+ ContentPartDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseContentPartDoneEvent'
+ - properties:
+ part:
+ anyOf:
+ - $ref: '#/components/schemas/ResponseOutputText'
+ - $ref: '#/components/schemas/ReasoningTextContent'
+ - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
+ type: object
+ description: Event emitted when a content part is complete
+ example:
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ part:
+ annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ sequence_number: 7
+ type: response.content_part.done
+ ContentPartImage:
+ example:
+ image_url:
+ url: https://example.com/image.png
+ type: image_url
+ properties:
+ image_url:
+ properties:
+ url:
+ type: string
+ required:
+ - url
+ type: object
+ type:
+ enum:
+ - image_url
+ type: string
+ required:
+ - type
+ - image_url
+ type: object
+ ContextCompressionEngine:
+ description: The compression engine to use. Defaults to "middle-out".
+ enum:
+ - middle-out
+ example: middle-out
+ type: string
+ ContextCompressionPlugin:
+ example:
+ enabled: true
+ engine: middle-out
+ id: context-compression
+ properties:
+ enabled:
+ description: Set to false to disable the context-compression plugin for this request. Defaults to true.
+ type: boolean
+ engine:
+ $ref: '#/components/schemas/ContextCompressionEngine'
+ id:
+ enum:
+ - context-compression
+ type: string
+ required:
+ - id
+ type: object
+ CreatedEvent:
+ description: Event emitted when a response is created
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: in_progress
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 0
+ type: response.created
+ properties:
+ response:
+ $ref: '#/components/schemas/BaseResponsesResult'
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.created
+ type: string
+ required:
+ - type
+ - response
+ - sequence_number
+ type: object
+ CreateGuardrailRequest:
+ example:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - deepseek
+ description: A guardrail for limiting API usage
+ enforce_zdr: false
+ ignored_providers: null
+ limit_usd: 50
+ name: My New Guardrail
+ reset_interval: monthly
+ properties:
+ allowed_models:
+ description: Array of model identifiers (slug or canonical_slug accepted)
+ example:
+ - openai/gpt-5.2
+ - anthropic/claude-4.5-opus-20251124
+ - deepseek/deepseek-r1-0528:free
+ items:
+ type: string
+ minItems: 1
+ nullable: true
+ type: array
+ allowed_providers:
+ description: List of allowed provider IDs
+ example:
+ - openai
+ - anthropic
+ - deepseek
+ items:
+ type: string
+ minItems: 1
+ nullable: true
+ type: array
+ description:
+ description: Description of the guardrail
+ example: A guardrail for limiting API usage
+ maxLength: 1000
+ nullable: true
+ type: string
+ enforce_zdr:
+ description: Whether to enforce zero data retention
+ example: false
+ nullable: true
+ type: boolean
+ ignored_providers:
+ description: List of provider IDs to exclude from routing
+ example:
+ - azure
+ items:
+ type: string
+ minItems: 1
+ nullable: true
+ type: array
+ limit_usd:
+ description: Spending limit in USD
+ example: 50
+ format: double
+ type: number
+ name:
+ description: Name for the new guardrail
+ example: My New Guardrail
+ maxLength: 200
+ minLength: 1
+ type: string
+ reset_interval:
+ $ref: '#/components/schemas/GuardrailInterval'
+ required:
+ - name
+ type: object
+ CreateGuardrailResponse:
+ example:
+ data:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: A guardrail for limiting API usage
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 50
+ name: My New Guardrail
+ reset_interval: monthly
+ updated_at: null
+ properties:
+ data:
+ allOf:
+ - $ref: '#/components/schemas/Guardrail'
+ - description: The created guardrail
+ required:
+ - data
+ type: object
+ CustomTool:
+ description: Custom tool configuration
+ example:
+ name: my_tool
+ type: custom
+ properties:
+ description:
+ type: string
+ format:
+ anyOf:
+ - properties:
+ type:
+ enum:
+ - text
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ definition:
+ type: string
+ syntax:
+ enum:
+ - lark
+ - regex
+ type: string
+ type:
+ enum:
+ - grammar
+ type: string
+ required:
+ - type
+ - definition
+ - syntax
+ type: object
+ name:
+ type: string
+ type:
+ enum:
+ - custom
+ type: string
+ required:
+ - type
+ - name
+ type: object
+ DatetimeServerTool:
+ description: 'OpenRouter built-in server tool: returns the current date and time'
+ example:
+ parameters:
+ timezone: America/New_York
+ type: openrouter:datetime
+ properties:
+ parameters:
+ properties:
+ timezone:
+ description: IANA timezone name (e.g. "America/New_York"). Defaults to UTC.
+ example: America/New_York
+ type: string
+ type: object
+ type:
+ enum:
+ - openrouter:datetime
+ type: string
+ required:
+ - type
+ type: object
+ DefaultParameters:
+ additionalProperties: false
+ description: Default parameters for this model
+ example:
+ frequency_penalty: 0
+ presence_penalty: 0
+ repetition_penalty: 1
+ temperature: 0.7
+ top_k: 0
+ top_p: 0.9
+ nullable: true
+ properties:
+ frequency_penalty:
+ format: double
+ type: number
+ presence_penalty:
+ format: double
+ type: number
+ repetition_penalty:
+ format: double
+ type: number
+ temperature:
+ format: double
+ type: number
+ top_k:
+ minimum: 0
+ nullable: true
+ type: integer
+ top_p:
+ format: double
+ type: number
+ type: object
+ DeleteGuardrailResponse:
+ example:
+ deleted: true
+ properties:
+ deleted:
+ const: true
+ description: Confirmation that the guardrail was deleted
+ example: true
+ type: boolean
+ required:
+ - deleted
+ type: object
+ DeprecatedRoute:
+ deprecated: true
+ description: >-
+ **DEPRECATED** Use providers.sort.partition instead. Backwards-compatible alias for providers.sort.partition.
+ Accepts legacy values: "fallback" (maps to "model"), "sort" (maps to "none").
+ enum:
+ - fallback
+ - sort
+ - null
+ example: fallback
+ nullable: true
+ type: string
+ x-fern-ignore: true
+ x-speakeasy-deprecation-message: Use providers.sort.partition instead.
+ x-speakeasy-ignore: true
+ EasyInputMessage:
+ example:
+ content: What is the weather today?
+ role: user
+ properties:
+ content:
+ anyOf:
+ - items:
+ oneOf:
+ - $ref: '#/components/schemas/InputText'
+ - allOf:
+ - $ref: '#/components/schemas/InputImage'
+ - properties: {}
+ type: object
+ description: Image input content item
+ example:
+ detail: auto
+ image_url: https://example.com/image.jpg
+ type: input_image
+ - $ref: '#/components/schemas/InputFile'
+ - $ref: '#/components/schemas/InputAudio'
+ - $ref: '#/components/schemas/InputVideo'
+ type: array
+ - type: string
+ - nullable: true
+ phase:
+ anyOf:
+ - enum:
+ - commentary
+ type: string
+ - enum:
+ - final_answer
+ type: string
+ - nullable: true
+ description: >-
+ The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer`
+ for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve
+ and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.
+ example: final_answer
+ role:
+ anyOf:
+ - enum:
+ - user
+ type: string
+ - enum:
+ - system
+ type: string
+ - enum:
+ - assistant
+ type: string
+ - enum:
+ - developer
+ type: string
+ type:
+ enum:
+ - message
+ type: string
+ required:
+ - role
+ type: object
+ EdgeNetworkTimeoutResponse:
+ description: Infrastructure Timeout - Provider request timed out at edge network
+ example:
+ error:
+ code: 524
+ message: Request timed out. Please try again later.
+ properties:
+ error:
+ $ref: '#/components/schemas/EdgeNetworkTimeoutResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ EdgeNetworkTimeoutResponseErrorData:
+ description: Error data for EdgeNetworkTimeoutResponse
+ example:
+ code: 524
+ message: Request timed out. Please try again later.
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ EndpointStatus:
+ enum:
+ - 0
+ - -1
+ - -2
+ - -3
+ - -5
+ - -10
+ example: 0
+ type: integer
+ ErrorEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseErrorEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when an error occurs during streaming
+ example:
+ code: rate_limit_exceeded
+ message: Rate limit exceeded. Please try again later.
+ param: null
+ sequence_number: 2
+ type: error
+ FailedEvent:
+ description: Event emitted when a response has failed
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: failed
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 3
+ type: response.failed
+ properties:
+ response:
+ $ref: '#/components/schemas/BaseResponsesResult'
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.failed
+ type: string
+ required:
+ - type
+ - response
+ - sequence_number
+ type: object
+ FileCitation:
+ example:
+ file_id: file-abc123
+ filename: research_paper.pdf
+ index: 0
+ type: file_citation
+ properties:
+ file_id:
+ type: string
+ filename:
+ type: string
+ index:
+ type: integer
+ type:
+ enum:
+ - file_citation
+ type: string
+ required:
+ - type
+ - file_id
+ - filename
+ - index
+ type: object
+ FileParserPlugin:
+ example:
+ enabled: true
+ id: file-parser
+ pdf:
+ engine: cloudflare-ai
+ properties:
+ enabled:
+ description: Set to false to disable the file-parser plugin for this request. Defaults to true.
+ type: boolean
+ id:
+ enum:
+ - file-parser
+ type: string
+ pdf:
+ $ref: '#/components/schemas/PDFParserOptions'
+ required:
+ - id
+ type: object
+ FilePath:
+ example:
+ file_id: file-xyz789
+ index: 0
+ type: file_path
+ properties:
+ file_id:
+ type: string
+ index:
+ type: integer
+ type:
+ enum:
+ - file_path
+ type: string
+ required:
+ - type
+ - file_id
+ - index
+ type: object
+ FileSearchServerTool:
+ description: File search tool configuration
+ example:
+ type: file_search
+ vector_store_ids:
+ - vs_abc123
+ properties:
+ filters:
+ anyOf:
+ - properties:
+ key:
+ type: string
+ type:
+ enum:
+ - eq
+ - ne
+ - gt
+ - gte
+ - lt
+ - lte
+ type: string
+ value:
+ anyOf:
+ - type: string
+ - format: double
+ type: number
+ - type: boolean
+ - items:
+ anyOf:
+ - type: string
+ - format: double
+ type: number
+ type: array
+ required:
+ - key
+ - type
+ - value
+ type: object
+ - $ref: '#/components/schemas/CompoundFilter'
+ - nullable: true
+ max_num_results:
+ type: integer
+ ranking_options:
+ properties:
+ ranker:
+ enum:
+ - auto
+ - default-2024-11-15
+ type: string
+ score_threshold:
+ format: double
+ type: number
+ type: object
+ type:
+ enum:
+ - file_search
+ type: string
+ vector_store_ids:
+ items:
+ type: string
+ type: array
+ required:
+ - type
+ - vector_store_ids
+ type: object
+ ForbiddenResponse:
+ description: Forbidden - Authentication successful but insufficient permissions
+ example:
+ error:
+ code: 403
+ message: Only management keys can perform this operation
+ properties:
+ error:
+ $ref: '#/components/schemas/ForbiddenResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ ForbiddenResponseErrorData:
+ description: Error data for ForbiddenResponse
+ example:
+ code: 403
+ message: Only management keys can perform this operation
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ FormatJsonObjectConfig:
+ description: JSON object response format
+ example:
+ type: json_object
+ properties:
+ type:
+ enum:
+ - json_object
+ type: string
+ required:
+ - type
+ type: object
+ FormatJsonSchemaConfig:
+ description: JSON schema constrained response format
+ example:
+ description: User information schema
+ name: user_info
+ schema:
+ properties:
+ age:
+ type: number
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ type: json_schema
+ properties:
+ description:
+ type: string
+ name:
+ type: string
+ schema:
+ additionalProperties:
+ nullable: true
+ type: object
+ strict:
+ nullable: true
+ type: boolean
+ type:
+ enum:
+ - json_schema
+ type: string
+ required:
+ - type
+ - name
+ - schema
+ type: object
+ Formats:
+ anyOf:
+ - $ref: '#/components/schemas/FormatTextConfig'
+ - $ref: '#/components/schemas/FormatJsonObjectConfig'
+ - $ref: '#/components/schemas/FormatJsonSchemaConfig'
+ description: Text response format configuration
+ example:
+ type: text
+ FormatTextConfig:
+ description: Plain text response format
+ example:
+ type: text
+ properties:
+ type:
+ enum:
+ - text
+ type: string
+ required:
+ - type
+ type: object
+ FunctionCallArgsDeltaEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseFunctionCallArgsDeltaEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when function call arguments are being streamed
+ example:
+ delta: '{"city": "..."}'
+ item_id: item-1
+ output_index: 0
+ sequence_number: 4
+ type: response.function_call_arguments.delta
+ FunctionCallArgsDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseFunctionCallArgsDoneEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when function call arguments streaming is complete
+ example:
+ arguments: '{"city": "San Francisco", "units": "celsius"}'
+ item_id: item-1
+ name: get_weather
+ output_index: 0
+ sequence_number: 6
+ type: response.function_call_arguments.done
+ FunctionCallItem:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponseFunctionToolCall'
+ - properties: {}
+ required:
+ - id
+ type: object
+ description: A function call initiated by the model
+ example:
+ arguments: '{"location":"San Francisco"}'
+ call_id: call-abc123
+ id: call-abc123
+ name: get_weather
+ status: completed
+ type: function_call
+ FunctionCallOutputItem:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponseFunctionToolCallOutput'
+ - properties:
+ output:
+ anyOf:
+ - type: string
+ - items:
+ oneOf:
+ - $ref: '#/components/schemas/InputText'
+ - allOf:
+ - $ref: '#/components/schemas/InputImage'
+ - properties: {}
+ type: object
+ description: Image input content item
+ example:
+ detail: auto
+ image_url: https://example.com/image.jpg
+ type: input_image
+ - $ref: '#/components/schemas/InputFile'
+ type: array
+ type: object
+ description: The output from a function call execution
+ example:
+ call_id: call-abc123
+ id: output-abc123
+ output: '{"temperature":72,"conditions":"sunny"}'
+ status: completed
+ type: function_call_output
+ FunctionTool:
+ description: Function tool definition
+ example:
+ description: Get the current weather in a location
+ name: get_weather
+ parameters:
+ properties:
+ location:
+ description: The city and state
+ type: string
+ unit:
+ enum:
+ - celsius
+ - fahrenheit
+ type: string
+ required:
+ - location
+ type: object
+ type: function
+ properties:
+ description:
+ nullable: true
+ type: string
+ name:
+ type: string
+ parameters:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ strict:
+ nullable: true
+ type: boolean
+ type:
+ enum:
+ - function
+ type: string
+ required:
+ - type
+ - name
+ - parameters
+ type: object
+ GetGuardrailResponse:
+ example:
+ data:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: Guardrail for production environment
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 100
+ name: Production Guardrail
+ reset_interval: monthly
+ updated_at: '2025-08-24T15:45:00Z'
+ properties:
+ data:
+ allOf:
+ - $ref: '#/components/schemas/Guardrail'
+ - description: The guardrail
+ required:
+ - data
+ type: object
+ GoneResponse:
+ description: Gone - Endpoint has been permanently removed or deprecated
+ example:
+ error:
+ code: 410
+ message: >-
+ The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been
+ removed. Use the web credits purchase flow instead.
+ properties:
+ error:
+ $ref: '#/components/schemas/GoneResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ GoneResponseErrorData:
+ description: Error data for GoneResponse
+ example:
+ code: 410
+ message: >-
+ The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been
+ removed. Use the web credits purchase flow instead.
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ Guardrail:
+ example:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: Guardrail for production environment
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 100
+ name: Production Guardrail
+ reset_interval: monthly
+ updated_at: '2025-08-24T15:45:00Z'
+ properties:
+ allowed_models:
+ description: Array of model canonical_slugs (immutable identifiers)
+ example:
+ - openai/gpt-5.2-20251211
+ - anthropic/claude-4.5-opus-20251124
+ - deepseek/deepseek-r1-0528:free
+ items:
+ type: string
+ nullable: true
+ type: array
+ allowed_providers:
+ description: List of allowed provider IDs
+ example:
+ - openai
+ - anthropic
+ - google
+ items:
+ type: string
+ nullable: true
+ type: array
+ created_at:
+ description: ISO 8601 timestamp of when the guardrail was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ description:
+ description: Description of the guardrail
+ example: Guardrail for production environment
+ nullable: true
+ type: string
+ enforce_zdr:
+ description: Whether to enforce zero data retention
+ example: false
+ nullable: true
+ type: boolean
+ id:
+ description: Unique identifier for the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ ignored_providers:
+ description: List of provider IDs to exclude from routing
+ example:
+ - azure
+ items:
+ type: string
+ nullable: true
+ type: array
+ limit_usd:
+ description: Spending limit in USD
+ example: 100
+ format: double
+ type: number
+ name:
+ description: Name of the guardrail
+ example: Production Guardrail
+ type: string
+ reset_interval:
+ $ref: '#/components/schemas/GuardrailInterval'
+ updated_at:
+ description: ISO 8601 timestamp of when the guardrail was last updated
+ example: '2025-08-24T15:45:00Z'
+ nullable: true
+ type: string
+ required:
+ - id
+ - name
+ - created_at
+ type: object
+ GuardrailInterval:
+ description: Interval at which the limit resets (daily, weekly, monthly)
+ enum:
+ - daily
+ - weekly
+ - monthly
+ - null
+ example: monthly
+ nullable: true
+ type: string
+ ImageGenCallCompletedEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesImageGenCallCompleted'
+ - properties: {}
+ type: object
+ description: Image generation call completed
+ example:
+ item_id: call-123
+ output_index: 0
+ sequence_number: 4
+ type: response.image_generation_call.completed
+ ImageGenCallGeneratingEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesImageGenCallGenerating'
+ - properties: {}
+ type: object
+ description: Image generation call is generating
+ example:
+ item_id: call-123
+ output_index: 0
+ sequence_number: 2
+ type: response.image_generation_call.generating
+ ImageGenCallInProgressEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesImageGenCallInProgress'
+ - properties: {}
+ type: object
+ description: Image generation call in progress
+ example:
+ item_id: call-123
+ output_index: 0
+ sequence_number: 1
+ type: response.image_generation_call.in_progress
+ ImageGenCallPartialImageEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesImageGenCallPartialImage'
+ - properties: {}
+ type: object
+ description: Image generation call with partial image
+ example:
+ item_id: call-123
+ output_index: 0
+ partial_image_b64: base64encodedimage...
+ partial_image_index: 0
+ sequence_number: 3
+ type: response.image_generation_call.partial_image
+ ImageGenerationServerTool:
+ description: Image generation tool configuration
+ example:
+ quality: high
+ type: image_generation
+ properties:
+ background:
+ enum:
+ - transparent
+ - opaque
+ - auto
+ type: string
+ input_fidelity:
+ enum:
+ - high
+ - low
+ - null
+ nullable: true
+ type: string
+ input_image_mask:
+ properties:
+ file_id:
+ type: string
+ image_url:
+ type: string
+ type: object
+ model:
+ enum:
+ - gpt-image-1
+ - gpt-image-1-mini
+ type: string
+ moderation:
+ enum:
+ - auto
+ - low
+ type: string
+ output_compression:
+ type: integer
+ output_format:
+ enum:
+ - png
+ - webp
+ - jpeg
+ type: string
+ partial_images:
+ type: integer
+ quality:
+ enum:
+ - low
+ - medium
+ - high
+ - auto
+ type: string
+ size:
+ enum:
+ - 1024x1024
+ - 1024x1536
+ - 1536x1024
+ - auto
+ type: string
+ type:
+ enum:
+ - image_generation
+ type: string
+ required:
+ - type
+ type: object
+ ImageGenerationStatus:
+ enum:
+ - in_progress
+ - completed
+ - generating
+ - failed
+ example: completed
+ type: string
+ IncompleteDetails:
+ example:
+ reason: max_output_tokens
+ nullable: true
+ properties:
+ reason:
+ enum:
+ - max_output_tokens
+ - content_filter
+ type: string
+ type: object
+ IncompleteEvent:
+ description: Event emitted when a response is incomplete
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: incomplete
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 5
+ type: response.incomplete
+ properties:
+ response:
+ $ref: '#/components/schemas/BaseResponsesResult'
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.incomplete
+ type: string
+ required:
+ - type
+ - response
+ - sequence_number
+ type: object
+ InProgressEvent:
+ description: Event emitted when a response is in progress
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: in_progress
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 1
+ type: response.in_progress
+ properties:
+ response:
+ $ref: '#/components/schemas/BaseResponsesResult'
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.in_progress
+ type: string
+ required:
+ - type
+ - response
+ - sequence_number
+ type: object
+ InputAudio:
+ description: Audio input content item
+ example:
+ input_audio:
+ data: SGVsbG8gV29ybGQ=
+ format: mp3
+ type: input_audio
+ properties:
+ input_audio:
+ properties:
+ data:
+ type: string
+ format:
+ enum:
+ - mp3
+ - wav
+ type: string
+ required:
+ - data
+ - format
+ type: object
+ type:
+ enum:
+ - input_audio
+ type: string
+ required:
+ - type
+ - input_audio
+ type: object
+ InputFile:
+ description: File input content item
+ example:
+ file_id: file-abc123
+ filename: document.pdf
+ type: input_file
+ properties:
+ file_data:
+ type: string
+ file_id:
+ nullable: true
+ type: string
+ file_url:
+ type: string
+ filename:
+ type: string
+ type:
+ enum:
+ - input_file
+ type: string
+ required:
+ - type
+ type: object
+ InputImage:
+ description: Image input content item
+ example:
+ detail: auto
+ image_url: https://example.com/image.jpg
+ type: input_image
+ properties:
+ detail:
+ enum:
+ - auto
+ - high
+ - low
+ type: string
+ image_url:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - input_image
+ type: string
+ required:
+ - type
+ - detail
+ type: object
+ InputMessageItem:
+ example:
+ content:
+ - text: Hello, how are you?
+ type: input_text
+ id: msg-abc123
+ role: user
+ type: message
+ properties:
+ content:
+ items:
+ oneOf:
+ - $ref: '#/components/schemas/InputText'
+ - allOf:
+ - $ref: '#/components/schemas/InputImage'
+ - properties: {}
+ type: object
+ description: Image input content item
+ example:
+ detail: auto
+ image_url: https://example.com/image.jpg
+ type: input_image
+ - $ref: '#/components/schemas/InputFile'
+ - $ref: '#/components/schemas/InputAudio'
+ - $ref: '#/components/schemas/InputVideo'
+ nullable: true
+ type: array
+ id:
+ type: string
+ role:
+ anyOf:
+ - enum:
+ - user
+ type: string
+ - enum:
+ - system
+ type: string
+ - enum:
+ - developer
+ type: string
+ type:
+ enum:
+ - message
+ type: string
+ required:
+ - role
+ type: object
+ InputModality:
+ enum:
+ - text
+ - image
+ - file
+ - audio
+ - video
+ example: text
+ type: string
+ Inputs:
+ anyOf:
+ - type: string
+ - items:
+ anyOf:
+ - $ref: '#/components/schemas/ReasoningItem'
+ - $ref: '#/components/schemas/EasyInputMessage'
+ - $ref: '#/components/schemas/InputMessageItem'
+ - $ref: '#/components/schemas/FunctionCallItem'
+ - $ref: '#/components/schemas/FunctionCallOutputItem'
+ - allOf:
+ - $ref: '#/components/schemas/OutputMessageItem'
+ - properties:
+ content:
+ anyOf:
+ - items:
+ anyOf:
+ - $ref: '#/components/schemas/ResponseOutputText'
+ - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
+ type: array
+ - type: string
+ - nullable: true
+ type: object
+ description: An output message item
+ example:
+ content:
+ - annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ id: msg-123
+ role: assistant
+ status: completed
+ type: message
+ - allOf:
+ - $ref: '#/components/schemas/OutputReasoningItem'
+ - properties:
+ summary:
+ items:
+ $ref: '#/components/schemas/ReasoningSummaryText'
+ nullable: true
+ type: array
+ type: object
+ description: An output item containing reasoning
+ example:
+ content:
+ - text: First, we analyze the problem...
+ type: reasoning_text
+ format: anthropic-claude-v1
+ id: reasoning-123
+ signature: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...
+ status: completed
+ summary:
+ - text: Analyzed the problem and found the optimal solution.
+ type: summary_text
+ type: reasoning
+ - $ref: '#/components/schemas/OutputFunctionCallItem'
+ - $ref: '#/components/schemas/OutputWebSearchCallItem'
+ - $ref: '#/components/schemas/OutputFileSearchCallItem'
+ - $ref: '#/components/schemas/OutputImageGenerationCallItem'
+ - $ref: '#/components/schemas/OutputDatetimeItem'
+ - $ref: '#/components/schemas/OutputWebSearchServerToolItem'
+ type: array
+ description: Input for a response request - can be a string or array of items
+ example:
+ - content: What is the weather today?
+ role: user
+ InputText:
+ description: Text input content item
+ example:
+ text: Hello, how can I help you?
+ type: input_text
+ properties:
+ text:
+ type: string
+ type:
+ enum:
+ - input_text
+ type: string
+ required:
+ - type
+ - text
+ type: object
+ InputVideo:
+ description: Video input content item
+ example:
+ type: input_video
+ video_url: https://example.com/video.mp4
+ properties:
+ type:
+ enum:
+ - input_video
+ type: string
+ video_url:
+ description: A base64 data URL or remote URL that resolves to a video file
+ type: string
+ required:
+ - type
+ - video_url
+ type: object
+ InstructType:
+ description: Instruction format type
+ enum:
+ - none
+ - airoboros
+ - alpaca
+ - alpaca-modif
+ - chatml
+ - claude
+ - code-llama
+ - gemma
+ - llama2
+ - llama3
+ - mistral
+ - nemotron
+ - neural
+ - openchat
+ - phi3
+ - rwkv
+ - vicuna
+ - zephyr
+ - deepseek-r1
+ - deepseek-v3.1
+ - qwq
+ - qwen3
+ - null
+ example: chatml
+ nullable: true
+ type: string
+ InternalServerResponse:
+ description: Internal Server Error - Unexpected server error
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ properties:
+ error:
+ $ref: '#/components/schemas/InternalServerResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ InternalServerResponseErrorData:
+ description: Error data for InternalServerResponse
+ example:
+ code: 500
+ message: Internal Server Error
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ KeyAssignment:
+ example:
+ assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ key_label: prod-key
+ key_name: Production Key
+ properties:
+ assigned_by:
+ description: User ID of who made the assignment
+ example: user_abc123
+ nullable: true
+ type: string
+ created_at:
+ description: ISO 8601 timestamp of when the assignment was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ guardrail_id:
+ description: ID of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440001
+ format: uuid
+ type: string
+ id:
+ description: Unique identifier for the assignment
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ key_hash:
+ description: Hash of the assigned API key
+ example: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ type: string
+ key_label:
+ description: Label of the API key
+ example: prod-key
+ type: string
+ key_name:
+ description: Name of the API key
+ example: Production Key
+ type: string
+ required:
+ - id
+ - key_hash
+ - guardrail_id
+ - key_name
+ - key_label
+ - assigned_by
+ - created_at
+ type: object
+ Legacy_ChatContentVideo:
+ deprecated: true
+ description: Video input content part (legacy format - deprecated)
+ example:
+ type: input_video
+ video_url:
+ url: https://example.com/video.mp4
+ properties:
+ type:
+ enum:
+ - input_video
+ type: string
+ video_url:
+ $ref: '#/components/schemas/ChatContentVideoInput'
+ required:
+ - type
+ - video_url
+ type: object
+ Legacy_WebSearchServerTool:
+ description: Web search tool configuration
+ example:
+ engine: auto
+ filters:
+ allowed_domains:
+ - example.com
+ type: web_search
+ properties:
+ engine:
+ $ref: '#/components/schemas/WebSearchEngineEnum'
+ filters:
+ $ref: '#/components/schemas/WebSearchDomainFilter'
+ max_results:
+ description: >-
+ Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
+ Parallel engines; ignored with native provider search.
+ example: 5
+ type: integer
+ search_context_size:
+ $ref: '#/components/schemas/SearchContextSizeEnum'
+ type:
+ enum:
+ - web_search
+ type: string
+ user_location:
+ $ref: '#/components/schemas/WebSearchUserLocation'
+ required:
+ - type
+ type: object
+ ListEndpointsResponse:
+ description: List of available endpoints for a model
+ example:
+ architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ created: 1692901234
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ endpoints:
+ - context_length: 8192
+ latency_last_30m:
+ p50: 0.25
+ p75: 0.35
+ p90: 0.48
+ p99: 0.85
+ max_completion_tokens: 4096
+ max_prompt_tokens: 8192
+ model_name: GPT-4
+ name: 'OpenAI: GPT-4'
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ provider_name: OpenAI
+ quantization: fp16
+ status: default
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ - frequency_penalty
+ - presence_penalty
+ supports_implicit_caching: true
+ tag: openai
+ throughput_last_30m:
+ p50: 45.2
+ p75: 38.5
+ p90: 28.3
+ p99: 15.1
+ uptime_last_1d: 99.8
+ uptime_last_30m: 99.5
+ uptime_last_5m: 100
+ id: openai/gpt-4
+ name: GPT-4
+ properties:
+ architecture:
+ allOf:
+ - $ref: '#/components/schemas/ModelArchitecture'
+ - example:
+ instruct_type: chatml
+ modality: text
+ tokenizer: GPT
+ properties:
+ input_modalities:
+ description: Supported input modalities
+ items:
+ $ref: '#/components/schemas/InputModality'
+ type: array
+ instruct_type:
+ $ref: '#/components/schemas/InstructType'
+ modality:
+ description: Primary modality of the model
+ example: text
+ nullable: true
+ type: string
+ output_modalities:
+ description: Supported output modalities
+ items:
+ $ref: '#/components/schemas/OutputModality'
+ type: array
+ tokenizer:
+ allOf:
+ - $ref: '#/components/schemas/ModelGroup'
+ - nullable: true
+ required:
+ - tokenizer
+ - instruct_type
+ - modality
+ - input_modalities
+ - output_modalities
+ created:
+ description: Unix timestamp of when the model was created
+ example: 1692901234
+ type: integer
+ description:
+ description: Description of the model
+ example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ type: string
+ endpoints:
+ description: List of available endpoints for this model
+ items:
+ $ref: '#/components/schemas/PublicEndpoint'
+ type: array
+ id:
+ description: Unique identifier for the model
+ example: openai/gpt-4
+ type: string
+ name:
+ description: Display name of the model
+ example: GPT-4
+ type: string
+ required:
+ - id
+ - name
+ - created
+ - description
+ - architecture
+ - endpoints
+ type: object
+ ListGuardrailsResponse:
+ example:
+ data:
+ - allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: Guardrail for production environment
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 100
+ name: Production Guardrail
+ reset_interval: monthly
+ updated_at: '2025-08-24T15:45:00Z'
+ total_count: 1
+ properties:
+ data:
+ description: List of guardrails
+ items:
+ $ref: '#/components/schemas/Guardrail'
+ type: array
+ total_count:
+ description: Total number of guardrails
+ example: 25
+ type: integer
+ required:
+ - data
+ - total_count
+ type: object
+ ListKeyAssignmentsResponse:
+ example:
+ data:
+ - assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ key_label: prod-key
+ key_name: Production Key
+ total_count: 1
+ properties:
+ data:
+ description: List of key assignments
+ items:
+ $ref: '#/components/schemas/KeyAssignment'
+ type: array
+ total_count:
+ description: Total number of key assignments for this guardrail
+ example: 25
+ type: integer
+ required:
+ - data
+ - total_count
+ type: object
+ ListMemberAssignmentsResponse:
+ example:
+ data:
+ - assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ organization_id: org_xyz789
+ user_id: user_abc123
+ total_count: 1
+ properties:
+ data:
+ description: List of member assignments
+ items:
+ $ref: '#/components/schemas/MemberAssignment'
+ type: array
+ total_count:
+ description: Total number of member assignments
+ example: 10
+ type: integer
+ required:
+ - data
+ - total_count
+ type: object
+ McpServerTool:
+ description: MCP (Model Context Protocol) tool configuration
+ example:
+ server_label: my-server
+ server_url: https://example.com/mcp
+ type: mcp
+ properties:
+ allowed_tools:
+ anyOf:
+ - items:
+ type: string
+ type: array
+ - properties:
+ read_only:
+ type: boolean
+ tool_names:
+ items:
+ type: string
+ type: array
+ type: object
+ - nullable: true
+ authorization:
+ type: string
+ connector_id:
+ enum:
+ - connector_dropbox
+ - connector_gmail
+ - connector_googlecalendar
+ - connector_googledrive
+ - connector_microsoftteams
+ - connector_outlookcalendar
+ - connector_outlookemail
+ - connector_sharepoint
+ type: string
+ headers:
+ additionalProperties:
+ type: string
+ nullable: true
+ type: object
+ require_approval:
+ anyOf:
+ - properties:
+ always:
+ properties:
+ tool_names:
+ items:
+ type: string
+ type: array
+ type: object
+ never:
+ properties:
+ tool_names:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ - enum:
+ - always
+ type: string
+ - enum:
+ - never
+ type: string
+ - nullable: true
+ server_description:
+ type: string
+ server_label:
+ type: string
+ server_url:
+ type: string
+ type:
+ enum:
+ - mcp
+ type: string
+ required:
+ - type
+ - server_label
+ type: object
+ MemberAssignment:
+ example:
+ assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ organization_id: org_xyz789
+ user_id: user_abc123
+ properties:
+ assigned_by:
+ description: User ID of who made the assignment
+ example: user_abc123
+ nullable: true
+ type: string
+ created_at:
+ description: ISO 8601 timestamp of when the assignment was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ guardrail_id:
+ description: ID of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440001
+ format: uuid
+ type: string
+ id:
+ description: Unique identifier for the assignment
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ organization_id:
+ description: Organization ID
+ example: org_xyz789
+ type: string
+ user_id:
+ description: Clerk user ID of the assigned member
+ example: user_abc123
+ type: string
+ required:
+ - id
+ - user_id
+ - organization_id
+ - guardrail_id
+ - assigned_by
+ - created_at
+ type: object
+ MessagesContentBlockDeltaEvent:
+ description: Event sent when content is added to a content block
+ example:
+ delta:
+ text: Hello
+ type: text_delta
+ index: 0
+ type: content_block_delta
+ properties:
+ delta:
+ oneOf:
+ - properties:
+ text:
+ type: string
+ type:
+ enum:
+ - text_delta
+ type: string
+ required:
+ - type
+ - text
+ type: object
+ - properties:
+ partial_json:
+ type: string
+ type:
+ enum:
+ - input_json_delta
+ type: string
+ required:
+ - type
+ - partial_json
+ type: object
+ - properties:
+ thinking:
+ type: string
+ type:
+ enum:
+ - thinking_delta
+ type: string
+ required:
+ - type
+ - thinking
+ type: object
+ - properties:
+ signature:
+ type: string
+ type:
+ enum:
+ - signature_delta
+ type: string
+ required:
+ - type
+ - signature
+ type: object
+ - properties:
+ citation:
+ discriminator:
+ mapping:
+ char_location: '#/components/schemas/AnthropicCitationCharLocation'
+ content_block_location: '#/components/schemas/AnthropicCitationContentBlockLocation'
+ page_location: '#/components/schemas/AnthropicCitationPageLocation'
+ search_result_location: '#/components/schemas/AnthropicCitationSearchResultLocation'
+ web_search_result_location: '#/components/schemas/AnthropicCitationWebSearchResultLocation'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicCitationCharLocation'
+ - $ref: '#/components/schemas/AnthropicCitationPageLocation'
+ - $ref: '#/components/schemas/AnthropicCitationContentBlockLocation'
+ - $ref: '#/components/schemas/AnthropicCitationWebSearchResultLocation'
+ - $ref: '#/components/schemas/AnthropicCitationSearchResultLocation'
+ type:
+ enum:
+ - citations_delta
+ type: string
+ required:
+ - type
+ - citation
+ type: object
+ - properties:
+ content:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - compaction_delta
+ type: string
+ required:
+ - type
+ - content
+ type: object
+ index:
+ type: integer
+ type:
+ enum:
+ - content_block_delta
+ type: string
+ required:
+ - type
+ - index
+ - delta
+ type: object
+ MessagesContentBlockStartEvent:
+ description: Event sent when a new content block starts
+ example:
+ content_block:
+ text: ''
+ type: text
+ index: 0
+ type: content_block_start
+ properties:
+ content_block:
+ anyOf:
+ - $ref: '#/components/schemas/AnthropicTextBlock'
+ - $ref: '#/components/schemas/AnthropicToolUseBlock'
+ - $ref: '#/components/schemas/AnthropicThinkingBlock'
+ - $ref: '#/components/schemas/AnthropicRedactedThinkingBlock'
+ - $ref: '#/components/schemas/AnthropicServerToolUseBlock'
+ - $ref: '#/components/schemas/AnthropicWebSearchToolResult'
+ - $ref: '#/components/schemas/AnthropicWebFetchToolResult'
+ - $ref: '#/components/schemas/AnthropicCodeExecutionToolResult'
+ - $ref: '#/components/schemas/AnthropicBashCodeExecutionToolResult'
+ - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResult'
+ - $ref: '#/components/schemas/AnthropicToolSearchToolResult'
+ - $ref: '#/components/schemas/AnthropicContainerUpload'
+ - $ref: '#/components/schemas/AnthropicCompactionBlock'
+ - properties:
+ content:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - compaction
+ type: string
+ required:
+ - type
+ - content
+ type: object
+ index:
+ type: integer
+ type:
+ enum:
+ - content_block_start
+ type: string
+ required:
+ - type
+ - index
+ - content_block
+ type: object
+ MessagesContentBlockStopEvent:
+ description: Event sent when a content block is complete
+ example:
+ index: 0
+ type: content_block_stop
+ properties:
+ index:
+ type: integer
+ type:
+ enum:
+ - content_block_stop
+ type: string
+ required:
+ - type
+ - index
+ type: object
+ MessagesDeltaEvent:
+ description: Event sent when the message metadata changes (e.g., stop_reason)
+ example:
+ delta:
+ stop_reason: end_turn
+ stop_sequence: null
+ type: message_delta
+ usage:
+ output_tokens: 15
+ properties:
+ delta:
+ properties:
+ container:
+ $ref: '#/components/schemas/AnthropicContainer'
+ stop_reason:
+ $ref: '#/components/schemas/ORAnthropicStopReason'
+ stop_sequence:
+ nullable: true
+ type: string
+ required:
+ - container
+ - stop_reason
+ - stop_sequence
+ type: object
+ type:
+ enum:
+ - message_delta
+ type: string
+ usage:
+ properties:
+ cache_creation_input_tokens:
+ nullable: true
+ type: integer
+ cache_read_input_tokens:
+ nullable: true
+ type: integer
+ input_tokens:
+ nullable: true
+ type: integer
+ iterations:
+ items:
+ $ref: '#/components/schemas/AnthropicUsageIteration'
+ type: array
+ output_tokens:
+ type: integer
+ server_tool_use:
+ nullable: true
+ properties:
+ web_fetch_requests:
+ type: integer
+ web_search_requests:
+ type: integer
+ required:
+ - web_search_requests
+ - web_fetch_requests
+ type: object
+ required:
+ - input_tokens
+ - output_tokens
+ - cache_creation_input_tokens
+ - cache_read_input_tokens
+ - server_tool_use
+ type: object
+ required:
+ - type
+ - delta
+ - usage
+ type: object
+ MessagesErrorDetail:
+ example:
+ message: Invalid request parameters
+ type: invalid_request_error
+ properties:
+ message:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ - message
+ type: object
+ MessagesErrorEvent:
+ description: Error event in the stream
+ example:
+ error:
+ message: Overloaded
+ type: overloaded_error
+ type: error
+ properties:
+ error:
+ properties:
+ message:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ - message
+ type: object
+ type:
+ enum:
+ - error
+ type: string
+ required:
+ - type
+ - error
+ type: object
+ MessagesErrorResponse:
+ example:
+ error:
+ message: Invalid request parameters
+ type: invalid_request_error
+ type: error
+ properties:
+ error:
+ $ref: '#/components/schemas/MessagesErrorDetail'
+ type:
+ enum:
+ - error
+ type: string
+ required:
+ - type
+ - error
+ type: object
+ MessagesMessageParam:
+ description: Anthropic message with OpenRouter extensions
+ example:
+ content: Hello, how are you?
+ role: user
+ properties:
+ content:
+ anyOf:
+ - type: string
+ - items:
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicTextBlockParam'
+ - $ref: '#/components/schemas/AnthropicImageBlockParam'
+ - $ref: '#/components/schemas/AnthropicDocumentBlockParam'
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ id:
+ type: string
+ input:
+ nullable: true
+ name:
+ type: string
+ type:
+ enum:
+ - tool_use
+ type: string
+ required:
+ - type
+ - id
+ - name
+ type: object
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ content:
+ anyOf:
+ - type: string
+ - items:
+ anyOf:
+ - $ref: '#/components/schemas/AnthropicTextBlockParam'
+ - $ref: '#/components/schemas/AnthropicImageBlockParam'
+ - properties:
+ tool_name:
+ type: string
+ type:
+ enum:
+ - tool_reference
+ type: string
+ required:
+ - type
+ - tool_name
+ type: object
+ - $ref: '#/components/schemas/AnthropicSearchResultBlockParam'
+ - $ref: '#/components/schemas/AnthropicDocumentBlockParam'
+ type: array
+ is_error:
+ type: boolean
+ tool_use_id:
+ type: string
+ type:
+ enum:
+ - tool_result
+ type: string
+ required:
+ - type
+ - tool_use_id
+ type: object
+ - properties:
+ signature:
+ type: string
+ thinking:
+ type: string
+ type:
+ enum:
+ - thinking
+ type: string
+ required:
+ - type
+ - thinking
+ - signature
+ type: object
+ - properties:
+ data:
+ type: string
+ type:
+ enum:
+ - redacted_thinking
+ type: string
+ required:
+ - type
+ - data
+ type: object
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ id:
+ type: string
+ input:
+ nullable: true
+ name:
+ $ref: '#/components/schemas/AnthropicServerToolName'
+ type:
+ enum:
+ - server_tool_use
+ type: string
+ required:
+ - type
+ - id
+ - name
+ type: object
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ content:
+ anyOf:
+ - items:
+ $ref: '#/components/schemas/AnthropicWebSearchResultBlockParam'
+ type: array
+ - properties:
+ error_code:
+ enum:
+ - invalid_tool_input
+ - unavailable
+ - max_uses_exceeded
+ - too_many_requests
+ - query_too_long
+ type: string
+ type:
+ enum:
+ - web_search_tool_result_error
+ type: string
+ required:
+ - type
+ - error_code
+ type: object
+ tool_use_id:
+ type: string
+ type:
+ enum:
+ - web_search_tool_result
+ type: string
+ required:
+ - type
+ - tool_use_id
+ - content
+ type: object
+ - $ref: '#/components/schemas/AnthropicSearchResultBlockParam'
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ content:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - compaction
+ type: string
+ required:
+ - type
+ - content
+ type: object
+ type: array
+ role:
+ enum:
+ - user
+ - assistant
+ type: string
+ required:
+ - role
+ - content
+ type: object
+ MessagesOutputConfig:
+ description: Configuration for controlling output behavior. Supports the effort parameter and structured output format.
+ example:
+ effort: medium
+ properties:
+ effort:
+ description: >-
+ How much effort the model should put into its response. Higher effort levels may result in more thorough
+ analysis but take longer. Valid values are `low`, `medium`, `high`, or `max`.
+ enum:
+ - low
+ - medium
+ - high
+ - max
+ - null
+ example: medium
+ nullable: true
+ type: string
+ format:
+ description: >-
+ A schema to specify Claude's output format in responses. See [structured
+ outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
+ nullable: true
+ properties:
+ schema:
+ additionalProperties:
+ nullable: true
+ type: object
+ type:
+ enum:
+ - json_schema
+ type: string
+ required:
+ - type
+ - schema
+ type: object
+ type: object
+ MessagesPingEvent:
+ description: Keep-alive ping event
+ example:
+ type: ping
+ properties:
+ type:
+ enum:
+ - ping
+ type: string
+ required:
+ - type
+ type: object
+ MessagesRequest:
+ description: Request schema for Anthropic Messages API endpoint
+ example:
+ max_tokens: 1024
+ messages:
+ - content: Hello, how are you?
+ role: user
+ model: anthropic/claude-4.5-sonnet-20250929
+ temperature: 0.7
+ properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ context_management:
+ nullable: true
+ properties:
+ edits:
+ items:
+ oneOf:
+ - properties:
+ clear_at_least:
+ $ref: '#/components/schemas/AnthropicInputTokensClearAtLeast'
+ clear_tool_inputs:
+ anyOf:
+ - type: boolean
+ - items:
+ type: string
+ type: array
+ - nullable: true
+ exclude_tools:
+ items:
+ type: string
+ nullable: true
+ type: array
+ keep:
+ $ref: '#/components/schemas/AnthropicToolUsesKeep'
+ trigger:
+ discriminator:
+ mapping:
+ input_tokens: '#/components/schemas/AnthropicInputTokensTrigger'
+ tool_uses: '#/components/schemas/AnthropicToolUsesTrigger'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicInputTokensTrigger'
+ - $ref: '#/components/schemas/AnthropicToolUsesTrigger'
+ type:
+ enum:
+ - clear_tool_uses_20250919
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ keep:
+ anyOf:
+ - $ref: '#/components/schemas/AnthropicThinkingTurns'
+ - properties:
+ type:
+ enum:
+ - all
+ type: string
+ required:
+ - type
+ type: object
+ - enum:
+ - all
+ type: string
+ type:
+ enum:
+ - clear_thinking_20251015
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ instructions:
+ nullable: true
+ type: string
+ pause_after_compaction:
+ type: boolean
+ trigger:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicInputTokensTrigger'
+ - nullable: true
+ properties: {}
+ type: object
+ example:
+ type: input_tokens
+ value: 100000
+ type:
+ enum:
+ - compact_20260112
+ type: string
+ required:
+ - type
+ type: object
+ type: array
+ type: object
+ max_tokens:
+ type: integer
+ messages:
+ items:
+ $ref: '#/components/schemas/MessagesMessageParam'
+ nullable: true
+ type: array
+ metadata:
+ properties:
+ user_id:
+ nullable: true
+ type: string
+ type: object
+ model:
+ type: string
+ models:
+ items:
+ type: string
+ type: array
+ output_config:
+ $ref: '#/components/schemas/MessagesOutputConfig'
+ plugins:
+ description: Plugins you want to enable for this request, including their settings.
+ items:
+ discriminator:
+ mapping:
+ auto-router: '#/components/schemas/AutoRouterPlugin'
+ context-compression: '#/components/schemas/ContextCompressionPlugin'
+ file-parser: '#/components/schemas/FileParserPlugin'
+ moderation: '#/components/schemas/ModerationPlugin'
+ response-healing: '#/components/schemas/ResponseHealingPlugin'
+ web: '#/components/schemas/WebSearchPlugin'
+ propertyName: id
+ oneOf:
+ - $ref: '#/components/schemas/AutoRouterPlugin'
+ - $ref: '#/components/schemas/ModerationPlugin'
+ - $ref: '#/components/schemas/WebSearchPlugin'
+ - $ref: '#/components/schemas/FileParserPlugin'
+ - $ref: '#/components/schemas/ResponseHealingPlugin'
+ - $ref: '#/components/schemas/ContextCompressionPlugin'
+ type: array
+ provider:
+ $ref: '#/components/schemas/ProviderPreferences'
+ route:
+ $ref: '#/components/schemas/DeprecatedRoute'
+ service_tier:
+ enum:
+ - auto
+ - standard_only
+ type: string
+ session_id:
+ description: >-
+ A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for
+ observability. If provided in both the request body and the x-session-id header, the body value takes
+ precedence. Maximum of 256 characters.
+ maxLength: 256
+ type: string
+ speed:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicSpeed'
+ - description: >-
+ Controls output generation speed. When set to `fast`, uses a higher-speed inference configuration at
+ premium pricing. Defaults to `standard` when omitted.
+ example: fast
+ stop_sequences:
+ items:
+ type: string
+ type: array
+ stream:
+ type: boolean
+ system:
+ anyOf:
+ - type: string
+ - items:
+ $ref: '#/components/schemas/AnthropicTextBlockParam'
+ type: array
+ temperature:
+ format: double
+ type: number
+ thinking:
+ oneOf:
+ - properties:
+ budget_tokens:
+ type: integer
+ type:
+ enum:
+ - enabled
+ type: string
+ required:
+ - type
+ - budget_tokens
+ type: object
+ - properties:
+ type:
+ enum:
+ - disabled
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ type:
+ enum:
+ - adaptive
+ type: string
+ required:
+ - type
+ type: object
+ tool_choice:
+ oneOf:
+ - properties:
+ disable_parallel_tool_use:
+ type: boolean
+ type:
+ enum:
+ - auto
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ disable_parallel_tool_use:
+ type: boolean
+ type:
+ enum:
+ - any
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ type:
+ enum:
+ - none
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ disable_parallel_tool_use:
+ type: boolean
+ name:
+ type: string
+ type:
+ enum:
+ - tool
+ type: string
+ required:
+ - type
+ - name
+ type: object
+ tools:
+ items:
+ anyOf:
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ description:
+ type: string
+ input_schema:
+ additionalProperties:
+ nullable: true
+ properties:
+ properties:
+ nullable: true
+ required:
+ items:
+ type: string
+ nullable: true
+ type: array
+ type:
+ default: object
+ type: string
+ type: object
+ name:
+ type: string
+ type:
+ enum:
+ - custom
+ type: string
+ required:
+ - name
+ - input_schema
+ type: object
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ name:
+ enum:
+ - bash
+ type: string
+ type:
+ enum:
+ - bash_20250124
+ type: string
+ required:
+ - type
+ - name
+ type: object
+ - properties:
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ name:
+ enum:
+ - str_replace_editor
+ type: string
+ type:
+ enum:
+ - text_editor_20250124
+ type: string
+ required:
+ - type
+ - name
+ type: object
+ - properties:
+ allowed_domains:
+ items:
+ type: string
+ nullable: true
+ type: array
+ blocked_domains:
+ items:
+ type: string
+ nullable: true
+ type: array
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ max_uses:
+ type: integer
+ name:
+ enum:
+ - web_search
+ type: string
+ type:
+ enum:
+ - web_search_20250305
+ type: string
+ user_location:
+ $ref: '#/components/schemas/AnthropicWebSearchToolUserLocation'
+ required:
+ - type
+ - name
+ type: object
+ - properties:
+ allowed_callers:
+ items:
+ enum:
+ - direct
+ - code_execution_20250825
+ - code_execution_20260120
+ type: string
+ type: array
+ allowed_domains:
+ items:
+ type: string
+ nullable: true
+ type: array
+ blocked_domains:
+ items:
+ type: string
+ nullable: true
+ type: array
+ cache_control:
+ $ref: '#/components/schemas/AnthropicCacheControlDirective'
+ max_uses:
+ type: integer
+ name:
+ enum:
+ - web_search
+ type: string
+ type:
+ enum:
+ - web_search_20260209
+ type: string
+ user_location:
+ $ref: '#/components/schemas/AnthropicWebSearchToolUserLocation'
+ required:
+ - type
+ - name
+ type: object
+ - $ref: '#/components/schemas/DatetimeServerTool'
+ - $ref: '#/components/schemas/OpenRouterWebSearchServerTool'
+ type: array
+ top_k:
+ type: integer
+ top_p:
+ format: double
+ type: number
+ trace:
+ $ref: '#/components/schemas/TraceConfig'
+ user:
+ description: >-
+ A unique identifier representing your end-user, which helps distinguish between different users of your app.
+ This allows your app to identify specific users in case of abuse reports, preventing your entire app from
+ being affected by the actions of individual users. Maximum of 256 characters.
+ maxLength: 256
+ type: string
+ required:
+ - model
+ - messages
+ type: object
+ MessagesResult:
+ allOf:
+ - $ref: '#/components/schemas/BaseMessagesResult'
+ - properties:
+ provider:
+ $ref: '#/components/schemas/ProviderName'
+ usage:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicUsage'
+ - properties:
+ cost:
+ format: double
+ type: number
+ cost_details:
+ nullable: true
+ properties:
+ upstream_inference_completions_cost:
+ format: double
+ type: number
+ upstream_inference_cost:
+ format: double
+ type: number
+ upstream_inference_prompt_cost:
+ format: double
+ type: number
+ required:
+ - upstream_inference_prompt_cost
+ - upstream_inference_completions_cost
+ type: object
+ is_byok:
+ type: boolean
+ iterations:
+ items:
+ $ref: '#/components/schemas/AnthropicUsageIteration'
+ type: array
+ service_tier:
+ nullable: true
+ type: string
+ speed:
+ $ref: '#/components/schemas/AnthropicSpeed'
+ type: object
+ example:
+ cache_creation: null
+ cache_creation_input_tokens: null
+ cache_read_input_tokens: null
+ inference_geo: null
+ input_tokens: 100
+ output_tokens: 50
+ server_tool_use: null
+ service_tier: standard
+ type: object
+ description: Non-streaming response from the Anthropic Messages API with OpenRouter extensions
+ example:
+ container: null
+ content:
+ - citations: null
+ text: Hello! I'm doing well, thank you for asking.
+ type: text
+ id: msg_01XFDUDYJgAACzvnptvVoYEL
+ model: claude-sonnet-4-5-20250929
+ role: assistant
+ stop_reason: end_turn
+ stop_sequence: null
+ type: message
+ usage:
+ cache_creation: null
+ cache_creation_input_tokens: null
+ cache_read_input_tokens: null
+ inference_geo: null
+ input_tokens: 12
+ output_tokens: 15
+ server_tool_use: null
+ service_tier: standard
+ MessagesStartEvent:
+ description: Event sent at the start of a streaming message
+ example:
+ message:
+ content: []
+ id: msg_01XFDUDYJgAACzvnptvVoYEL
+ model: claude-sonnet-4-5-20250929
+ role: assistant
+ stop_reason: null
+ stop_sequence: null
+ type: message
+ usage:
+ input_tokens: 12
+ output_tokens: 0
+ type: message_start
+ properties:
+ message:
+ properties:
+ container:
+ $ref: '#/components/schemas/AnthropicContainer'
+ content:
+ items:
+ $ref: '#/components/schemas/ORAnthropicContentBlock'
+ type: array
+ id:
+ type: string
+ model:
+ type: string
+ provider:
+ enum:
+ - AnyScale
+ - Atoma
+ - Cent-ML
+ - CrofAI
+ - Enfer
+ - GoPomelo
+ - HuggingFace
+ - Hyperbolic 2
+ - InoCloud
+ - Kluster
+ - Lambda
+ - Lepton
+ - Lynn 2
+ - Lynn
+ - Mancer
+ - Meta
+ - Modal
+ - Nineteen
+ - OctoAI
+ - Recursal
+ - Reflection
+ - Replicate
+ - SambaNova 2
+ - SF Compute
+ - Targon
+ - Together 2
+ - Ubicloud
+ - 01.AI
+ - AkashML
+ - AI21
+ - AionLabs
+ - Alibaba
+ - Ambient
+ - Amazon Bedrock
+ - Amazon Nova
+ - Anthropic
+ - Arcee AI
+ - AtlasCloud
+ - Avian
+ - Azure
+ - BaseTen
+ - BytePlus
+ - Black Forest Labs
+ - Cerebras
+ - Chutes
+ - Cirrascale
+ - Clarifai
+ - Cloudflare
+ - Cohere
+ - Crusoe
+ - DeepInfra
+ - DeepSeek
+ - Featherless
+ - Fireworks
+ - Friendli
+ - GMICloud
+ - Google
+ - Google AI Studio
+ - Groq
+ - Hyperbolic
+ - Inception
+ - Inceptron
+ - InferenceNet
+ - Ionstream
+ - Infermatic
+ - Io Net
+ - Inflection
+ - Liquid
+ - Mara
+ - Mancer 2
+ - Minimax
+ - ModelRun
+ - Mistral
+ - Modular
+ - Moonshot AI
+ - Morph
+ - NCompass
+ - Nebius
+ - NextBit
+ - Novita
+ - Nvidia
+ - OpenAI
+ - OpenInference
+ - Parasail
+ - Perplexity
+ - Phala
+ - Reka
+ - Relace
+ - SambaNova
+ - Seed
+ - SiliconFlow
+ - Sourceful
+ - StepFun
+ - Stealth
+ - StreamLake
+ - Switchpoint
+ - Together
+ - Upstage
+ - Venice
+ - WandB
+ - Xiaomi
+ - xAI
+ - Z.AI
+ - FakeProvider
+ type: string
+ role:
+ enum:
+ - assistant
+ type: string
+ stop_reason:
+ nullable: true
+ stop_sequence:
+ nullable: true
+ type:
+ enum:
+ - message
+ type: string
+ usage:
+ allOf:
+ - $ref: '#/components/schemas/AnthropicUsage'
+ - properties:
+ iterations:
+ items:
+ $ref: '#/components/schemas/AnthropicUsageIteration'
+ type: array
+ speed:
+ $ref: '#/components/schemas/AnthropicSpeed'
+ type: object
+ example:
+ cache_creation: null
+ cache_creation_input_tokens: null
+ cache_read_input_tokens: null
+ inference_geo: null
+ input_tokens: 100
+ output_tokens: 50
+ server_tool_use: null
+ service_tier: standard
+ required:
+ - id
+ - type
+ - role
+ - container
+ - content
+ - model
+ - stop_reason
+ - stop_sequence
+ - usage
+ type: object
+ type:
+ enum:
+ - message_start
+ type: string
+ required:
+ - type
+ - message
+ type: object
+ MessagesStopEvent:
+ description: Event sent when the message is complete
+ example:
+ type: message_stop
+ properties:
+ type:
+ enum:
+ - message_stop
+ type: string
+ required:
+ - type
+ type: object
+ MessagesStreamEvents:
+ description: Union of all possible streaming events
+ discriminator:
+ mapping:
+ content_block_delta: '#/components/schemas/MessagesContentBlockDeltaEvent'
+ content_block_start: '#/components/schemas/MessagesContentBlockStartEvent'
+ content_block_stop: '#/components/schemas/MessagesContentBlockStopEvent'
+ error: '#/components/schemas/MessagesErrorEvent'
+ message_delta: '#/components/schemas/MessagesDeltaEvent'
+ message_start: '#/components/schemas/MessagesStartEvent'
+ message_stop: '#/components/schemas/MessagesStopEvent'
+ ping: '#/components/schemas/MessagesPingEvent'
+ propertyName: type
+ example:
+ delta:
+ text: Hello
+ type: text_delta
+ index: 0
+ type: content_block_delta
+ oneOf:
+ - $ref: '#/components/schemas/MessagesStartEvent'
+ - $ref: '#/components/schemas/MessagesDeltaEvent'
+ - $ref: '#/components/schemas/MessagesStopEvent'
+ - $ref: '#/components/schemas/MessagesContentBlockStartEvent'
+ - $ref: '#/components/schemas/MessagesContentBlockDeltaEvent'
+ - $ref: '#/components/schemas/MessagesContentBlockStopEvent'
+ - $ref: '#/components/schemas/MessagesPingEvent'
+ - $ref: '#/components/schemas/MessagesErrorEvent'
+ Model:
+ description: Information about an AI model available on OpenRouter
+ example:
+ architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ canonical_slug: openai/gpt-4
+ context_length: 8192
+ created: 1692901234
+ default_parameters: null
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ expiration_date: null
+ id: openai/gpt-4
+ knowledge_cutoff: null
+ links:
+ details: /api/v1/models/openai/gpt-5.4/endpoints
+ name: GPT-4
+ per_request_limits: null
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ top_provider:
+ context_length: 8192
+ is_moderated: true
+ max_completion_tokens: 4096
+ properties:
+ architecture:
+ $ref: '#/components/schemas/ModelArchitecture'
+ canonical_slug:
+ description: Canonical slug for the model
+ example: openai/gpt-4
+ type: string
+ context_length:
+ description: Maximum context length in tokens
+ example: 8192
+ type: integer
+ created:
+ description: Unix timestamp of when the model was created
+ example: 1692901234
+ type: integer
+ default_parameters:
+ $ref: '#/components/schemas/DefaultParameters'
+ description:
+ description: Description of the model
+ example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ type: string
+ expiration_date:
+ description: The date after which the model may be removed. ISO 8601 date string (YYYY-MM-DD) or null if no expiration.
+ example: '2025-06-01'
+ nullable: true
+ type: string
+ hugging_face_id:
+ description: Hugging Face model identifier, if applicable
+ example: microsoft/DialoGPT-medium
+ nullable: true
+ type: string
+ id:
+ description: Unique identifier for the model
+ example: openai/gpt-4
+ type: string
+ knowledge_cutoff:
+ description: The date up to which the model was trained on data. ISO 8601 date string (YYYY-MM-DD) or null if unknown.
+ example: '2024-10-01'
+ nullable: true
+ type: string
+ links:
+ $ref: '#/components/schemas/ModelLinks'
+ name:
+ description: Display name of the model
+ example: GPT-4
+ type: string
+ per_request_limits:
+ $ref: '#/components/schemas/PerRequestLimits'
+ pricing:
+ $ref: '#/components/schemas/PublicPricing'
+ supported_parameters:
+ description: List of supported parameters for this model
+ items:
+ $ref: '#/components/schemas/Parameter'
+ type: array
+ top_provider:
+ $ref: '#/components/schemas/TopProviderInfo'
+ required:
+ - id
+ - canonical_slug
+ - name
+ - created
+ - pricing
+ - context_length
+ - architecture
+ - top_provider
+ - per_request_limits
+ - supported_parameters
+ - default_parameters
+ - links
+ type: object
+ ModelArchitecture:
+ description: Model architecture information
+ example:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ properties:
+ input_modalities:
+ description: Supported input modalities
+ items:
+ $ref: '#/components/schemas/InputModality'
+ type: array
+ instruct_type:
+ description: Instruction format type
+ enum:
+ - none
+ - airoboros
+ - alpaca
+ - alpaca-modif
+ - chatml
+ - claude
+ - code-llama
+ - gemma
+ - llama2
+ - llama3
+ - mistral
+ - nemotron
+ - neural
+ - openchat
+ - phi3
+ - rwkv
+ - vicuna
+ - zephyr
+ - deepseek-r1
+ - deepseek-v3.1
+ - qwq
+ - qwen3
+ - null
+ example: chatml
+ nullable: true
+ type: string
+ modality:
+ description: Primary modality of the model
+ example: text->text
+ nullable: true
+ type: string
+ output_modalities:
+ description: Supported output modalities
+ items:
+ $ref: '#/components/schemas/OutputModality'
+ type: array
+ tokenizer:
+ $ref: '#/components/schemas/ModelGroup'
+ required:
+ - modality
+ - input_modalities
+ - output_modalities
+ type: object
+ ModelGroup:
+ description: Tokenizer type used by the model
+ enum:
+ - Router
+ - Media
+ - Other
+ - GPT
+ - Claude
+ - Gemini
+ - Gemma
+ - Grok
+ - Cohere
+ - Nova
+ - Qwen
+ - Yi
+ - DeepSeek
+ - Mistral
+ - Llama2
+ - Llama3
+ - Llama4
+ - PaLM
+ - RWKV
+ - Qwen3
+ example: GPT
+ type: string
+ ModelLinks:
+ description: Related API endpoints and resources for this model.
+ example:
+ details: /api/v1/models/openai/gpt-5.4/endpoints
+ properties:
+ details:
+ description: URL for the model details/endpoints API
+ example: /api/v1/models/openai/gpt-5.4/endpoints
+ type: string
+ required:
+ - details
+ type: object
+ ModelName:
+ description: Model to use for completion
+ example: openai/gpt-4
+ type: string
+ ModelsCountResponse:
+ description: Model count data
+ example:
+ data:
+ count: 150
+ properties:
+ data:
+ description: Model count data
+ example:
+ count: 150
+ properties:
+ count:
+ description: Total number of available models
+ example: 150
+ type: integer
+ required:
+ - count
+ type: object
+ required:
+ - data
+ type: object
+ ModelsListResponse:
+ description: List of available models
+ example:
+ data:
+ - architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ canonical_slug: openai/gpt-4
+ context_length: 8192
+ created: 1692901234
+ default_parameters: null
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ expiration_date: null
+ id: openai/gpt-4
+ knowledge_cutoff: null
+ links:
+ details: /api/v1/models/openai/gpt-5.4/endpoints
+ name: GPT-4
+ per_request_limits: null
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ - frequency_penalty
+ - presence_penalty
+ top_provider:
+ context_length: 8192
+ is_moderated: true
+ max_completion_tokens: 4096
+ properties:
+ data:
+ $ref: '#/components/schemas/ModelsListResponseData'
+ required:
+ - data
+ type: object
+ ModelsListResponseData:
+ description: List of available models
+ example:
+ - architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ canonical_slug: openai/gpt-4
+ context_length: 8192
+ created: 1692901234
+ default_parameters: null
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ expiration_date: null
+ id: openai/gpt-4
+ knowledge_cutoff: null
+ links:
+ details: /api/v1/models/openai/gpt-5.4/endpoints
+ name: GPT-4
+ per_request_limits: null
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ top_provider:
+ context_length: 8192
+ is_moderated: true
+ max_completion_tokens: 4096
+ items:
+ $ref: '#/components/schemas/Model'
+ type: array
+ ModerationPlugin:
+ example:
+ id: moderation
+ properties:
+ id:
+ enum:
+ - moderation
+ type: string
+ required:
+ - id
+ type: object
+ NotFoundResponse:
+ description: Not Found - Resource does not exist
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ properties:
+ error:
+ $ref: '#/components/schemas/NotFoundResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ NotFoundResponseErrorData:
+ description: Error data for NotFoundResponse
+ example:
+ code: 404
+ message: Resource not found
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ OpenAIResponseFunctionToolCall:
+ example:
+ arguments: '{"location":"San Francisco"}'
+ call_id: call-abc123
+ id: fc-abc123
+ name: get_weather
+ status: completed
+ type: function_call
+ properties:
+ arguments:
+ type: string
+ call_id:
+ type: string
+ id:
+ type: string
+ name:
+ type: string
+ status:
+ $ref: '#/components/schemas/ToolCallStatus'
+ type:
+ enum:
+ - function_call
+ type: string
+ required:
+ - type
+ - call_id
+ - name
+ - arguments
+ type: object
+ OpenAIResponseFunctionToolCallOutput:
+ example:
+ call_id: call-abc123
+ output: '{"temperature":72,"conditions":"sunny"}'
+ type: function_call_output
+ properties:
+ call_id:
+ type: string
+ id:
+ nullable: true
+ type: string
+ output:
+ anyOf:
+ - type: string
+ - items:
+ discriminator:
+ mapping:
+ input_file: '#/components/schemas/InputFile'
+ input_image: '#/components/schemas/InputImage'
+ input_text: '#/components/schemas/InputText'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/InputText'
+ - $ref: '#/components/schemas/InputImage'
+ - $ref: '#/components/schemas/InputFile'
+ type: array
+ status:
+ allOf:
+ - $ref: '#/components/schemas/ToolCallStatus'
+ - nullable: true
+ type:
+ enum:
+ - function_call_output
+ type: string
+ required:
+ - type
+ - call_id
+ - output
+ type: object
+ OpenAIResponseInputMessageItem:
+ example:
+ content:
+ - text: Hello, how are you?
+ type: input_text
+ id: msg-abc123
+ role: user
+ type: message
+ properties:
+ content:
+ items:
+ discriminator:
+ mapping:
+ input_audio: '#/components/schemas/InputAudio'
+ input_file: '#/components/schemas/InputFile'
+ input_image: '#/components/schemas/InputImage'
+ input_text: '#/components/schemas/InputText'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/InputText'
+ - $ref: '#/components/schemas/InputImage'
+ - $ref: '#/components/schemas/InputFile'
+ - $ref: '#/components/schemas/InputAudio'
+ type: array
+ id:
+ type: string
+ role:
+ anyOf:
+ - enum:
+ - user
+ type: string
+ - enum:
+ - system
+ type: string
+ - enum:
+ - developer
+ type: string
+ type:
+ enum:
+ - message
+ type: string
+ required:
+ - id
+ - role
+ - content
+ type: object
+ OpenAIResponsesAnnotation:
+ anyOf:
+ - $ref: '#/components/schemas/FileCitation'
+ - $ref: '#/components/schemas/URLCitation'
+ - $ref: '#/components/schemas/FilePath'
+ example:
+ file_id: file-abc123
+ filename: research_paper.pdf
+ index: 0
+ type: file_citation
+ OpenAIResponsesImageGenCallCompleted:
+ example:
+ item_id: ig_abc123
+ output_index: 0
+ sequence_number: 4
+ type: response.image_generation_call.completed
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.image_generation_call.completed
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ type: object
+ OpenAIResponsesImageGenCallGenerating:
+ example:
+ item_id: ig_abc123
+ output_index: 0
+ sequence_number: 2
+ type: response.image_generation_call.generating
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.image_generation_call.generating
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ type: object
+ OpenAIResponsesImageGenCallInProgress:
+ example:
+ item_id: ig_abc123
+ output_index: 0
+ sequence_number: 1
+ type: response.image_generation_call.in_progress
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.image_generation_call.in_progress
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ type: object
+ OpenAIResponsesImageGenCallPartialImage:
+ example:
+ item_id: ig_abc123
+ output_index: 0
+ partial_image_b64: iVBORw0KGgo...
+ partial_image_index: 0
+ sequence_number: 3
+ type: response.image_generation_call.partial_image
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ partial_image_b64:
+ type: string
+ partial_image_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.image_generation_call.partial_image
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ - partial_image_b64
+ - partial_image_index
+ type: object
+ OpenAIResponsesRefusalContent:
+ example:
+ refusal: I'm sorry, I cannot assist with that request
+ type: refusal
+ properties:
+ refusal:
+ type: string
+ type:
+ enum:
+ - refusal
+ type: string
+ required:
+ - type
+ - refusal
+ type: object
+ OpenAIResponsesResponseStatus:
+ enum:
+ - completed
+ - incomplete
+ - in_progress
+ - failed
+ - cancelled
+ - queued
+ example: completed
+ type: string
+ OpenAIResponsesSearchCompleted:
+ example:
+ item_id: ws_abc123
+ output_index: 0
+ sequence_number: 5
+ type: response.web_search_call.completed
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.web_search_call.completed
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ type: object
+ OpenAIResponsesToolChoice:
+ anyOf:
+ - enum:
+ - auto
+ type: string
+ - enum:
+ - none
+ type: string
+ - enum:
+ - required
+ type: string
+ - properties:
+ name:
+ type: string
+ type:
+ enum:
+ - function
+ type: string
+ required:
+ - type
+ - name
+ type: object
+ - properties:
+ type:
+ anyOf:
+ - enum:
+ - web_search_preview_2025_03_11
+ type: string
+ - enum:
+ - web_search_preview
+ type: string
+ required:
+ - type
+ type: object
+ - $ref: '#/components/schemas/ToolChoiceAllowed'
+ example: auto
+ OpenAIResponsesTruncation:
+ enum:
+ - auto
+ - disabled
+ - null
+ example: auto
+ nullable: true
+ type: string
+ OpenAIResponsesUsage:
+ example:
+ input_tokens: 100
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 50
+ output_tokens_details:
+ reasoning_tokens: 0
+ total_tokens: 150
+ properties:
+ input_tokens:
+ type: integer
+ input_tokens_details:
+ properties:
+ cached_tokens:
+ type: integer
+ required:
+ - cached_tokens
+ type: object
+ output_tokens:
+ type: integer
+ output_tokens_details:
+ properties:
+ reasoning_tokens:
+ type: integer
+ required:
+ - reasoning_tokens
+ type: object
+ total_tokens:
+ type: integer
+ required:
+ - input_tokens
+ - input_tokens_details
+ - output_tokens
+ - output_tokens_details
+ - total_tokens
+ type: object
+ OpenAIResponsesWebSearchCallInProgress:
+ example:
+ item_id: ws_abc123
+ output_index: 0
+ sequence_number: 1
+ type: response.web_search_call.in_progress
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.web_search_call.in_progress
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ type: object
+ OpenAIResponsesWebSearchCallSearching:
+ example:
+ item_id: ws_abc123
+ output_index: 0
+ sequence_number: 2
+ type: response.web_search_call.searching
+ properties:
+ item_id:
+ type: string
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.web_search_call.searching
+ type: string
+ required:
+ - type
+ - item_id
+ - output_index
+ - sequence_number
+ type: object
+ OpenResponsesCreatedEvent:
+ allOf:
+ - $ref: '#/components/schemas/CreatedEvent'
+ - properties:
+ response:
+ $ref: '#/components/schemas/OpenResponsesResult'
+ type: object
+ description: Event emitted when a response is created
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: in_progress
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 0
+ type: response.created
+ OpenResponsesInProgressEvent:
+ allOf:
+ - $ref: '#/components/schemas/InProgressEvent'
+ - properties:
+ response:
+ $ref: '#/components/schemas/OpenResponsesResult'
+ type: object
+ description: Event emitted when a response is in progress
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: in_progress
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 1
+ type: response.in_progress
+ OpenResponsesLogProbs:
+ description: Log probability information for a token
+ example:
+ logprob: -0.1
+ token: world
+ top_logprobs:
+ - logprob: -0.5
+ token: hello
+ properties:
+ bytes:
+ items:
+ type: integer
+ type: array
+ logprob:
+ format: double
+ type: number
+ token:
+ type: string
+ top_logprobs:
+ items:
+ $ref: '#/components/schemas/OpenResponsesTopLogprobs'
+ type: array
+ required:
+ - logprob
+ - token
+ type: object
+ OpenResponsesResult:
+ allOf:
+ - $ref: '#/components/schemas/BaseResponsesResult'
+ - properties:
+ output:
+ items:
+ $ref: '#/components/schemas/OutputItems'
+ type: array
+ service_tier:
+ nullable: true
+ type: string
+ usage:
+ $ref: '#/components/schemas/Usage'
+ type: object
+ description: Complete non-streaming response from the Responses API
+ example:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output:
+ - content:
+ - annotations: []
+ text: Hello! How can I help you today?
+ type: output_text
+ id: msg-abc123
+ role: assistant
+ status: completed
+ type: message
+ parallel_tool_calls: true
+ status: completed
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ usage:
+ input_tokens: 10
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 25
+ output_tokens_details:
+ reasoning_tokens: 0
+ total_tokens: 35
+ OpenResponsesTopLogprobs:
+ description: Alternative token with its log probability
+ example:
+ logprob: -0.5
+ token: hello
+ properties:
+ bytes:
+ items:
+ type: integer
+ type: array
+ logprob:
+ format: double
+ type: number
+ token:
+ type: string
+ type: object
+ OpenRouterWebSearchServerTool:
+ description: 'OpenRouter built-in server tool: searches the web for current information'
+ example:
+ parameters:
+ max_results: 5
+ type: openrouter:web_search
+ properties:
+ parameters:
+ $ref: '#/components/schemas/WebSearchConfig'
+ type:
+ enum:
+ - openrouter:web_search
+ type: string
+ required:
+ - type
+ type: object
+ ORAnthropicContentBlock:
+ discriminator:
+ mapping:
+ bash_code_execution_tool_result: '#/components/schemas/AnthropicBashCodeExecutionToolResult'
+ code_execution_tool_result: '#/components/schemas/AnthropicCodeExecutionToolResult'
+ compaction: '#/components/schemas/AnthropicCompactionBlock'
+ container_upload: '#/components/schemas/AnthropicContainerUpload'
+ redacted_thinking: '#/components/schemas/AnthropicRedactedThinkingBlock'
+ server_tool_use: '#/components/schemas/AnthropicServerToolUseBlock'
+ text: '#/components/schemas/AnthropicTextBlock'
+ text_editor_code_execution_tool_result: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResult'
+ thinking: '#/components/schemas/AnthropicThinkingBlock'
+ tool_search_tool_result: '#/components/schemas/AnthropicToolSearchToolResult'
+ tool_use: '#/components/schemas/AnthropicToolUseBlock'
+ web_fetch_tool_result: '#/components/schemas/AnthropicWebFetchToolResult'
+ web_search_tool_result: '#/components/schemas/AnthropicWebSearchToolResult'
+ propertyName: type
+ example:
+ citations: null
+ text: Hello, world!
+ type: text
+ oneOf:
+ - $ref: '#/components/schemas/AnthropicTextBlock'
+ - $ref: '#/components/schemas/AnthropicToolUseBlock'
+ - $ref: '#/components/schemas/AnthropicThinkingBlock'
+ - $ref: '#/components/schemas/AnthropicRedactedThinkingBlock'
+ - $ref: '#/components/schemas/AnthropicServerToolUseBlock'
+ - $ref: '#/components/schemas/AnthropicWebSearchToolResult'
+ - $ref: '#/components/schemas/AnthropicWebFetchToolResult'
+ - $ref: '#/components/schemas/AnthropicCodeExecutionToolResult'
+ - $ref: '#/components/schemas/AnthropicBashCodeExecutionToolResult'
+ - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResult'
+ - $ref: '#/components/schemas/AnthropicToolSearchToolResult'
+ - $ref: '#/components/schemas/AnthropicContainerUpload'
+ - $ref: '#/components/schemas/AnthropicCompactionBlock'
+ ORAnthropicStopReason:
+ enum:
+ - end_turn
+ - max_tokens
+ - stop_sequence
+ - tool_use
+ - pause_turn
+ - refusal
+ - compaction
+ - null
+ example: end_turn
+ nullable: true
+ type: string
+ OutputDatetimeItem:
+ description: An openrouter:datetime server tool output item
+ example:
+ datetime: '2026-03-12T14:30:00.000Z'
+ id: dt_tmp_abc123
+ status: completed
+ timezone: UTC
+ type: openrouter:datetime
+ properties:
+ datetime:
+ description: ISO 8601 datetime string
+ type: string
+ id:
+ type: string
+ status:
+ $ref: '#/components/schemas/ToolCallStatus'
+ timezone:
+ description: IANA timezone name
+ type: string
+ type:
+ enum:
+ - openrouter:datetime
+ type: string
+ required:
+ - status
+ - type
+ - datetime
+ - timezone
+ type: object
+ OutputFileSearchCallItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemFileSearchCall'
+ - properties: {}
+ type: object
+ example:
+ id: fs-abc123
+ queries:
+ - search term
+ results: []
+ status: completed
+ type: file_search_call
+ OutputFunctionCallItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemFunctionCall'
+ - properties: {}
+ type: object
+ example:
+ arguments: '{"location":"San Francisco"}'
+ call_id: call-abc123
+ id: fc-abc123
+ name: get_weather
+ status: completed
+ type: function_call
+ OutputImageGenerationCallItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemImageGenerationCall'
+ - properties: {}
+ type: object
+ example:
+ id: img-abc123
+ result: null
+ status: completed
+ type: image_generation_call
+ OutputItemAddedEvent:
+ description: Event emitted when a new output item is added to the response
+ example:
+ item:
+ content: []
+ id: item-1
+ role: assistant
+ status: in_progress
+ type: message
+ output_index: 0
+ sequence_number: 2
+ type: response.output_item.added
+ properties:
+ item:
+ discriminator:
+ mapping:
+ file_search_call: '#/components/schemas/OutputItemFileSearchCall'
+ function_call: '#/components/schemas/OutputItemFunctionCall'
+ image_generation_call: '#/components/schemas/OutputItemImageGenerationCall'
+ message: '#/components/schemas/OutputMessage'
+ reasoning: '#/components/schemas/OutputItemReasoning'
+ web_search_call: '#/components/schemas/OutputItemWebSearchCall'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/OutputMessage'
+ - $ref: '#/components/schemas/OutputItemReasoning'
+ - $ref: '#/components/schemas/OutputItemFunctionCall'
+ - $ref: '#/components/schemas/OutputItemWebSearchCall'
+ - $ref: '#/components/schemas/OutputItemFileSearchCall'
+ - $ref: '#/components/schemas/OutputItemImageGenerationCall'
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.output_item.added
+ type: string
+ required:
+ - type
+ - output_index
+ - item
+ - sequence_number
+ type: object
+ OutputItemDoneEvent:
+ description: Event emitted when an output item is complete
+ example:
+ item:
+ content:
+ - annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ id: item-1
+ role: assistant
+ status: completed
+ type: message
+ output_index: 0
+ sequence_number: 8
+ type: response.output_item.done
+ properties:
+ item:
+ discriminator:
+ mapping:
+ file_search_call: '#/components/schemas/OutputItemFileSearchCall'
+ function_call: '#/components/schemas/OutputItemFunctionCall'
+ image_generation_call: '#/components/schemas/OutputItemImageGenerationCall'
+ message: '#/components/schemas/OutputMessage'
+ reasoning: '#/components/schemas/OutputItemReasoning'
+ web_search_call: '#/components/schemas/OutputItemWebSearchCall'
+ propertyName: type
+ oneOf:
+ - $ref: '#/components/schemas/OutputMessage'
+ - $ref: '#/components/schemas/OutputItemReasoning'
+ - $ref: '#/components/schemas/OutputItemFunctionCall'
+ - $ref: '#/components/schemas/OutputItemWebSearchCall'
+ - $ref: '#/components/schemas/OutputItemFileSearchCall'
+ - $ref: '#/components/schemas/OutputItemImageGenerationCall'
+ output_index:
+ type: integer
+ sequence_number:
+ type: integer
+ type:
+ enum:
+ - response.output_item.done
+ type: string
+ required:
+ - type
+ - output_index
+ - item
+ - sequence_number
+ type: object
+ OutputItemFileSearchCall:
+ example:
+ id: filesearch-abc123
+ queries:
+ - machine learning algorithms
+ - neural networks
+ status: completed
+ type: file_search_call
+ properties:
+ id:
+ type: string
+ queries:
+ items:
+ type: string
+ type: array
+ status:
+ $ref: '#/components/schemas/WebSearchStatus'
+ type:
+ enum:
+ - file_search_call
+ type: string
+ required:
+ - type
+ - id
+ - queries
+ - status
+ type: object
+ OutputItemFunctionCall:
+ example:
+ arguments: '{"location":"San Francisco","unit":"celsius"}'
+ call_id: call-abc123
+ id: call-abc123
+ name: get_weather
+ type: function_call
+ properties:
+ arguments:
+ type: string
+ call_id:
+ type: string
+ id:
+ type: string
+ name:
+ type: string
+ status:
+ anyOf:
+ - enum:
+ - completed
+ type: string
+ - enum:
+ - incomplete
+ type: string
+ - enum:
+ - in_progress
+ type: string
+ type:
+ enum:
+ - function_call
+ type: string
+ required:
+ - type
+ - name
+ - arguments
+ - call_id
+ type: object
+ OutputItemImageGenerationCall:
+ example:
+ id: imagegen-abc123
+ result: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
+ status: completed
+ type: image_generation_call
+ properties:
+ id:
+ type: string
+ result:
+ default: null
+ nullable: true
+ type: string
+ status:
+ $ref: '#/components/schemas/ImageGenerationStatus'
+ type:
+ enum:
+ - image_generation_call
+ type: string
+ required:
+ - type
+ - id
+ - status
+ type: object
+ OutputItemReasoning:
+ example:
+ id: reasoning-abc123
+ summary:
+ - text: Analyzed the problem using first principles
+ type: summary_text
+ type: reasoning
+ properties:
+ content:
+ items:
+ $ref: '#/components/schemas/ReasoningTextContent'
+ type: array
+ encrypted_content:
+ nullable: true
+ type: string
+ id:
+ type: string
+ status:
+ anyOf:
+ - enum:
+ - completed
+ type: string
+ - enum:
+ - incomplete
+ type: string
+ - enum:
+ - in_progress
+ type: string
+ summary:
+ items:
+ $ref: '#/components/schemas/ReasoningSummaryText'
+ type: array
+ type:
+ enum:
+ - reasoning
+ type: string
+ required:
+ - type
+ - id
+ - summary
+ type: object
+ OutputItems:
+ description: An output item from the response
+ discriminator:
+ mapping:
+ file_search_call: '#/components/schemas/OutputFileSearchCallItem'
+ function_call: '#/components/schemas/OutputFunctionCallItem'
+ image_generation_call: '#/components/schemas/OutputImageGenerationCallItem'
+ message: '#/components/schemas/OutputMessageItem'
+ openrouter:datetime: '#/components/schemas/OutputDatetimeItem'
+ openrouter:web_search: '#/components/schemas/OutputWebSearchServerToolItem'
+ reasoning: '#/components/schemas/OutputReasoningItem'
+ web_search_call: '#/components/schemas/OutputWebSearchCallItem'
+ propertyName: type
+ example:
+ content:
+ - text: Hello! How can I help you today?
+ type: output_text
+ id: msg-abc123
+ role: assistant
+ status: completed
+ type: message
+ oneOf:
+ - $ref: '#/components/schemas/OutputMessageItem'
+ - $ref: '#/components/schemas/OutputReasoningItem'
+ - $ref: '#/components/schemas/OutputFunctionCallItem'
+ - $ref: '#/components/schemas/OutputWebSearchCallItem'
+ - $ref: '#/components/schemas/OutputFileSearchCallItem'
+ - $ref: '#/components/schemas/OutputImageGenerationCallItem'
+ - $ref: '#/components/schemas/OutputDatetimeItem'
+ - $ref: '#/components/schemas/OutputWebSearchServerToolItem'
+ OutputItemWebSearchCall:
+ example:
+ action:
+ query: OpenAI API
+ type: search
+ id: search-abc123
+ status: completed
+ type: web_search_call
+ properties:
+ action:
+ oneOf:
+ - properties:
+ queries:
+ items:
+ type: string
+ type: array
+ query:
+ type: string
+ sources:
+ items:
+ $ref: '#/components/schemas/WebSearchSource'
+ type: array
+ type:
+ enum:
+ - search
+ type: string
+ required:
+ - type
+ - query
+ type: object
+ - properties:
+ type:
+ enum:
+ - open_page
+ type: string
+ url:
+ nullable: true
+ type: string
+ required:
+ - type
+ type: object
+ - properties:
+ pattern:
+ type: string
+ type:
+ enum:
+ - find_in_page
+ type: string
+ url:
+ type: string
+ required:
+ - type
+ - pattern
+ - url
+ type: object
+ id:
+ type: string
+ status:
+ $ref: '#/components/schemas/WebSearchStatus'
+ type:
+ enum:
+ - web_search_call
+ type: string
+ required:
+ - type
+ - id
+ - action
+ - status
+ type: object
+ OutputMessage:
+ example:
+ content:
+ - text: Hello! How can I help you today?
+ type: output_text
+ id: msg-abc123
+ role: assistant
+ status: completed
+ type: message
+ properties:
+ content:
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/ResponseOutputText'
+ - $ref: '#/components/schemas/OpenAIResponsesRefusalContent'
+ type: array
+ id:
+ type: string
+ phase:
+ anyOf:
+ - enum:
+ - commentary
+ type: string
+ - enum:
+ - final_answer
+ type: string
+ - nullable: true
+ description: >-
+ The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer`
+ for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve
+ and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.
+ role:
+ enum:
+ - assistant
+ type: string
+ status:
+ anyOf:
+ - enum:
+ - completed
+ type: string
+ - enum:
+ - incomplete
+ type: string
+ - enum:
+ - in_progress
+ type: string
+ type:
+ enum:
+ - message
+ type: string
+ required:
+ - id
+ - role
+ - type
+ - content
+ type: object
+ OutputMessageItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputMessage'
+ - properties: {}
+ type: object
+ description: An output message item
+ example:
+ content:
+ - annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ id: msg-123
+ role: assistant
+ status: completed
+ type: message
+ OutputModality:
+ enum:
+ - text
+ - image
+ - embeddings
+ - audio
+ - video
+ - rerank
+ example: text
+ type: string
+ OutputModalityEnum:
+ enum:
+ - text
+ - image
+ example: text
+ type: string
+ OutputReasoningItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemReasoning'
+ - properties:
+ content:
+ items:
+ $ref: '#/components/schemas/ReasoningTextContent'
+ nullable: true
+ type: array
+ format:
+ $ref: '#/components/schemas/ReasoningFormat'
+ signature:
+ description: A signature for the reasoning content, used for verification
+ example: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...
+ nullable: true
+ type: string
+ type: object
+ description: An output item containing reasoning
+ example:
+ content:
+ - text: First, we analyze the problem...
+ type: reasoning_text
+ format: anthropic-claude-v1
+ id: reasoning-123
+ signature: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...
+ status: completed
+ summary:
+ - text: Analyzed the problem and found the optimal solution.
+ type: summary_text
+ type: reasoning
+ OutputWebSearchCallItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemWebSearchCall'
+ - properties: {}
+ type: object
+ example:
+ id: ws-abc123
+ status: completed
+ type: web_search_call
+ OutputWebSearchServerToolItem:
+ description: An openrouter:web_search server tool output item
+ example:
+ id: ws_tmp_abc123
+ status: completed
+ type: openrouter:web_search
+ properties:
+ id:
+ type: string
+ status:
+ $ref: '#/components/schemas/ToolCallStatus'
+ type:
+ enum:
+ - openrouter:web_search
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ Parameter:
+ enum:
+ - temperature
+ - top_p
+ - top_k
+ - min_p
+ - top_a
+ - frequency_penalty
+ - presence_penalty
+ - repetition_penalty
+ - max_tokens
+ - max_completion_tokens
+ - logit_bias
+ - logprobs
+ - top_logprobs
+ - seed
+ - response_format
+ - structured_outputs
+ - stop
+ - tools
+ - tool_choice
+ - parallel_tool_calls
+ - include_reasoning
+ - reasoning
+ - reasoning_effort
+ - web_search_options
+ - verbosity
+ example: temperature
+ type: string
+ PayloadTooLargeResponse:
+ description: Payload Too Large - Request payload exceeds size limits
+ example:
+ error:
+ code: 413
+ message: Request payload too large
+ properties:
+ error:
+ $ref: '#/components/schemas/PayloadTooLargeResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ PayloadTooLargeResponseErrorData:
+ description: Error data for PayloadTooLargeResponse
+ example:
+ code: 413
+ message: Request payload too large
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ PaymentRequiredResponse:
+ description: Payment Required - Insufficient credits or quota to complete request
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ properties:
+ error:
+ $ref: '#/components/schemas/PaymentRequiredResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ PaymentRequiredResponseErrorData:
+ description: Error data for PaymentRequiredResponse
+ example:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ PDFParserEngine:
+ anyOf:
+ - enum:
+ - mistral-ocr
+ - native
+ - cloudflare-ai
+ type: string
+ - enum:
+ - pdf-text
+ type: string
+ description: >-
+ The engine to use for parsing PDF files. "pdf-text" is deprecated and automatically redirected to
+ "cloudflare-ai".
+ example: cloudflare-ai
+ PDFParserOptions:
+ description: Options for PDF parsing.
+ example:
+ engine: cloudflare-ai
+ properties:
+ engine:
+ $ref: '#/components/schemas/PDFParserEngine'
+ type: object
+ PercentileLatencyCutoffs:
+ description: Percentile-based latency cutoffs. All specified cutoffs must be met for an endpoint to be preferred.
+ example:
+ p50: 5
+ p90: 10
+ properties:
+ p50:
+ description: Maximum p50 latency (seconds)
+ format: double
+ type: number
+ p75:
+ description: Maximum p75 latency (seconds)
+ format: double
+ type: number
+ p90:
+ description: Maximum p90 latency (seconds)
+ format: double
+ type: number
+ p99:
+ description: Maximum p99 latency (seconds)
+ format: double
+ type: number
+ type: object
+ PercentileStats:
+ description: >-
+ Latency percentiles in milliseconds over the last 30 minutes. Latency measures time to first token. Only visible
+ when authenticated with an API key or cookie; returns null for unauthenticated requests.
+ example:
+ p50: 25.5
+ p75: 35.2
+ p90: 48.7
+ p99: 85.3
+ nullable: true
+ properties:
+ p50:
+ description: Median (50th percentile)
+ example: 25.5
+ format: double
+ type: number
+ p75:
+ description: 75th percentile
+ example: 35.2
+ format: double
+ type: number
+ p90:
+ description: 90th percentile
+ example: 48.7
+ format: double
+ type: number
+ p99:
+ description: 99th percentile
+ example: 85.3
+ format: double
+ type: number
+ required:
+ - p50
+ - p75
+ - p90
+ - p99
+ type: object
+ PercentileThroughputCutoffs:
+ description: Percentile-based throughput cutoffs. All specified cutoffs must be met for an endpoint to be preferred.
+ example:
+ p50: 100
+ p90: 50
+ properties:
+ p50:
+ description: Minimum p50 throughput (tokens/sec)
+ format: double
+ type: number
+ p75:
+ description: Minimum p75 throughput (tokens/sec)
+ format: double
+ type: number
+ p90:
+ description: Minimum p90 throughput (tokens/sec)
+ format: double
+ type: number
+ p99:
+ description: Minimum p99 throughput (tokens/sec)
+ format: double
+ type: number
+ type: object
+ PerRequestLimits:
+ description: Per-request token limits
+ example:
+ completion_tokens: 1000
+ prompt_tokens: 1000
+ nullable: true
+ properties:
+ completion_tokens:
+ description: Maximum completion tokens per request
+ example: 1000
+ type: number
+ prompt_tokens:
+ description: Maximum prompt tokens per request
+ example: 1000
+ type: number
+ required:
+ - prompt_tokens
+ - completion_tokens
+ type: object
+ PreferredMaxLatency:
+ anyOf:
+ - format: double
+ type: number
+ - $ref: '#/components/schemas/PercentileLatencyCutoffs'
+ - nullable: true
+ description: >-
+ Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific
+ cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using
+ fallback models, this may cause a fallback model to be used instead of the primary model if it meets the
+ threshold.
+ example: 5
+ PreferredMinThroughput:
+ anyOf:
+ - format: double
+ type: number
+ - $ref: '#/components/schemas/PercentileThroughputCutoffs'
+ - nullable: true
+ description: >-
+ Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with
+ percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in
+ routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if
+ it meets the threshold.
+ example: 100
+ Preview_20250311_WebSearchServerTool:
+ description: Web search preview tool configuration (2025-03-11 version)
+ example:
+ type: web_search_preview_2025_03_11
+ properties:
+ engine:
+ $ref: '#/components/schemas/WebSearchEngineEnum'
+ filters:
+ $ref: '#/components/schemas/WebSearchDomainFilter'
+ max_results:
+ description: >-
+ Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
+ Parallel engines; ignored with native provider search.
+ example: 5
+ type: integer
+ search_context_size:
+ $ref: '#/components/schemas/SearchContextSizeEnum'
+ type:
+ enum:
+ - web_search_preview_2025_03_11
+ type: string
+ user_location:
+ $ref: '#/components/schemas/Preview_WebSearchUserLocation'
+ required:
+ - type
+ type: object
+ Preview_WebSearchServerTool:
+ description: Web search preview tool configuration
+ example:
+ type: web_search_preview
+ properties:
+ engine:
+ $ref: '#/components/schemas/WebSearchEngineEnum'
+ filters:
+ $ref: '#/components/schemas/WebSearchDomainFilter'
+ max_results:
+ description: >-
+ Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
+ Parallel engines; ignored with native provider search.
+ example: 5
+ type: integer
+ search_context_size:
+ $ref: '#/components/schemas/SearchContextSizeEnum'
+ type:
+ enum:
+ - web_search_preview
+ type: string
+ user_location:
+ $ref: '#/components/schemas/Preview_WebSearchUserLocation'
+ required:
+ - type
+ type: object
+ Preview_WebSearchUserLocation:
+ example:
+ city: San Francisco
+ country: USA
+ region: California
+ timezone: America/Los_Angeles
+ type: approximate
+ nullable: true
+ properties:
+ city:
+ nullable: true
+ type: string
+ country:
+ nullable: true
+ type: string
+ region:
+ nullable: true
+ type: string
+ timezone:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - approximate
+ type: string
+ required:
+ - type
+ type: object
+ ProviderName:
+ enum:
+ - AkashML
+ - AI21
+ - AionLabs
+ - Alibaba
+ - Ambient
+ - Amazon Bedrock
+ - Amazon Nova
+ - Anthropic
+ - Arcee AI
+ - AtlasCloud
+ - Avian
+ - Azure
+ - BaseTen
+ - BytePlus
+ - Black Forest Labs
+ - Cerebras
+ - Chutes
+ - Cirrascale
+ - Clarifai
+ - Cloudflare
+ - Cohere
+ - Crusoe
+ - DeepInfra
+ - DeepSeek
+ - Featherless
+ - Fireworks
+ - Friendli
+ - GMICloud
+ - Google
+ - Google AI Studio
+ - Groq
+ - Hyperbolic
+ - Inception
+ - Inceptron
+ - InferenceNet
+ - Ionstream
+ - Infermatic
+ - Io Net
+ - Inflection
+ - Liquid
+ - Mara
+ - Mancer 2
+ - Minimax
+ - ModelRun
+ - Mistral
+ - Modular
+ - Moonshot AI
+ - Morph
+ - NCompass
+ - Nebius
+ - NextBit
+ - Novita
+ - Nvidia
+ - OpenAI
+ - OpenInference
+ - Parasail
+ - Perplexity
+ - Phala
+ - Reka
+ - Relace
+ - SambaNova
+ - Seed
+ - SiliconFlow
+ - Sourceful
+ - StepFun
+ - Stealth
+ - StreamLake
+ - Switchpoint
+ - Together
+ - Upstage
+ - Venice
+ - WandB
+ - Xiaomi
+ - xAI
+ - Z.AI
+ - FakeProvider
+ example: OpenAI
+ type: string
+ ProviderOverloadedResponse:
+ description: Provider Overloaded - Provider is temporarily overloaded
+ example:
+ error:
+ code: 529
+ message: Provider returned error
+ properties:
+ error:
+ $ref: '#/components/schemas/ProviderOverloadedResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ ProviderOverloadedResponseErrorData:
+ description: Error data for ProviderOverloadedResponse
+ example:
+ code: 529
+ message: Provider returned error
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ ProviderPreferences:
+ additionalProperties: false
+ description: When multiple model providers are available, optionally indicate your routing preference.
+ example:
+ allow_fallbacks: true
+ nullable: true
+ properties:
+ allow_fallbacks:
+ description: >
+ Whether to allow backup providers to serve requests
+
+ - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the
+ next best provider.
+
+ - false: use only the primary/custom provider, and return the upstream error if it's unavailable.
+ nullable: true
+ type: boolean
+ data_collection:
+ description: >-
+ Data collection setting. If no available model provider meets the requirement, your request will return an
+ error.
+
+ - allow: (default) allow providers which store user data non-transiently and may train on it
+
+
+ - deny: use only providers which do not collect user data.
+ enum:
+ - deny
+ - allow
+ - null
+ example: allow
+ nullable: true
+ type: string
+ enforce_distillable_text:
+ description: >-
+ Whether to restrict routing to only models that allow text distillation. When true, only models where the
+ author has allowed distillation will be used.
+ example: true
+ nullable: true
+ type: boolean
+ ignore:
+ description: >-
+ List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider
+ settings for this request.
+ example:
+ - openai
+ - anthropic
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/ProviderName'
+ - type: string
+ nullable: true
+ type: array
+ max_price:
+ description: >-
+ The object specifying the maximum price you want to pay for this request. USD price per million tokens, for
+ prompt and completion.
+ properties:
+ audio:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: Price per audio unit
+ completion:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: Price per million completion tokens
+ image:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: Price per image
+ prompt:
+ $ref: '#/components/schemas/BigNumberUnion'
+ request:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: Price per request
+ type: object
+ only:
+ description: >-
+ List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider
+ settings for this request.
+ example:
+ - openai
+ - anthropic
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/ProviderName'
+ - type: string
+ nullable: true
+ type: array
+ order:
+ description: >-
+ An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this
+ list that supports your requested model, and fall back to the next if it is unavailable. If no providers are
+ available, the request will fail with an error message.
+ example:
+ - openai
+ - anthropic
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/ProviderName'
+ - type: string
+ nullable: true
+ type: array
+ preferred_max_latency:
+ $ref: '#/components/schemas/PreferredMaxLatency'
+ preferred_min_throughput:
+ $ref: '#/components/schemas/PreferredMinThroughput'
+ quantizations:
+ description: A list of quantization levels to filter the provider by.
+ items:
+ $ref: '#/components/schemas/Quantization'
+ nullable: true
+ type: array
+ require_parameters:
+ description: >-
+ Whether to filter providers to only those that support the parameters you've provided. If this setting is
+ omitted or set to false, then providers will receive only the parameters they support, and ignore the rest.
+ nullable: true
+ type: boolean
+ sort:
+ anyOf:
+ - $ref: '#/components/schemas/ProviderSort'
+ - $ref: '#/components/schemas/ProviderSortConfig'
+ - nullable: true
+ description: >-
+ The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is
+ performed.
+ example: price
+ zdr:
+ description: >-
+ Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that do
+ not retain prompts will be used.
+ example: true
+ nullable: true
+ type: boolean
+ type: object
+ ProviderResponse:
+ description: Details of a provider response for a generation attempt
+ example:
+ endpoint_id: ep_abc123
+ id: chatcmpl-abc123
+ is_byok: false
+ latency: 1200
+ model_permaslug: openai/gpt-4
+ provider_name: OpenAI
+ status: 200
+ properties:
+ endpoint_id:
+ description: Internal endpoint identifier
+ example: ep_abc123
+ type: string
+ id:
+ description: Upstream provider response identifier
+ example: chatcmpl-abc123
+ type: string
+ is_byok:
+ description: Whether the request used a bring-your-own-key
+ example: false
+ type: boolean
+ latency:
+ description: Response latency in milliseconds
+ example: 1200
+ type: number
+ model_permaslug:
+ description: Canonical model slug
+ example: openai/gpt-4
+ type: string
+ provider_name:
+ description: Name of the provider
+ enum:
+ - AnyScale
+ - Atoma
+ - Cent-ML
+ - CrofAI
+ - Enfer
+ - GoPomelo
+ - HuggingFace
+ - Hyperbolic 2
+ - InoCloud
+ - Kluster
+ - Lambda
+ - Lepton
+ - Lynn 2
+ - Lynn
+ - Mancer
+ - Meta
+ - Modal
+ - Nineteen
+ - OctoAI
+ - Recursal
+ - Reflection
+ - Replicate
+ - SambaNova 2
+ - SF Compute
+ - Targon
+ - Together 2
+ - Ubicloud
+ - 01.AI
+ - AkashML
+ - AI21
+ - AionLabs
+ - Alibaba
+ - Ambient
+ - Amazon Bedrock
+ - Amazon Nova
+ - Anthropic
+ - Arcee AI
+ - AtlasCloud
+ - Avian
+ - Azure
+ - BaseTen
+ - BytePlus
+ - Black Forest Labs
+ - Cerebras
+ - Chutes
+ - Cirrascale
+ - Clarifai
+ - Cloudflare
+ - Cohere
+ - Crusoe
+ - DeepInfra
+ - DeepSeek
+ - Featherless
+ - Fireworks
+ - Friendli
+ - GMICloud
+ - Google
+ - Google AI Studio
+ - Groq
+ - Hyperbolic
+ - Inception
+ - Inceptron
+ - InferenceNet
+ - Ionstream
+ - Infermatic
+ - Io Net
+ - Inflection
+ - Liquid
+ - Mara
+ - Mancer 2
+ - Minimax
+ - ModelRun
+ - Mistral
+ - Modular
+ - Moonshot AI
+ - Morph
+ - NCompass
+ - Nebius
+ - NextBit
+ - Novita
+ - Nvidia
+ - OpenAI
+ - OpenInference
+ - Parasail
+ - Perplexity
+ - Phala
+ - Reka
+ - Relace
+ - SambaNova
+ - Seed
+ - SiliconFlow
+ - Sourceful
+ - StepFun
+ - Stealth
+ - StreamLake
+ - Switchpoint
+ - Together
+ - Upstage
+ - Venice
+ - WandB
+ - Xiaomi
+ - xAI
+ - Z.AI
+ - FakeProvider
+ example: OpenAI
+ type: string
+ status:
+ description: HTTP status code from the provider
+ example: 200
+ nullable: true
+ type: number
+ required:
+ - status
+ type: object
+ ProviderSort:
+ description: The provider sorting strategy (price, throughput, latency)
+ enum:
+ - price
+ - throughput
+ - latency
+ - exacto
+ example: price
+ type: string
+ ProviderSortConfig:
+ description: The provider sorting strategy (price, throughput, latency)
+ example:
+ by: price
+ partition: model
+ properties:
+ by:
+ description: The provider sorting strategy (price, throughput, latency)
+ enum:
+ - price
+ - throughput
+ - latency
+ - exacto
+ - null
+ example: price
+ nullable: true
+ type: string
+ partition:
+ description: >-
+ Partitioning strategy for sorting: "model" (default) groups endpoints by model before sorting (fallback
+ models remain fallbacks), "none" sorts all endpoints together regardless of model.
+ enum:
+ - model
+ - none
+ - null
+ example: model
+ nullable: true
+ type: string
+ type: object
+ PublicEndpoint:
+ description: Information about a specific model endpoint
+ example:
+ context_length: 8192
+ latency_last_30m:
+ p50: 0.25
+ p75: 0.35
+ p90: 0.48
+ p99: 0.85
+ max_completion_tokens: 4096
+ max_prompt_tokens: 8192
+ model_id: openai/gpt-4
+ model_name: GPT-4
+ name: 'OpenAI: GPT-4'
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ provider_name: OpenAI
+ quantization: fp16
+ status: 0
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ supports_implicit_caching: true
+ tag: openai
+ throughput_last_30m:
+ p50: 45.2
+ p75: 38.5
+ p90: 28.3
+ p99: 15.1
+ uptime_last_1d: 99.8
+ uptime_last_30m: 99.5
+ uptime_last_5m: 100
+ properties:
+ context_length:
+ type: integer
+ latency_last_30m:
+ $ref: '#/components/schemas/PercentileStats'
+ max_completion_tokens:
+ type: integer
+ max_prompt_tokens:
+ type: integer
+ model_id:
+ description: The unique identifier for the model (permaslug)
+ example: openai/gpt-4
+ type: string
+ model_name:
+ type: string
+ name:
+ type: string
+ pricing:
+ properties:
+ audio:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ audio_output:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ completion:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ discount:
+ type: number
+ image:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ image_output:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ image_token:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ input_audio_cache:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ input_cache_read:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ input_cache_write:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ internal_reasoning:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ prompt:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ request:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ web_search:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ required:
+ - prompt
+ - completion
+ type: object
+ provider_name:
+ $ref: '#/components/schemas/ProviderName'
+ quantization:
+ allOf:
+ - $ref: '#/components/schemas/Quantization'
+ - nullable: true
+ status:
+ $ref: '#/components/schemas/EndpointStatus'
+ supported_parameters:
+ items:
+ $ref: '#/components/schemas/Parameter'
+ type: array
+ supports_implicit_caching:
+ type: boolean
+ tag:
+ type: string
+ throughput_last_30m:
+ allOf:
+ - $ref: '#/components/schemas/PercentileStats'
+ - description: >-
+ Throughput percentiles in tokens per second over the last 30 minutes. Throughput measures output token
+ generation speed. Only visible when authenticated with an API key or cookie; returns null for
+ unauthenticated requests.
+ uptime_last_1d:
+ description: >-
+ 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
+ type: number
+ uptime_last_30m:
+ format: double
+ 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
+ type: number
+ required:
+ - name
+ - model_id
+ - model_name
+ - context_length
+ - pricing
+ - provider_name
+ - tag
+ - quantization
+ - max_completion_tokens
+ - max_prompt_tokens
+ - supported_parameters
+ - uptime_last_30m
+ - uptime_last_5m
+ - uptime_last_1d
+ - supports_implicit_caching
+ - latency_last_30m
+ - throughput_last_30m
+ type: object
+ PublicPricing:
+ description: Pricing information for the model
+ example:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ properties:
+ audio:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ audio_output:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ completion:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ discount:
+ type: number
+ image:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ image_output:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ image_token:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ input_audio_cache:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ input_cache_read:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ input_cache_write:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ internal_reasoning:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ prompt:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ request:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ web_search:
+ allOf:
+ - $ref: '#/components/schemas/BigNumberUnion'
+ - description: A number or string value representing a large number
+ required:
+ - prompt
+ - completion
+ type: object
+ Quantization:
+ enum:
+ - int4
+ - int8
+ - fp4
+ - fp6
+ - fp8
+ - fp16
+ - bf16
+ - fp32
+ - unknown
+ example: fp16
+ type: string
+ ReasoningConfig:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningConfig'
+ - nullable: true
+ properties:
+ enabled:
+ nullable: true
+ type: boolean
+ max_tokens:
+ type: integer
+ type: object
+ description: Configuration for reasoning mode in the response
+ example:
+ enabled: true
+ summary: auto
+ ReasoningDeltaEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningDeltaEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when reasoning text delta is streamed
+ example:
+ content_index: 0
+ delta: First, we need
+ item_id: item-1
+ output_index: 0
+ sequence_number: 4
+ type: response.reasoning_text.delta
+ ReasoningDetailEncrypted:
+ description: Reasoning detail encrypted schema
+ example:
+ data: encrypted data
+ type: reasoning.encrypted
+ properties:
+ data:
+ type: string
+ format:
+ $ref: '#/components/schemas/ReasoningFormat'
+ id:
+ nullable: true
+ type: string
+ index:
+ type: integer
+ type:
+ enum:
+ - reasoning.encrypted
+ type: string
+ required:
+ - type
+ - data
+ type: object
+ ReasoningDetailSummary:
+ description: Reasoning detail summary schema
+ example:
+ summary: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...
+ type: reasoning.summary
+ properties:
+ format:
+ $ref: '#/components/schemas/ReasoningFormat'
+ id:
+ nullable: true
+ type: string
+ index:
+ type: integer
+ summary:
+ type: string
+ type:
+ enum:
+ - reasoning.summary
+ type: string
+ required:
+ - type
+ - summary
+ type: object
+ ReasoningDetailText:
+ description: Reasoning detail text schema
+ example:
+ signature: signature
+ text: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...
+ type: reasoning.text
+ properties:
+ format:
+ $ref: '#/components/schemas/ReasoningFormat'
+ id:
+ nullable: true
+ type: string
+ index:
+ type: integer
+ signature:
+ nullable: true
+ type: string
+ text:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - reasoning.text
+ type: string
+ required:
+ - type
+ type: object
+ ReasoningDetailUnion:
+ description: Reasoning detail union schema
+ discriminator:
+ mapping:
+ reasoning.encrypted: '#/components/schemas/ReasoningDetailEncrypted'
+ reasoning.summary: '#/components/schemas/ReasoningDetailSummary'
+ reasoning.text: '#/components/schemas/ReasoningDetailText'
+ propertyName: type
+ example:
+ summary: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...
+ type: reasoning.summary
+ oneOf:
+ - $ref: '#/components/schemas/ReasoningDetailSummary'
+ - $ref: '#/components/schemas/ReasoningDetailEncrypted'
+ - $ref: '#/components/schemas/ReasoningDetailText'
+ ReasoningDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningDoneEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when reasoning text streaming is complete
+ example:
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ sequence_number: 6
+ text: First, we need to identify the key components and then combine them logically.
+ type: response.reasoning_text.done
+ ReasoningEffort:
+ enum:
+ - xhigh
+ - high
+ - medium
+ - low
+ - minimal
+ - none
+ - null
+ example: medium
+ nullable: true
+ type: string
+ ReasoningFormat:
+ enum:
+ - unknown
+ - openai-responses-v1
+ - azure-openai-responses-v1
+ - xai-responses-v1
+ - anthropic-claude-v1
+ - google-gemini-v1
+ - null
+ example: unknown
+ nullable: true
+ type: string
+ ReasoningItem:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemReasoning'
+ - properties:
+ content:
+ items:
+ $ref: '#/components/schemas/ReasoningTextContent'
+ nullable: true
+ type: array
+ format:
+ $ref: '#/components/schemas/ReasoningFormat'
+ signature:
+ nullable: true
+ type: string
+ type: object
+ description: Reasoning output item with signature and format extensions
+ example:
+ id: reasoning-abc123
+ summary:
+ - text: Step by step analysis
+ type: summary_text
+ type: reasoning
+ ReasoningSummaryPartAddedEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningSummaryPartAddedEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when a reasoning summary part is added
+ example:
+ item_id: item-1
+ output_index: 0
+ part:
+ text: ''
+ type: summary_text
+ sequence_number: 3
+ summary_index: 0
+ type: response.reasoning_summary_part.added
+ ReasoningSummaryPartDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningSummaryPartDoneEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when a reasoning summary part is complete
+ example:
+ item_id: item-1
+ output_index: 0
+ part:
+ text: Analyzing the problem step by step to find the optimal solution.
+ type: summary_text
+ sequence_number: 7
+ summary_index: 0
+ type: response.reasoning_summary_part.done
+ ReasoningSummaryText:
+ example:
+ text: Analyzed the problem using first principles
+ type: summary_text
+ properties:
+ text:
+ type: string
+ type:
+ enum:
+ - summary_text
+ type: string
+ required:
+ - type
+ - text
+ type: object
+ ReasoningSummaryTextDeltaEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningSummaryTextDeltaEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when reasoning summary text delta is streamed
+ example:
+ delta: Analyzing
+ item_id: item-1
+ output_index: 0
+ sequence_number: 4
+ summary_index: 0
+ type: response.reasoning_summary_text.delta
+ ReasoningSummaryTextDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseReasoningSummaryTextDoneEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when reasoning summary text streaming is complete
+ example:
+ item_id: item-1
+ output_index: 0
+ sequence_number: 6
+ summary_index: 0
+ text: Analyzing the problem step by step to find the optimal solution.
+ type: response.reasoning_summary_text.done
+ ReasoningSummaryVerbosity:
+ enum:
+ - auto
+ - concise
+ - detailed
+ - null
+ example: auto
+ nullable: true
+ type: string
+ ReasoningTextContent:
+ example:
+ text: Let me think step by step about this problem...
+ type: reasoning_text
+ properties:
+ text:
+ type: string
+ type:
+ enum:
+ - reasoning_text
+ type: string
+ required:
+ - type
+ - text
+ type: object
+ RefusalDeltaEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseRefusalDeltaEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when a refusal delta is streamed
+ example:
+ content_index: 0
+ delta: I'm sorry
+ item_id: item-1
+ output_index: 0
+ sequence_number: 4
+ type: response.refusal.delta
+ RefusalDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseRefusalDoneEvent'
+ - properties: {}
+ type: object
+ description: Event emitted when refusal streaming is complete
+ example:
+ content_index: 0
+ item_id: item-1
+ output_index: 0
+ refusal: I'm sorry, but I can't assist with that request.
+ sequence_number: 6
+ type: response.refusal.done
+ RequestMetadata:
+ additionalProperties:
+ maxLength: 512
+ type: string
+ description: >-
+ Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must
+ be ≤512 characters. Maximum 16 pairs allowed.
+ example:
+ session_id: abc-def-ghi
+ user_id: '123'
+ nullable: true
+ type: object
+ RequestTimeoutResponse:
+ description: Request Timeout - Operation exceeded time limit
+ example:
+ error:
+ code: 408
+ message: Operation timed out. Please try again later.
+ properties:
+ error:
+ $ref: '#/components/schemas/RequestTimeoutResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ RequestTimeoutResponseErrorData:
+ description: Error data for RequestTimeoutResponse
+ example:
+ code: 408
+ message: Operation timed out. Please try again later.
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ ResponseHealingPlugin:
+ example:
+ enabled: true
+ id: response-healing
+ properties:
+ enabled:
+ description: Set to false to disable the response-healing plugin for this request. Defaults to true.
+ type: boolean
+ id:
+ enum:
+ - response-healing
+ type: string
+ required:
+ - id
+ type: object
+ ResponseIncludesEnum:
+ enum:
+ - file_search_call.results
+ - message.input_image.image_url
+ - computer_call_output.output.image_url
+ - reasoning.encrypted_content
+ - code_interpreter_call.outputs
+ example: file_search_call.results
+ type: string
+ ResponseOutputText:
+ example:
+ annotations:
+ - end_index: 42
+ start_index: 0
+ title: Paris - Wikipedia
+ type: url_citation
+ url: https://en.wikipedia.org/wiki/Paris
+ text: The capital of France is Paris.
+ type: output_text
+ properties:
+ annotations:
+ items:
+ $ref: '#/components/schemas/OpenAIResponsesAnnotation'
+ type: array
+ logprobs:
+ items:
+ properties:
+ bytes:
+ items:
+ type: integer
+ type: array
+ logprob:
+ format: double
+ type: number
+ token:
+ type: string
+ top_logprobs:
+ items:
+ properties:
+ bytes:
+ items:
+ type: integer
+ type: array
+ logprob:
+ format: double
+ type: number
+ token:
+ type: string
+ required:
+ - token
+ - bytes
+ - logprob
+ type: object
+ type: array
+ required:
+ - token
+ - bytes
+ - logprob
+ - top_logprobs
+ type: object
+ type: array
+ text:
+ type: string
+ type:
+ enum:
+ - output_text
+ type: string
+ required:
+ - type
+ - text
+ type: object
+ ResponsesErrorField:
+ description: Error information returned from the API
+ example:
+ code: rate_limit_exceeded
+ message: Rate limit exceeded. Please try again later.
+ nullable: true
+ properties:
+ code:
+ enum:
+ - server_error
+ - rate_limit_exceeded
+ - invalid_prompt
+ - vector_store_timeout
+ - invalid_image
+ - invalid_image_format
+ - invalid_base64_image
+ - invalid_image_url
+ - image_too_large
+ - image_too_small
+ - image_parse_error
+ - image_content_policy_violation
+ - invalid_image_mode
+ - image_file_too_large
+ - unsupported_image_media_type
+ - empty_image_file
+ - failed_to_download_image
+ - image_file_not_found
+ type: string
+ message:
+ type: string
+ required:
+ - code
+ - message
+ type: object
+ ResponsesRequest:
+ description: Request schema for Responses endpoint
+ example:
+ input:
+ - content: Hello, how are you?
+ role: user
+ type: message
+ model: anthropic/claude-4.5-sonnet-20250929
+ temperature: 0.7
+ tools:
+ - description: Get the current weather in a given location
+ name: get_current_weather
+ parameters:
+ properties:
+ location:
+ type: string
+ type: object
+ type: function
+ top_p: 0.9
+ properties:
+ background:
+ nullable: true
+ type: boolean
+ frequency_penalty:
+ format: double
+ 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
+ include:
+ items:
+ $ref: '#/components/schemas/ResponseIncludesEnum'
+ nullable: true
+ type: array
+ input:
+ $ref: '#/components/schemas/Inputs'
+ instructions:
+ nullable: true
+ type: string
+ max_output_tokens:
+ type: integer
+ max_tool_calls:
+ type: integer
+ metadata:
+ $ref: '#/components/schemas/RequestMetadata'
+ modalities:
+ description: Output modalities for the response. Supported values are "text" and "image".
+ example:
+ - text
+ - image
+ items:
+ $ref: '#/components/schemas/OutputModalityEnum'
+ type: array
+ model:
+ type: string
+ models:
+ items:
+ type: string
+ type: array
+ parallel_tool_calls:
+ nullable: true
+ type: boolean
+ plugins:
+ description: Plugins you want to enable for this request, including their settings.
+ items:
+ discriminator:
+ mapping:
+ auto-router: '#/components/schemas/AutoRouterPlugin'
+ context-compression: '#/components/schemas/ContextCompressionPlugin'
+ file-parser: '#/components/schemas/FileParserPlugin'
+ moderation: '#/components/schemas/ModerationPlugin'
+ response-healing: '#/components/schemas/ResponseHealingPlugin'
+ web: '#/components/schemas/WebSearchPlugin'
+ propertyName: id
+ oneOf:
+ - $ref: '#/components/schemas/AutoRouterPlugin'
+ - $ref: '#/components/schemas/ModerationPlugin'
+ - $ref: '#/components/schemas/WebSearchPlugin'
+ - $ref: '#/components/schemas/FileParserPlugin'
+ - $ref: '#/components/schemas/ResponseHealingPlugin'
+ - $ref: '#/components/schemas/ContextCompressionPlugin'
+ type: array
+ presence_penalty:
+ format: double
+ type: number
+ previous_response_id:
+ nullable: true
+ type: string
+ prompt:
+ $ref: '#/components/schemas/StoredPromptTemplate'
+ prompt_cache_key:
+ nullable: true
+ type: string
+ provider:
+ $ref: '#/components/schemas/ProviderPreferences'
+ reasoning:
+ $ref: '#/components/schemas/ReasoningConfig'
+ route:
+ $ref: '#/components/schemas/DeprecatedRoute'
+ safety_identifier:
+ nullable: true
+ type: string
+ service_tier:
+ default: auto
+ enum:
+ - auto
+ - default
+ - flex
+ - priority
+ - scale
+ - null
+ nullable: true
+ type: string
+ session_id:
+ description: >-
+ A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for
+ observability. If provided in both the request body and the x-session-id header, the body value takes
+ precedence. Maximum of 256 characters.
+ maxLength: 256
+ type: string
+ store:
+ const: false
+ default: false
+ type: boolean
+ stream:
+ default: false
+ type: boolean
+ temperature:
+ format: double
+ type: number
+ text:
+ $ref: '#/components/schemas/TextExtendedConfig'
+ tool_choice:
+ $ref: '#/components/schemas/OpenAIResponsesToolChoice'
+ tools:
+ items:
+ anyOf:
+ - allOf:
+ - $ref: '#/components/schemas/FunctionTool'
+ - properties: {}
+ type: object
+ description: Function tool definition
+ example:
+ description: Get the current weather in a location
+ name: get_weather
+ parameters:
+ properties:
+ location:
+ description: The city and state
+ type: string
+ unit:
+ enum:
+ - celsius
+ - fahrenheit
+ type: string
+ required:
+ - location
+ type: object
+ type: function
+ - $ref: '#/components/schemas/Preview_WebSearchServerTool'
+ - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool'
+ - $ref: '#/components/schemas/Legacy_WebSearchServerTool'
+ - $ref: '#/components/schemas/WebSearchServerTool'
+ - $ref: '#/components/schemas/FileSearchServerTool'
+ - $ref: '#/components/schemas/ComputerUseServerTool'
+ - $ref: '#/components/schemas/CodeInterpreterServerTool'
+ - $ref: '#/components/schemas/McpServerTool'
+ - $ref: '#/components/schemas/ImageGenerationServerTool'
+ - $ref: '#/components/schemas/CodexLocalShellTool'
+ - $ref: '#/components/schemas/ShellServerTool'
+ - $ref: '#/components/schemas/ApplyPatchServerTool'
+ - $ref: '#/components/schemas/CustomTool'
+ - $ref: '#/components/schemas/DatetimeServerTool'
+ - $ref: '#/components/schemas/WebSearchServerTool_OpenRouter'
+ type: array
+ top_k:
+ type: integer
+ top_logprobs:
+ type: integer
+ top_p:
+ format: double
+ type: number
+ trace:
+ $ref: '#/components/schemas/TraceConfig'
+ truncation:
+ $ref: '#/components/schemas/OpenAIResponsesTruncation'
+ user:
+ description: >-
+ A unique identifier representing your end-user, which helps distinguish between different users of your app.
+ This allows your app to identify specific users in case of abuse reports, preventing your entire app from
+ being affected by the actions of individual users. Maximum of 256 characters.
+ maxLength: 256
+ type: string
+ type: object
+ SearchContextSizeEnum:
+ description: Size of the search context for web search tools
+ enum:
+ - low
+ - medium
+ - high
+ example: medium
+ type: string
+ SearchQualityLevel:
+ description: >-
+ How much context to retrieve per result. Defaults to medium (15000 chars). Only applies when using the Exa
+ engine; ignored with native provider search.
+ enum:
+ - low
+ - medium
+ - high
+ example: medium
+ type: string
+ ServiceTier:
+ enum:
+ - auto
+ - default
+ - flex
+ - priority
+ - scale
+ - null
+ example: default
+ nullable: true
+ type: string
+ ServiceUnavailableResponse:
+ description: Service Unavailable - Service temporarily unavailable
+ example:
+ error:
+ code: 503
+ message: Service temporarily unavailable
+ properties:
+ error:
+ $ref: '#/components/schemas/ServiceUnavailableResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ ServiceUnavailableResponseErrorData:
+ description: Error data for ServiceUnavailableResponse
+ example:
+ code: 503
+ message: Service temporarily unavailable
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ ShellServerTool:
+ description: Shell tool configuration
+ example:
+ type: shell
+ properties:
+ type:
+ enum:
+ - shell
+ type: string
+ required:
+ - type
+ type: object
+ StoredPromptTemplate:
+ example:
+ id: prompt-abc123
+ variables:
+ name: John
+ nullable: true
+ properties:
+ id:
+ type: string
+ variables:
+ additionalProperties:
+ anyOf:
+ - type: string
+ - $ref: '#/components/schemas/InputText'
+ - $ref: '#/components/schemas/InputImage'
+ - $ref: '#/components/schemas/InputFile'
+ nullable: true
+ type: object
+ required:
+ - id
+ type: object
+ StreamEvents:
+ description: Union of all possible event types emitted during response streaming
+ discriminator:
+ mapping:
+ error: '#/components/schemas/ErrorEvent'
+ response.completed: '#/components/schemas/StreamEventsResponseCompleted'
+ response.content_part.added: '#/components/schemas/ContentPartAddedEvent'
+ response.content_part.done: '#/components/schemas/ContentPartDoneEvent'
+ response.created: '#/components/schemas/OpenResponsesCreatedEvent'
+ response.failed: '#/components/schemas/StreamEventsResponseFailed'
+ response.function_call_arguments.delta: '#/components/schemas/FunctionCallArgsDeltaEvent'
+ response.function_call_arguments.done: '#/components/schemas/FunctionCallArgsDoneEvent'
+ response.image_generation_call.completed: '#/components/schemas/ImageGenCallCompletedEvent'
+ response.image_generation_call.generating: '#/components/schemas/ImageGenCallGeneratingEvent'
+ response.image_generation_call.in_progress: '#/components/schemas/ImageGenCallInProgressEvent'
+ response.image_generation_call.partial_image: '#/components/schemas/ImageGenCallPartialImageEvent'
+ response.in_progress: '#/components/schemas/OpenResponsesInProgressEvent'
+ response.incomplete: '#/components/schemas/StreamEventsResponseIncomplete'
+ response.output_item.added: '#/components/schemas/StreamEventsResponseOutputItemAdded'
+ response.output_item.done: '#/components/schemas/StreamEventsResponseOutputItemDone'
+ response.output_text.annotation.added: '#/components/schemas/AnnotationAddedEvent'
+ response.output_text.delta: '#/components/schemas/TextDeltaEvent'
+ response.output_text.done: '#/components/schemas/TextDoneEvent'
+ response.reasoning_summary_part.added: '#/components/schemas/ReasoningSummaryPartAddedEvent'
+ response.reasoning_summary_part.done: '#/components/schemas/ReasoningSummaryPartDoneEvent'
+ response.reasoning_summary_text.delta: '#/components/schemas/ReasoningSummaryTextDeltaEvent'
+ response.reasoning_summary_text.done: '#/components/schemas/ReasoningSummaryTextDoneEvent'
+ response.reasoning_text.delta: '#/components/schemas/ReasoningDeltaEvent'
+ response.reasoning_text.done: '#/components/schemas/ReasoningDoneEvent'
+ response.refusal.delta: '#/components/schemas/RefusalDeltaEvent'
+ response.refusal.done: '#/components/schemas/RefusalDoneEvent'
+ response.web_search_call.completed: '#/components/schemas/WebSearchCallCompletedEvent'
+ response.web_search_call.in_progress: '#/components/schemas/WebSearchCallInProgressEvent'
+ response.web_search_call.searching: '#/components/schemas/WebSearchCallSearchingEvent'
+ propertyName: type
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: in_progress
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 0
+ type: response.created
+ oneOf:
+ - $ref: '#/components/schemas/OpenResponsesCreatedEvent'
+ - $ref: '#/components/schemas/OpenResponsesInProgressEvent'
+ - $ref: '#/components/schemas/StreamEventsResponseCompleted'
+ - $ref: '#/components/schemas/StreamEventsResponseIncomplete'
+ - $ref: '#/components/schemas/StreamEventsResponseFailed'
+ - $ref: '#/components/schemas/ErrorEvent'
+ - $ref: '#/components/schemas/StreamEventsResponseOutputItemAdded'
+ - $ref: '#/components/schemas/StreamEventsResponseOutputItemDone'
+ - $ref: '#/components/schemas/ContentPartAddedEvent'
+ - $ref: '#/components/schemas/ContentPartDoneEvent'
+ - $ref: '#/components/schemas/TextDeltaEvent'
+ - $ref: '#/components/schemas/TextDoneEvent'
+ - $ref: '#/components/schemas/RefusalDeltaEvent'
+ - $ref: '#/components/schemas/RefusalDoneEvent'
+ - $ref: '#/components/schemas/AnnotationAddedEvent'
+ - $ref: '#/components/schemas/FunctionCallArgsDeltaEvent'
+ - $ref: '#/components/schemas/FunctionCallArgsDoneEvent'
+ - $ref: '#/components/schemas/ReasoningDeltaEvent'
+ - $ref: '#/components/schemas/ReasoningDoneEvent'
+ - $ref: '#/components/schemas/ReasoningSummaryPartAddedEvent'
+ - $ref: '#/components/schemas/ReasoningSummaryPartDoneEvent'
+ - $ref: '#/components/schemas/ReasoningSummaryTextDeltaEvent'
+ - $ref: '#/components/schemas/ReasoningSummaryTextDoneEvent'
+ - $ref: '#/components/schemas/ImageGenCallInProgressEvent'
+ - $ref: '#/components/schemas/ImageGenCallGeneratingEvent'
+ - $ref: '#/components/schemas/ImageGenCallPartialImageEvent'
+ - $ref: '#/components/schemas/ImageGenCallCompletedEvent'
+ - $ref: '#/components/schemas/WebSearchCallInProgressEvent'
+ - $ref: '#/components/schemas/WebSearchCallSearchingEvent'
+ - $ref: '#/components/schemas/WebSearchCallCompletedEvent'
+ StreamEventsResponseCompleted:
+ allOf:
+ - $ref: '#/components/schemas/CompletedEvent'
+ - properties:
+ response:
+ $ref: '#/components/schemas/OpenResponsesResult'
+ type: object
+ description: Event emitted when a response has completed successfully
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: completed
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 10
+ type: response.completed
+ StreamEventsResponseFailed:
+ allOf:
+ - $ref: '#/components/schemas/FailedEvent'
+ - properties:
+ response:
+ $ref: '#/components/schemas/OpenResponsesResult'
+ type: object
+ description: Event emitted when a response has failed
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: failed
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 3
+ type: response.failed
+ StreamEventsResponseIncomplete:
+ allOf:
+ - $ref: '#/components/schemas/IncompleteEvent'
+ - properties:
+ response:
+ $ref: '#/components/schemas/OpenResponsesResult'
+ type: object
+ description: Event emitted when a response is incomplete
+ example:
+ response:
+ created_at: 1704067200
+ error: null
+ id: resp-abc123
+ incomplete_details: null
+ instructions: null
+ max_output_tokens: null
+ metadata: null
+ model: gpt-4
+ object: response
+ output: []
+ parallel_tool_calls: true
+ status: incomplete
+ temperature: null
+ tool_choice: auto
+ tools: []
+ top_p: null
+ sequence_number: 5
+ type: response.incomplete
+ StreamEventsResponseOutputItemAdded:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemAddedEvent'
+ - properties:
+ item:
+ $ref: '#/components/schemas/OutputItems'
+ type: object
+ description: Event emitted when a new output item is added to the response
+ example:
+ item:
+ content: []
+ id: item-1
+ role: assistant
+ status: in_progress
+ type: message
+ output_index: 0
+ sequence_number: 2
+ type: response.output_item.added
+ StreamEventsResponseOutputItemDone:
+ allOf:
+ - $ref: '#/components/schemas/OutputItemDoneEvent'
+ - properties:
+ item:
+ $ref: '#/components/schemas/OutputItems'
+ type: object
+ description: Event emitted when an output item is complete
+ example:
+ item:
+ content:
+ - annotations: []
+ text: Hello! How can I help you?
+ type: output_text
+ id: item-1
+ role: assistant
+ status: completed
+ type: message
+ output_index: 0
+ sequence_number: 8
+ type: response.output_item.done
+ StreamLogprob:
+ allOf:
+ - $ref: '#/components/schemas/OpenResponsesLogProbs'
+ - properties:
+ top_logprobs:
+ items:
+ $ref: '#/components/schemas/StreamLogprobTopLogprob'
+ type: array
+ type: object
+ description: Log probability information for a token
+ example:
+ bytes:
+ - 72
+ - 101
+ - 108
+ - 108
+ - 111
+ logprob: -0.5
+ token: Hello
+ top_logprobs: []
+ StreamLogprobTopLogprob:
+ allOf:
+ - $ref: '#/components/schemas/OpenResponsesTopLogprobs'
+ - properties: {}
+ type: object
+ description: Alternative token with its log probability
+ example:
+ bytes:
+ - 72
+ - 101
+ - 108
+ - 108
+ - 111
+ logprob: -0.5
+ token: Hello
+ TextConfig:
+ description: Text output configuration including format and verbosity
+ example:
+ format:
+ type: text
+ verbosity: medium
+ properties:
+ format:
+ $ref: '#/components/schemas/Formats'
+ verbosity:
+ enum:
+ - high
+ - low
+ - medium
+ - null
+ nullable: true
+ type: string
+ type: object
+ TextDeltaEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseTextDeltaEvent'
+ - properties:
+ logprobs:
+ items:
+ $ref: '#/components/schemas/StreamLogprob'
+ type: array
+ type: object
+ description: Event emitted when a text delta is streamed
+ example:
+ content_index: 0
+ delta: Hello
+ item_id: item-1
+ logprobs: []
+ output_index: 0
+ sequence_number: 4
+ type: response.output_text.delta
+ TextDoneEvent:
+ allOf:
+ - $ref: '#/components/schemas/BaseTextDoneEvent'
+ - properties:
+ logprobs:
+ items:
+ $ref: '#/components/schemas/StreamLogprob'
+ type: array
+ type: object
+ description: Event emitted when text streaming is complete
+ example:
+ content_index: 0
+ item_id: item-1
+ logprobs: []
+ output_index: 0
+ sequence_number: 6
+ text: Hello! How can I help you?
+ type: response.output_text.done
+ TextExtendedConfig:
+ allOf:
+ - $ref: '#/components/schemas/TextConfig'
+ - properties: {}
+ type: object
+ description: Text output configuration including format and verbosity
+ example:
+ format:
+ type: text
+ ToolCallStatus:
+ enum:
+ - in_progress
+ - completed
+ - incomplete
+ example: completed
+ type: string
+ ToolChoiceAllowed:
+ description: Constrains the model to a pre-defined set of allowed tools
+ example:
+ mode: auto
+ tools:
+ - name: get_weather
+ type: function
+ type: allowed_tools
+ properties:
+ mode:
+ anyOf:
+ - enum:
+ - auto
+ type: string
+ - enum:
+ - required
+ type: string
+ tools:
+ items:
+ additionalProperties:
+ nullable: true
+ type: object
+ type: array
+ type:
+ enum:
+ - allowed_tools
+ type: string
+ required:
+ - type
+ - mode
+ - tools
+ type: object
+ TooManyRequestsResponse:
+ description: Too Many Requests - Rate limit exceeded
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ properties:
+ error:
+ $ref: '#/components/schemas/TooManyRequestsResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ TooManyRequestsResponseErrorData:
+ description: Error data for TooManyRequestsResponse
+ example:
+ code: 429
+ message: Rate limit exceeded
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ TopProviderInfo:
+ description: Information about the top provider for this model
+ example:
+ context_length: 8192
+ is_moderated: true
+ max_completion_tokens: 4096
+ properties:
+ context_length:
+ description: Context length from the top provider
+ example: 8192
+ type: integer
+ is_moderated:
+ description: Whether the top provider moderates content
+ example: true
+ type: boolean
+ max_completion_tokens:
+ description: Maximum completion tokens from the top provider
+ example: 4096
+ type: integer
+ required:
+ - is_moderated
+ type: object
+ TraceConfig:
+ additionalProperties:
+ nullable: true
+ description: >-
+ Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name,
+ parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured
+ broadcast destinations.
+ example:
+ trace_id: trace-abc123
+ trace_name: my-app-trace
+ properties:
+ generation_name:
+ type: string
+ parent_span_id:
+ type: string
+ span_name:
+ type: string
+ trace_id:
+ type: string
+ trace_name:
+ type: string
+ type: object
+ Truncation:
+ enum:
+ - auto
+ - disabled
+ - null
+ example: auto
+ nullable: true
+ type: string
+ UnauthorizedResponse:
+ description: Unauthorized - Authentication required or invalid credentials
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ properties:
+ error:
+ $ref: '#/components/schemas/UnauthorizedResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ UnauthorizedResponseErrorData:
+ description: Error data for UnauthorizedResponse
+ example:
+ code: 401
+ message: Missing Authentication header
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ UnprocessableEntityResponse:
+ description: Unprocessable Entity - Semantic validation failure
+ example:
+ error:
+ code: 422
+ message: Invalid argument
+ properties:
+ error:
+ $ref: '#/components/schemas/UnprocessableEntityResponseErrorData'
+ user_id:
+ nullable: true
+ type: string
+ required:
+ - error
+ type: object
+ UnprocessableEntityResponseErrorData:
+ description: Error data for UnprocessableEntityResponse
+ example:
+ code: 422
+ message: Invalid argument
+ properties:
+ code:
+ type: integer
+ message:
+ type: string
+ metadata:
+ additionalProperties:
+ nullable: true
+ nullable: true
+ type: object
+ required:
+ - code
+ - message
+ type: object
+ UpdateGuardrailRequest:
+ example:
+ description: Updated description
+ limit_usd: 75
+ name: Updated Guardrail Name
+ reset_interval: weekly
+ properties:
+ allowed_models:
+ description: Array of model identifiers (slug or canonical_slug accepted)
+ example:
+ - openai/gpt-5.2
+ items:
+ type: string
+ minItems: 1
+ nullable: true
+ type: array
+ allowed_providers:
+ description: New list of allowed provider IDs
+ example:
+ - openai
+ - anthropic
+ - deepseek
+ items:
+ type: string
+ minItems: 1
+ nullable: true
+ type: array
+ description:
+ description: New description for the guardrail
+ example: Updated description
+ maxLength: 1000
+ nullable: true
+ type: string
+ enforce_zdr:
+ description: Whether to enforce zero data retention
+ example: true
+ nullable: true
+ type: boolean
+ ignored_providers:
+ description: List of provider IDs to exclude from routing
+ example:
+ - azure
+ items:
+ type: string
+ minItems: 1
+ nullable: true
+ type: array
+ limit_usd:
+ description: New spending limit in USD
+ example: 75
+ format: double
+ type: number
+ name:
+ description: New name for the guardrail
+ example: Updated Guardrail Name
+ maxLength: 200
+ minLength: 1
+ type: string
+ reset_interval:
+ $ref: '#/components/schemas/GuardrailInterval'
+ type: object
+ UpdateGuardrailResponse:
+ example:
+ data:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ created_at: '2025-08-24T10:30:00Z'
+ description: Updated description
+ enforce_zdr: true
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 75
+ name: Updated Guardrail Name
+ reset_interval: weekly
+ updated_at: '2025-08-24T16:00:00Z'
+ properties:
+ data:
+ allOf:
+ - $ref: '#/components/schemas/Guardrail'
+ - description: The updated guardrail
+ required:
+ - data
+ type: object
+ URLCitation:
+ example:
+ end_index: 42
+ start_index: 0
+ title: OpenRouter Documentation
+ type: url_citation
+ url: https://openrouter.ai/docs
+ properties:
+ end_index:
+ type: integer
+ start_index:
+ type: integer
+ title:
+ type: string
+ type:
+ enum:
+ - url_citation
+ type: string
+ url:
+ type: string
+ required:
+ - type
+ - url
+ - title
+ - start_index
+ - end_index
+ type: object
+ Usage:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesUsage'
+ - nullable: true
+ properties:
+ cost:
+ description: Cost of the completion
+ format: double
+ type: number
+ cost_details:
+ properties:
+ upstream_inference_cost:
+ format: double
+ type: number
+ upstream_inference_input_cost:
+ format: double
+ type: number
+ upstream_inference_output_cost:
+ format: double
+ type: number
+ required:
+ - upstream_inference_input_cost
+ - upstream_inference_output_cost
+ type: object
+ is_byok:
+ description: Whether a request was made using a Bring Your Own Key configuration
+ type: boolean
+ type: object
+ description: Token usage information for the response
+ example:
+ cost: 0.0012
+ cost_details:
+ upstream_inference_cost: null
+ upstream_inference_input_cost: 0.0008
+ upstream_inference_output_cost: 0.0004
+ input_tokens: 10
+ input_tokens_details:
+ cached_tokens: 0
+ output_tokens: 25
+ output_tokens_details:
+ reasoning_tokens: 0
+ total_tokens: 35
+ VideoGenerationRequest:
+ example:
+ aspect_ratio: '16:9'
+ duration: 8
+ model: google/veo-3.1
+ prompt: A serene mountain landscape at sunset
+ resolution: 720p
+ properties:
+ aspect_ratio:
+ description: Aspect ratio of the generated video
+ enum:
+ - '16:9'
+ - '9:16'
+ - '1:1'
+ - '4:3'
+ - '3:4'
+ - '21:9'
+ - '9:21'
+ example: '16:9'
+ type: string
+ duration:
+ description: Duration of the generated video in seconds
+ example: 8
+ exclusiveMinimum: true
+ minimum: 0
+ type: integer
+ generate_audio:
+ description: >-
+ Whether to generate audio alongside the video. Defaults to true for models that support audio output, false
+ otherwise.
+ example: true
+ type: boolean
+ input_references:
+ description: Reference images to guide video generation
+ items:
+ $ref: '#/components/schemas/ContentPartImage'
+ type: array
+ model:
+ type: string
+ prompt:
+ type: string
+ provider:
+ description: Provider-specific passthrough configuration
+ properties:
+ options:
+ description: >-
+ Provider-specific options keyed by provider slug. The options for the matched provider are spread into
+ the upstream request body.
+ example:
+ google-vertex:
+ output_config:
+ effort: low
+ properties:
+ 01ai:
+ additionalProperties:
+ nullable: true
+ type: object
+ ai21:
+ additionalProperties:
+ nullable: true
+ type: object
+ aion-labs:
+ additionalProperties:
+ nullable: true
+ type: object
+ akashml:
+ additionalProperties:
+ nullable: true
+ type: object
+ alibaba:
+ additionalProperties:
+ nullable: true
+ type: object
+ amazon-bedrock:
+ additionalProperties:
+ nullable: true
+ type: object
+ amazon-nova:
+ additionalProperties:
+ nullable: true
+ type: object
+ ambient:
+ additionalProperties:
+ nullable: true
+ type: object
+ anthropic:
+ additionalProperties:
+ nullable: true
+ type: object
+ anyscale:
+ additionalProperties:
+ nullable: true
+ type: object
+ arcee-ai:
+ additionalProperties:
+ nullable: true
+ type: object
+ atlas-cloud:
+ additionalProperties:
+ nullable: true
+ type: object
+ atoma:
+ additionalProperties:
+ nullable: true
+ type: object
+ avian:
+ additionalProperties:
+ nullable: true
+ type: object
+ azure:
+ additionalProperties:
+ nullable: true
+ type: object
+ baseten:
+ additionalProperties:
+ nullable: true
+ type: object
+ black-forest-labs:
+ additionalProperties:
+ nullable: true
+ type: object
+ byteplus:
+ additionalProperties:
+ nullable: true
+ type: object
+ centml:
+ additionalProperties:
+ nullable: true
+ type: object
+ cerebras:
+ additionalProperties:
+ nullable: true
+ type: object
+ chutes:
+ additionalProperties:
+ nullable: true
+ type: object
+ cirrascale:
+ additionalProperties:
+ nullable: true
+ type: object
+ clarifai:
+ additionalProperties:
+ nullable: true
+ type: object
+ cloudflare:
+ additionalProperties:
+ nullable: true
+ type: object
+ cohere:
+ additionalProperties:
+ nullable: true
+ type: object
+ crofai:
+ additionalProperties:
+ nullable: true
+ type: object
+ crusoe:
+ additionalProperties:
+ nullable: true
+ type: object
+ deepinfra:
+ additionalProperties:
+ nullable: true
+ type: object
+ deepseek:
+ additionalProperties:
+ nullable: true
+ type: object
+ enfer:
+ additionalProperties:
+ nullable: true
+ type: object
+ fake-provider:
+ additionalProperties:
+ nullable: true
+ type: object
+ featherless:
+ additionalProperties:
+ nullable: true
+ type: object
+ fireworks:
+ additionalProperties:
+ nullable: true
+ type: object
+ friendli:
+ additionalProperties:
+ nullable: true
+ type: object
+ gmicloud:
+ additionalProperties:
+ nullable: true
+ type: object
+ google-ai-studio:
+ additionalProperties:
+ nullable: true
+ type: object
+ google-vertex:
+ additionalProperties:
+ nullable: true
+ type: object
+ gopomelo:
+ additionalProperties:
+ nullable: true
+ type: object
+ groq:
+ additionalProperties:
+ nullable: true
+ type: object
+ huggingface:
+ additionalProperties:
+ nullable: true
+ type: object
+ hyperbolic:
+ additionalProperties:
+ nullable: true
+ type: object
+ hyperbolic-quantized:
+ additionalProperties:
+ nullable: true
+ type: object
+ inception:
+ additionalProperties:
+ nullable: true
+ type: object
+ inceptron:
+ additionalProperties:
+ nullable: true
+ type: object
+ inference-net:
+ additionalProperties:
+ nullable: true
+ type: object
+ infermatic:
+ additionalProperties:
+ nullable: true
+ type: object
+ inflection:
+ additionalProperties:
+ nullable: true
+ type: object
+ inocloud:
+ additionalProperties:
+ nullable: true
+ type: object
+ io-net:
+ additionalProperties:
+ nullable: true
+ type: object
+ ionstream:
+ additionalProperties:
+ nullable: true
+ type: object
+ klusterai:
+ additionalProperties:
+ nullable: true
+ type: object
+ lambda:
+ additionalProperties:
+ nullable: true
+ type: object
+ lepton:
+ additionalProperties:
+ nullable: true
+ type: object
+ liquid:
+ additionalProperties:
+ nullable: true
+ type: object
+ lynn:
+ additionalProperties:
+ nullable: true
+ type: object
+ lynn-private:
+ additionalProperties:
+ nullable: true
+ type: object
+ mancer:
+ additionalProperties:
+ nullable: true
+ type: object
+ mancer-old:
+ additionalProperties:
+ nullable: true
+ type: object
+ mara:
+ additionalProperties:
+ nullable: true
+ type: object
+ meta:
+ additionalProperties:
+ nullable: true
+ type: object
+ minimax:
+ additionalProperties:
+ nullable: true
+ type: object
+ mistral:
+ additionalProperties:
+ nullable: true
+ type: object
+ modal:
+ additionalProperties:
+ nullable: true
+ type: object
+ modelrun:
+ additionalProperties:
+ nullable: true
+ type: object
+ modular:
+ additionalProperties:
+ nullable: true
+ type: object
+ moonshotai:
+ additionalProperties:
+ nullable: true
+ type: object
+ morph:
+ additionalProperties:
+ nullable: true
+ type: object
+ ncompass:
+ additionalProperties:
+ nullable: true
+ type: object
+ nebius:
+ additionalProperties:
+ nullable: true
+ type: object
+ nextbit:
+ additionalProperties:
+ nullable: true
+ type: object
+ nineteen:
+ additionalProperties:
+ nullable: true
+ type: object
+ novita:
+ additionalProperties:
+ nullable: true
+ type: object
+ nvidia:
+ additionalProperties:
+ nullable: true
+ type: object
+ octoai:
+ additionalProperties:
+ nullable: true
+ type: object
+ open-inference:
+ additionalProperties:
+ nullable: true
+ type: object
+ openai:
+ additionalProperties:
+ nullable: true
+ type: object
+ parasail:
+ additionalProperties:
+ nullable: true
+ type: object
+ perplexity:
+ additionalProperties:
+ nullable: true
+ type: object
+ phala:
+ additionalProperties:
+ nullable: true
+ type: object
+ recursal:
+ additionalProperties:
+ nullable: true
+ type: object
+ reflection:
+ additionalProperties:
+ nullable: true
+ type: object
+ reka:
+ additionalProperties:
+ nullable: true
+ type: object
+ relace:
+ additionalProperties:
+ nullable: true
+ type: object
+ replicate:
+ additionalProperties:
+ nullable: true
+ type: object
+ sambanova:
+ additionalProperties:
+ nullable: true
+ type: object
+ sambanova-cloaked:
+ additionalProperties:
+ nullable: true
+ type: object
+ seed:
+ additionalProperties:
+ nullable: true
+ type: object
+ sf-compute:
+ additionalProperties:
+ nullable: true
+ type: object
+ siliconflow:
+ additionalProperties:
+ nullable: true
+ type: object
+ sourceful:
+ additionalProperties:
+ nullable: true
+ type: object
+ stealth:
+ additionalProperties:
+ nullable: true
+ type: object
+ stepfun:
+ additionalProperties:
+ nullable: true
+ type: object
+ streamlake:
+ additionalProperties:
+ nullable: true
+ type: object
+ switchpoint:
+ additionalProperties:
+ nullable: true
+ type: object
+ targon:
+ additionalProperties:
+ nullable: true
+ type: object
+ together:
+ additionalProperties:
+ nullable: true
+ type: object
+ together-lite:
+ additionalProperties:
+ nullable: true
+ type: object
+ ubicloud:
+ additionalProperties:
+ nullable: true
+ type: object
+ upstage:
+ additionalProperties:
+ nullable: true
+ type: object
+ venice:
+ additionalProperties:
+ nullable: true
+ type: object
+ wandb:
+ additionalProperties:
+ nullable: true
+ type: object
+ xai:
+ additionalProperties:
+ nullable: true
+ type: object
+ xiaomi:
+ additionalProperties:
+ nullable: true
+ type: object
+ z-ai:
+ additionalProperties:
+ nullable: true
+ type: object
+ type: object
+ type: object
+ resolution:
+ description: Resolution of the generated video
+ enum:
+ - 480p
+ - 720p
+ - 1080p
+ - 1K
+ - 2K
+ - 4K
+ example: 720p
+ type: string
+ seed:
+ description: >-
+ If specified, the generation will sample deterministically, such that repeated requests with the same seed
+ and parameters should return the same result. Determinism is not guaranteed for all providers.
+ type: integer
+ size:
+ description: >-
+ Exact pixel dimensions of the generated video in "WIDTHxHEIGHT" format (e.g. "1280x720"). Interchangeable
+ with resolution + aspect_ratio.
+ example: 1280x720
+ type: string
+ required:
+ - prompt
+ - model
+ type: object
+ VideoGenerationResponse:
+ example:
+ generation_id: gen-xyz789
+ id: job-abc123
+ polling_url: /api/v1/videos/job-abc123
+ status: pending
+ properties:
+ error:
+ type: string
+ generation_id:
+ description: The generation ID associated with this video generation job. Available once the job has been processed.
+ type: string
+ id:
+ type: string
+ polling_url:
+ type: string
+ status:
+ enum:
+ - pending
+ - in_progress
+ - completed
+ - failed
+ - cancelled
+ - expired
+ type: string
+ unsigned_urls:
+ items:
+ type: string
+ type: array
+ usage:
+ $ref: '#/components/schemas/VideoGenerationUsage'
+ required:
+ - id
+ - polling_url
+ - status
+ type: object
+ VideoGenerationUsage:
+ description: Usage and cost information for the video generation. Available once the job has completed.
+ example:
+ cost: 0.5
+ is_byok: false
+ properties:
+ cost:
+ description: The cost of the video generation in USD.
+ format: double
+ type: number
+ is_byok:
+ description: Whether the request was made using a Bring Your Own Key configuration.
+ type: boolean
+ type: object
+ VideoModel:
+ example:
+ allowed_passthrough_parameters: []
+ canonical_slug: google/veo-3.1
+ created: 1700000000
+ description: Google video generation model
+ id: google/veo-3.1
+ name: Veo 3.1
+ pricing_skus:
+ generate: '0.50'
+ supported_aspect_ratios:
+ - '16:9'
+ supported_durations:
+ - 5
+ - 8
+ supported_resolutions:
+ - 720p
+ supported_sizes: null
+ properties:
+ allowed_passthrough_parameters:
+ description: List of parameters that are allowed to be passed through to the provider
+ items:
+ type: string
+ type: array
+ canonical_slug:
+ description: Canonical slug for the model
+ example: openai/gpt-4
+ type: string
+ created:
+ description: Unix timestamp of when the model was created
+ example: 1692901234
+ type: integer
+ description:
+ description: Description of the model
+ example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ type: string
+ hugging_face_id:
+ description: Hugging Face model identifier, if applicable
+ example: microsoft/DialoGPT-medium
+ nullable: true
+ type: string
+ id:
+ description: Unique identifier for the model
+ example: openai/gpt-4
+ type: string
+ name:
+ description: Display name of the model
+ example: GPT-4
+ type: string
+ pricing_skus:
+ additionalProperties:
+ type: string
+ description: Pricing SKUs with provider prefix stripped, values as strings
+ nullable: true
+ type: object
+ supported_aspect_ratios:
+ description: Supported output aspect ratios
+ items:
+ enum:
+ - '16:9'
+ - '9:16'
+ - '1:1'
+ - '4:3'
+ - '3:4'
+ - '21:9'
+ - '9:21'
+ type: string
+ nullable: true
+ type: array
+ supported_durations:
+ description: Supported video durations in seconds
+ items:
+ type: integer
+ nullable: true
+ type: array
+ supported_resolutions:
+ description: Supported output resolutions
+ items:
+ enum:
+ - 480p
+ - 720p
+ - 1080p
+ - 1K
+ - 2K
+ - 4K
+ type: string
+ nullable: true
+ type: array
+ supported_sizes:
+ description: Supported output sizes (width x height)
+ items:
+ enum:
+ - 480x480
+ - 480x640
+ - 480x854
+ - 480x1120
+ - 640x480
+ - 720x720
+ - 720x960
+ - 720x1280
+ - 720x1680
+ - 854x480
+ - 960x720
+ - 1080x1080
+ - 1080x1440
+ - 1080x1920
+ - 1080x2520
+ - 1120x480
+ - 1280x720
+ - 1440x1080
+ - 1680x720
+ - 1920x1080
+ - 2160x2160
+ - 2160x2880
+ - 2160x3840
+ - 2160x5040
+ - 2520x1080
+ - 2880x2160
+ - 3840x2160
+ - 5040x2160
+ type: string
+ nullable: true
+ type: array
+ required:
+ - id
+ - canonical_slug
+ - name
+ - created
+ - supported_resolutions
+ - supported_aspect_ratios
+ - supported_sizes
+ - supported_durations
+ - allowed_passthrough_parameters
+ type: object
+ VideoModelsListResponse:
+ example:
+ data:
+ - allowed_passthrough_parameters: []
+ canonical_slug: google/veo-3.1
+ created: 1700000000
+ description: Google video generation model
+ id: google/veo-3.1
+ name: Veo 3.1
+ pricing_skus:
+ generate: '0.50'
+ supported_aspect_ratios:
+ - '16:9'
+ supported_durations:
+ - 5
+ - 8
+ supported_resolutions:
+ - 720p
+ supported_sizes: null
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/VideoModel'
+ type: array
+ required:
+ - data
+ type: object
+ WebSearchCallCompletedEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesSearchCompleted'
+ - properties: {}
+ type: object
+ description: Web search call completed
+ example:
+ item_id: ws-123
+ output_index: 0
+ sequence_number: 3
+ type: response.web_search_call.completed
+ WebSearchCallInProgressEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesWebSearchCallInProgress'
+ - properties: {}
+ type: object
+ description: Web search call in progress
+ example:
+ item_id: ws-123
+ output_index: 0
+ sequence_number: 1
+ type: response.web_search_call.in_progress
+ WebSearchCallSearchingEvent:
+ allOf:
+ - $ref: '#/components/schemas/OpenAIResponsesWebSearchCallSearching'
+ - properties: {}
+ type: object
+ description: Web search call is searching
+ example:
+ item_id: ws-123
+ output_index: 0
+ sequence_number: 2
+ type: response.web_search_call.searching
+ WebSearchConfig:
+ example:
+ max_results: 5
+ search_context_size: medium
+ properties:
+ allowed_domains:
+ description: >-
+ Limit search results to these domains. Supported by Exa, Parallel, and most native providers (Anthropic,
+ OpenAI, xAI). Not supported with Firecrawl or Perplexity.
+ items:
+ type: string
+ type: array
+ engine:
+ $ref: '#/components/schemas/WebSearchEngineEnum'
+ excluded_domains:
+ description: >-
+ Exclude search results from these domains. Supported by Exa, Parallel, Anthropic, and xAI. Not supported
+ with Firecrawl, OpenAI (silently ignored), or Perplexity.
+ items:
+ type: string
+ type: array
+ max_results:
+ description: >-
+ Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
+ Parallel engines; ignored with native provider search.
+ example: 5
+ type: integer
+ max_total_results:
+ description: >-
+ Maximum total number of search results across all search calls in a single request. Once this limit is
+ reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic
+ loops.
+ example: 20
+ type: integer
+ search_context_size:
+ $ref: '#/components/schemas/SearchQualityLevel'
+ user_location:
+ $ref: '#/components/schemas/WebSearchUserLocationServerTool'
+ type: object
+ WebSearchDomainFilter:
+ example:
+ allowed_domains:
+ - example.com
+ excluded_domains:
+ - spam.com
+ nullable: true
+ properties:
+ allowed_domains:
+ items:
+ type: string
+ nullable: true
+ type: array
+ excluded_domains:
+ items:
+ type: string
+ nullable: true
+ type: array
+ type: object
+ WebSearchEngine:
+ description: The search engine to use for web search.
+ enum:
+ - native
+ - exa
+ - firecrawl
+ - parallel
+ example: exa
+ type: string
+ WebSearchEngineEnum:
+ description: >-
+ Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa. "native"
+ forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl (requires
+ BYOK). "parallel" uses the Parallel search API.
+ enum:
+ - auto
+ - native
+ - exa
+ - firecrawl
+ - parallel
+ example: auto
+ type: string
+ WebSearchPlugin:
+ example:
+ enabled: true
+ id: web
+ max_results: 5
+ properties:
+ enabled:
+ description: Set to false to disable the web-search plugin for this request. Defaults to true.
+ type: boolean
+ engine:
+ $ref: '#/components/schemas/WebSearchEngine'
+ exclude_domains:
+ description: >-
+ A list of domains to exclude from web search results. Supports wildcards (e.g. "*.substack.com") and path
+ filtering (e.g. "openai.com/blog").
+ example:
+ - example.com
+ - '*.substack.com'
+ - openai.com/blog
+ items:
+ type: string
+ type: array
+ id:
+ enum:
+ - web
+ type: string
+ include_domains:
+ description: >-
+ A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com") and path
+ filtering (e.g. "openai.com/blog").
+ example:
+ - example.com
+ - '*.substack.com'
+ - openai.com/blog
+ items:
+ type: string
+ type: array
+ max_results:
+ type: integer
+ search_prompt:
+ type: string
+ required:
+ - id
+ type: object
+ WebSearchServerTool:
+ description: Web search tool configuration (2025-08-26 version)
+ example:
+ engine: auto
+ filters:
+ allowed_domains:
+ - example.com
+ type: web_search_2025_08_26
+ properties:
+ engine:
+ $ref: '#/components/schemas/WebSearchEngineEnum'
+ filters:
+ $ref: '#/components/schemas/WebSearchDomainFilter'
+ max_results:
+ description: >-
+ Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, and
+ Parallel engines; ignored with native provider search.
+ example: 5
+ type: integer
+ search_context_size:
+ $ref: '#/components/schemas/SearchContextSizeEnum'
+ type:
+ enum:
+ - web_search_2025_08_26
+ type: string
+ user_location:
+ $ref: '#/components/schemas/WebSearchUserLocation'
+ required:
+ - type
+ type: object
+ WebSearchServerTool_OpenRouter:
+ description: 'OpenRouter built-in server tool: searches the web for current information'
+ example:
+ parameters:
+ max_results: 5
+ type: openrouter:web_search
+ properties:
+ parameters:
+ properties:
+ max_results:
+ description: Maximum number of search results to return per search call. Defaults to 5.
+ example: 5
+ type: integer
+ max_total_results:
+ description: >-
+ Maximum total number of search results across all search calls in a single request. Once this limit is
+ reached, the tool will stop returning new results.
+ example: 20
+ type: integer
+ type: object
+ type:
+ enum:
+ - openrouter:web_search
+ type: string
+ required:
+ - type
+ type: object
+ WebSearchSource:
+ example:
+ type: url
+ url: https://example.com/article
+ properties:
+ type:
+ enum:
+ - url
+ type: string
+ url:
+ type: string
+ required:
+ - type
+ - url
+ type: object
+ WebSearchStatus:
+ enum:
+ - completed
+ - searching
+ - in_progress
+ - failed
+ example: completed
+ type: string
+ WebSearchUserLocation:
+ description: User location information for web search
+ example:
+ city: San Francisco
+ country: USA
+ region: California
+ timezone: America/Los_Angeles
+ type: approximate
+ nullable: true
+ properties:
+ city:
+ nullable: true
+ type: string
+ country:
+ nullable: true
+ type: string
+ region:
+ nullable: true
+ type: string
+ timezone:
+ nullable: true
+ type: string
+ type:
+ enum:
+ - approximate
+ type: string
+ type: object
+ WebSearchUserLocationServerTool:
+ description: Approximate user location for location-biased results.
+ example:
+ city: San Francisco
+ country: US
+ region: California
+ timezone: America/Los_Angeles
+ type: approximate
+ properties:
+ city:
+ type: string
+ country:
+ type: string
+ region:
+ type: string
+ timezone:
+ type: string
+ type:
+ enum:
+ - approximate
+ type: string
+ type: object
+ securitySchemes:
+ apiKey:
+ description: API key as bearer token in Authorization header
+ scheme: bearer
+ type: http
+ bearer:
+ description: API key as bearer token in Authorization header
+ scheme: bearer
+ type: http
+externalDocs:
+ description: OpenRouter Documentation
+ url: https://openrouter.ai/docs
+info:
+ contact:
+ email: support@openrouter.ai
+ name: OpenRouter Support
+ url: https://openrouter.ai/docs
+ description: OpenAI-compatible API with additional OpenRouter features
+ license:
+ name: MIT
+ url: https://opensource.org/licenses/MIT
+ title: OpenRouter API
+ version: 1.0.0
+openapi: 3.1.0
+paths:
+ /activity:
+ get:
+ description: >-
+ Returns user activity data grouped by endpoint for the last 30 (completed) UTC days. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: getUserActivity
+ parameters:
+ - description: Filter by a single UTC date in the last 30 days (YYYY-MM-DD format).
+ in: query
+ name: date
+ required: false
+ schema:
+ description: Filter by a single UTC date in the last 30 days (YYYY-MM-DD format).
+ example: '2025-08-24'
+ type: string
+ - description: Filter by API key hash (SHA-256 hex string, as returned by the keys API).
+ in: query
+ name: api_key_hash
+ required: false
+ schema:
+ description: Filter by API key hash (SHA-256 hex string, as returned by the keys API).
+ example: abc123def456...
+ type: string
+ - description: Filter by org member user ID. Only applicable for organization accounts.
+ in: query
+ name: user_id
+ required: false
+ schema:
+ description: Filter by org member user ID. Only applicable for organization accounts.
+ example: user_abc123
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - byok_usage_inference: 0.012
+ completion_tokens: 125
+ date: '2025-08-24'
+ endpoint_id: 550e8400-e29b-41d4-a716-446655440000
+ model: openai/gpt-4.1
+ model_permaslug: openai/gpt-4.1-2025-04-14
+ prompt_tokens: 50
+ provider_name: OpenAI
+ reasoning_tokens: 25
+ requests: 5
+ usage: 0.015
+ schema:
+ $ref: '#/components/schemas/ActivityResponse'
+ description: Returns user activity data grouped by endpoint
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '403':
+ content:
+ application/json:
+ example:
+ error:
+ code: 403
+ message: Only management keys can perform this operation
+ schema:
+ $ref: '#/components/schemas/ForbiddenResponse'
+ description: Forbidden - Authentication successful but insufficient permissions
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Get user activity grouped by endpoint
+ tags:
+ - Analytics
+ /auth/keys:
+ post:
+ description: Exchange an authorization code from the PKCE flow for a user-controlled API key
+ operationId: exchangeAuthCodeForAPIKey
+ requestBody:
+ content:
+ application/json:
+ example:
+ code: auth_code_abc123def456
+ code_challenge_method: S256
+ code_verifier: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
+ schema:
+ example:
+ code: auth_code_abc123def456
+ code_challenge_method: S256
+ code_verifier: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
+ properties:
+ code:
+ description: The authorization code received from the OAuth redirect
+ example: auth_code_abc123def456
+ type: string
+ code_challenge_method:
+ description: The method used to generate the code challenge
+ enum:
+ - S256
+ - plain
+ - null
+ example: S256
+ nullable: true
+ type: string
+ code_verifier:
+ description: The code verifier if code_challenge was used in the authorization request
+ example: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
+ type: string
+ required:
+ - code
+ type: object
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ key: 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
+ user_id: user_2yOPcMpKoQhcd4bVgSMlELRaIah
+ schema:
+ example:
+ key: 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
+ user_id: user_2yOPcMpKoQhcd4bVgSMlELRaIah
+ properties:
+ key:
+ description: The API key to use for OpenRouter requests
+ example: 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
+ type: string
+ user_id:
+ description: User ID associated with the API key
+ example: user_2yOPcMpKoQhcd4bVgSMlELRaIah
+ nullable: true
+ type: string
+ required:
+ - key
+ - user_id
+ type: object
+ description: Successfully exchanged code for an API key
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '403':
+ content:
+ application/json:
+ example:
+ error:
+ code: 403
+ message: Only management keys can perform this operation
+ schema:
+ $ref: '#/components/schemas/ForbiddenResponse'
+ description: Forbidden - Authentication successful but insufficient permissions
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Exchange authorization code for API key
+ tags:
+ - OAuth
+ /auth/keys/code:
+ post:
+ description: Create an authorization code for the PKCE flow to generate a user-controlled API key
+ operationId: createAuthKeysCode
+ requestBody:
+ content:
+ application/json:
+ example:
+ callback_url: https://myapp.com/auth/callback
+ code_challenge: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
+ code_challenge_method: S256
+ limit: 100
+ schema:
+ example:
+ callback_url: https://myapp.com/auth/callback
+ code_challenge: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
+ code_challenge_method: S256
+ limit: 100
+ properties:
+ callback_url:
+ description: >-
+ The callback URL to redirect to after authorization. Note, only https URLs on ports 443 and 3000 are
+ allowed.
+ example: https://myapp.com/auth/callback
+ format: uri
+ type: string
+ code_challenge:
+ description: PKCE code challenge for enhanced security
+ example: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
+ type: string
+ code_challenge_method:
+ description: The method used to generate the code challenge
+ enum:
+ - S256
+ - plain
+ example: S256
+ type: string
+ expires_at:
+ description: Optional expiration time for the API key to be created
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
+ type: string
+ key_label:
+ description: Optional custom label for the API key. Defaults to the app name if not provided.
+ example: My Custom Key
+ maxLength: 100
+ type: string
+ limit:
+ description: Credit limit for the API key to be created
+ example: 100
+ format: double
+ type: number
+ spawn_agent:
+ description: Agent identifier for spawn telemetry
+ example: my-agent
+ type: string
+ x-fern-ignore: true
+ x-speakeasy-ignore: true
+ spawn_cloud:
+ description: Cloud identifier for spawn telemetry
+ example: aws-us-east-1
+ type: string
+ x-fern-ignore: true
+ x-speakeasy-ignore: true
+ usage_limit_type:
+ description: Optional credit limit reset interval. When set, the credit limit resets on this interval.
+ enum:
+ - daily
+ - weekly
+ - monthly
+ example: monthly
+ type: string
+ required:
+ - callback_url
+ type: object
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ app_id: 12345
+ created_at: '2025-08-24T10:30:00Z'
+ id: auth_code_xyz789
+ schema:
+ example:
+ data:
+ app_id: 12345
+ created_at: '2025-08-24T10:30:00Z'
+ id: auth_code_xyz789
+ properties:
+ data:
+ description: Auth code data
+ example:
+ app_id: 12345
+ created_at: '2025-08-24T10:30:00Z'
+ id: auth_code_xyz789
+ properties:
+ app_id:
+ description: The application ID associated with this auth code
+ example: 12345
+ type: integer
+ created_at:
+ description: ISO 8601 timestamp of when the auth code was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ id:
+ description: The authorization code ID to use in the exchange request
+ example: auth_code_xyz789
+ type: string
+ required:
+ - id
+ - app_id
+ - created_at
+ type: object
+ required:
+ - data
+ type: object
+ description: Successfully created authorization code
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '409':
+ content:
+ application/json:
+ example:
+ error:
+ code: 409
+ message: Resource conflict. Please try again later.
+ schema:
+ $ref: '#/components/schemas/ConflictResponse'
+ description: Conflict - Resource conflict or concurrent modification
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Create authorization code
+ tags:
+ - OAuth
+ x-speakeasy-name-override: createAuthCode
+ /chat/completions:
+ post:
+ description: >-
+ Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming
+ modes.
+ operationId: sendChatCompletionRequest
+ requestBody:
+ content:
+ application/json:
+ example:
+ max_tokens: 150
+ messages:
+ - content: You are a helpful assistant.
+ role: system
+ - content: What is the capital of France?
+ role: user
+ model: openai/gpt-4
+ temperature: 0.7
+ schema:
+ $ref: '#/components/schemas/ChatRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ choices:
+ - finish_reason: stop
+ index: 0
+ message:
+ content: The capital of France is Paris.
+ role: assistant
+ created: 1677652288
+ id: chatcmpl-123
+ model: openai/gpt-4
+ object: chat.completion
+ usage:
+ completion_tokens: 10
+ prompt_tokens: 25
+ total_tokens: 35
+ schema:
+ $ref: '#/components/schemas/ChatResult'
+ text/event-stream:
+ example:
+ data:
+ choices:
+ - delta:
+ content: Hello
+ role: assistant
+ finish_reason: null
+ index: 0
+ created: 1677652288
+ id: chatcmpl-123
+ model: openai/gpt-4
+ object: chat.completion.chunk
+ schema:
+ properties:
+ data:
+ $ref: '#/components/schemas/ChatStreamChunk'
+ required:
+ - data
+ type: object
+ x-speakeasy-sse-sentinel: '[DONE]'
+ description: Successful chat completion response
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '402':
+ content:
+ application/json:
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ schema:
+ $ref: '#/components/schemas/PaymentRequiredResponse'
+ description: Payment Required - Insufficient credits or quota to complete request
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '408':
+ content:
+ application/json:
+ example:
+ error:
+ code: 408
+ message: Operation timed out. Please try again later.
+ schema:
+ $ref: '#/components/schemas/RequestTimeoutResponse'
+ description: Request Timeout - Operation exceeded time limit
+ '413':
+ content:
+ application/json:
+ example:
+ error:
+ code: 413
+ message: Request payload too large
+ schema:
+ $ref: '#/components/schemas/PayloadTooLargeResponse'
+ description: Payload Too Large - Request payload exceeds size limits
+ '422':
+ content:
+ application/json:
+ example:
+ error:
+ code: 422
+ message: Invalid argument
+ schema:
+ $ref: '#/components/schemas/UnprocessableEntityResponse'
+ description: Unprocessable Entity - Semantic validation failure
+ '429':
+ content:
+ application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ schema:
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ '502':
+ content:
+ application/json:
+ example:
+ error:
+ code: 502
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/BadGatewayResponse'
+ description: Bad Gateway - Provider/upstream API failure
+ '503':
+ content:
+ application/json:
+ example:
+ error:
+ code: 503
+ message: Service temporarily unavailable
+ schema:
+ $ref: '#/components/schemas/ServiceUnavailableResponse'
+ description: Service Unavailable - Service temporarily unavailable
+ '524':
+ content:
+ application/json:
+ example:
+ error:
+ code: 524
+ message: Request timed out. Please try again later.
+ schema:
+ $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
+ description: Infrastructure Timeout - Provider request timed out at edge network
+ '529':
+ content:
+ application/json:
+ example:
+ error:
+ code: 529
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/ProviderOverloadedResponse'
+ description: Provider Overloaded - Provider is temporarily overloaded
+ summary: Create a chat completion
+ tags:
+ - Chat
+ x-speakeasy-group: chat
+ x-speakeasy-name-override: send
+ x-speakeasy-stream-request-field: stream
+ /credits:
+ get:
+ description: >-
+ Get total credits purchased and used for the authenticated user. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: getCredits
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ total_credits: 100.5
+ total_usage: 25.75
+ schema:
+ description: Total credits purchased and used
+ example:
+ data:
+ total_credits: 100.5
+ total_usage: 25.75
+ properties:
+ data:
+ example:
+ total_credits: 100.5
+ total_usage: 25.75
+ properties:
+ total_credits:
+ description: Total credits purchased
+ example: 100.5
+ format: double
+ type: number
+ total_usage:
+ description: Total credits used
+ example: 25.75
+ format: double
+ type: number
+ required:
+ - total_credits
+ - total_usage
+ type: object
+ required:
+ - data
+ type: object
+ description: Returns the total credits purchased and used
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '403':
+ content:
+ application/json:
+ example:
+ error:
+ code: 403
+ message: Only management keys can perform this operation
+ schema:
+ $ref: '#/components/schemas/ForbiddenResponse'
+ description: Forbidden - Authentication successful but insufficient permissions
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Get remaining credits
+ tags:
+ - Credits
+ x-speakeasy-name-override: getCredits
+ /credits/coinbase:
+ post:
+ deprecated: true
+ description: >-
+ Deprecated. The Coinbase APIs used by this endpoint have been deprecated, so Coinbase Commerce charges have been
+ removed. Use the web credits purchase flow instead.
+ operationId: createCoinbaseCharge
+ responses:
+ '200':
+ description: This endpoint is deprecated and will never return a 200 response.
+ '410':
+ content:
+ application/json:
+ example:
+ error:
+ code: 410
+ message: >-
+ The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API
+ has been removed. Use the web credits purchase flow instead.
+ schema:
+ $ref: '#/components/schemas/GoneResponse'
+ description: Gone - Endpoint has been permanently removed or deprecated
+ security: []
+ summary: Deprecated Coinbase Commerce charge endpoint
+ tags:
+ - Credits
+ x-fern-ignore: true
+ x-speakeasy-ignore: true
+ x-speakeasy-name-override: createCoinbaseCharge
+ /embeddings:
+ post:
+ description: Submits an embedding request to the embeddings router
+ operationId: createEmbeddings
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: Embeddings request input
+ example:
+ dimensions: 1536
+ input: The quick brown fox jumps over the lazy dog
+ model: openai/text-embedding-3-small
+ properties:
+ dimensions:
+ description: The number of dimensions for the output embeddings
+ example: 1536
+ exclusiveMinimum: 0
+ minimum: 0
+ type: integer
+ encoding_format:
+ description: The format of the output embeddings
+ enum:
+ - float
+ - base64
+ example: float
+ type: string
+ input:
+ anyOf:
+ - type: string
+ - items:
+ type: string
+ type: array
+ - items:
+ type: number
+ type: array
+ - items:
+ items:
+ type: number
+ type: array
+ type: array
+ - items:
+ properties:
+ content:
+ items:
+ oneOf:
+ - properties:
+ text:
+ type: string
+ type:
+ enum:
+ - text
+ type: string
+ required:
+ - type
+ - text
+ type: object
+ - properties:
+ image_url:
+ properties:
+ url:
+ type: string
+ required:
+ - url
+ type: object
+ type:
+ enum:
+ - image_url
+ type: string
+ required:
+ - type
+ - image_url
+ type: object
+ type: array
+ required:
+ - content
+ type: object
+ type: array
+ description: Text, token, or multimodal input(s) to embed
+ example: The quick brown fox jumps over the lazy dog
+ input_type:
+ description: The type of input (e.g. search_query, search_document)
+ example: search_query
+ type: string
+ model:
+ description: The model to use for embeddings
+ example: openai/text-embedding-3-small
+ type: string
+ provider:
+ allOf:
+ - $ref: '#/components/schemas/ProviderPreferences'
+ - description: Provider routing preferences for the request.
+ user:
+ description: A unique identifier for the end-user
+ example: user-1234
+ type: string
+ required:
+ - input
+ - model
+ type: object
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ description: Embeddings response containing embedding vectors
+ example:
+ data:
+ - embedding:
+ - 0.0023064255
+ - -0.009327292
+ - 0.015797347
+ index: 0
+ object: embedding
+ model: openai/text-embedding-3-small
+ object: list
+ usage:
+ prompt_tokens: 8
+ total_tokens: 8
+ properties:
+ data:
+ description: List of embedding objects
+ example:
+ - embedding:
+ - 0.0023064255
+ - -0.009327292
+ - 0.015797347
+ index: 0
+ object: embedding
+ items:
+ description: A single embedding object
+ example:
+ embedding:
+ - 0.0023064255
+ - -0.009327292
+ - 0.015797347
+ index: 0
+ object: embedding
+ properties:
+ embedding:
+ anyOf:
+ - items:
+ type: number
+ type: array
+ - type: string
+ description: Embedding vector as an array of floats or a base64 string
example:
- - US
- - IE
+ - 0.0023064255
+ - -0.009327292
+ - 0.015797347
+ index:
+ description: Index of the embedding in the input list
+ example: 0
+ type: integer
+ object:
+ enum:
+ - embedding
+ type: string
required:
- - name
- - slug
- - privacy_policy_url
- example:
- name: OpenAI
- slug: openai
- privacy_policy_url: https://openai.com/privacy
- terms_of_service_url: https://openai.com/terms
- status_page_url: https://status.openai.com
- headquarters: US
- datacenters:
- - US
- - IE
+ - object
+ - embedding
+ type: object
+ type: array
+ id:
+ description: Unique identifier for the embeddings response
+ example: embd-1234567890
+ type: string
+ model:
+ description: The model used for embeddings
+ example: openai/text-embedding-3-small
+ type: string
+ object:
+ enum:
+ - list
+ type: string
+ usage:
+ description: Token usage statistics
+ example:
+ prompt_tokens: 8
+ total_tokens: 8
+ properties:
+ cost:
+ description: Cost of the request in credits
+ example: 0.0001
+ format: double
+ type: number
+ prompt_tokens:
+ description: Number of tokens in the input
+ example: 8
+ type: integer
+ total_tokens:
+ description: Total number of tokens used
+ example: 8
+ type: integer
+ required:
+ - prompt_tokens
+ - total_tokens
+ type: object
+ required:
+ - object
+ - data
+ - model
+ type: object
+ text/event-stream:
+ example: 'data: [DONE]'
+ schema:
+ description: Not used for embeddings - embeddings do not support streaming
+ type: string
+ x-speakeasy-sse-sentinel: '[DONE]'
+ description: Embedding response
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '402':
+ content:
+ application/json:
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ schema:
+ $ref: '#/components/schemas/PaymentRequiredResponse'
+ description: Payment Required - Insufficient credits or quota to complete request
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '429':
+ content:
+ application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ schema:
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ '502':
+ content:
+ application/json:
+ example:
+ error:
+ code: 502
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/BadGatewayResponse'
+ description: Bad Gateway - Provider/upstream API failure
+ '503':
+ content:
+ application/json:
+ example:
+ error:
+ code: 503
+ message: Service temporarily unavailable
+ schema:
+ $ref: '#/components/schemas/ServiceUnavailableResponse'
+ description: Service Unavailable - Service temporarily unavailable
+ '524':
+ content:
+ application/json:
+ example:
+ error:
+ code: 524
+ message: Request timed out. Please try again later.
+ schema:
+ $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
+ description: Infrastructure Timeout - Provider request timed out at edge network
+ '529':
+ content:
+ application/json:
+ example:
+ error:
+ code: 529
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/ProviderOverloadedResponse'
+ description: Provider Overloaded - Provider is temporarily overloaded
+ summary: Submit an embedding request
+ tags:
+ - Embeddings
+ x-speakeasy-name-override: generate
+ /embeddings/models:
+ get:
+ description: Returns a list of all available embeddings models and their properties
+ operationId: listEmbeddingsModels
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - architecture:
+ input_modalities:
+ - text
+ instruct_type: null
+ modality: text->text
+ output_modalities:
+ - embeddings
+ tokenizer: GPT
+ canonical_slug: openai/text-embedding-3-small
+ context_length: 8192
+ created: 1692901234
+ default_parameters: null
+ description: OpenAI text embedding model optimized for performance.
+ expiration_date: null
+ id: openai/text-embedding-3-small
+ knowledge_cutoff: null
+ links:
+ details: /api/v1/models/openai/text-embedding-3-small/endpoints
+ name: Text Embedding 3 Small
+ per_request_limits: null
+ pricing:
+ completion: '0'
+ image: '0'
+ prompt: '0.00000002'
+ request: '0'
+ supported_parameters: []
+ top_provider:
+ context_length: 8192
+ is_moderated: false
+ max_completion_tokens: null
+ schema:
+ $ref: '#/components/schemas/ModelsListResponse'
+ description: Returns a list of embeddings models
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List all embeddings models
+ tags:
+ - Embeddings
+ x-speakeasy-name-override: listModels
+ /endpoints/zdr:
+ get:
+ operationId: listEndpointsZdr
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - context_length: 8192
+ latency_last_30m:
+ p50: 0.25
+ p75: 0.35
+ p90: 0.48
+ p99: 0.85
+ max_completion_tokens: 4096
+ max_prompt_tokens: 8192
+ model_id: openai/gpt-4
+ model_name: GPT-4
+ name: 'OpenAI: GPT-4'
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ provider_name: OpenAI
+ quantization: fp16
+ status: default
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ supports_implicit_caching: true
+ tag: openai
+ throughput_last_30m:
+ p50: 45.2
+ p75: 38.5
+ p90: 28.3
+ p99: 15.1
+ uptime_last_1d: 99.8
+ uptime_last_30m: 99.5
+ uptime_last_5m: 100
+ schema:
+ example:
+ data:
+ - context_length: 8192
+ latency_last_30m:
+ p50: 0.25
+ p75: 0.35
+ p90: 0.48
+ p99: 0.85
+ max_completion_tokens: 4096
+ max_prompt_tokens: 8192
+ model_id: openai/gpt-4
+ model_name: GPT-4
+ name: 'OpenAI: GPT-4'
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ provider_name: OpenAI
+ quantization: fp16
+ status: default
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ supports_implicit_caching: true
+ tag: openai
+ throughput_last_30m:
+ p50: 45.2
+ p75: 38.5
+ p90: 28.3
+ p99: 15.1
+ uptime_last_1d: 99.8
+ uptime_last_30m: 99.5
+ uptime_last_5m: 100
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/PublicEndpoint'
+ type: array
+ required:
+ - data
+ type: object
+ description: Returns a list of endpoints
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Preview the impact of ZDR on the available endpoints
+ tags:
+ - Endpoints
+ x-speakeasy-name-override: listZdrEndpoints
+ /generation:
+ get:
+ operationId: getGeneration
+ parameters:
+ - description: The generation ID
+ in: query
+ name: id
+ required: true
+ schema:
+ description: The generation ID
+ example: gen-1234567890
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ api_type: null
+ app_id: 12345
+ cache_discount: 0.0002
+ cancelled: false
+ created_at: '2024-07-15T23:33:19.433273+00:00'
+ external_user: user-123
+ finish_reason: stop
+ generation_time: 1200
+ http_referer: null
+ id: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG
+ is_byok: false
+ latency: 1250
+ model: sao10k/l3-stheno-8b
+ moderation_latency: 50
+ native_finish_reason: stop
+ native_tokens_cached: 3
+ native_tokens_completion: 25
+ native_tokens_completion_images: 0
+ native_tokens_prompt: 10
+ native_tokens_reasoning: 5
+ num_input_audio_prompt: 0
+ num_media_completion: 0
+ num_media_prompt: 1
+ num_search_results: 5
+ origin: https://openrouter.ai/
+ provider_name: Infermatic
+ provider_responses: null
+ request_id: req-1727282430-aBcDeFgHiJkLmNoPqRsT
+ router: null
+ streamed: true
+ tokens_completion: 25
+ tokens_prompt: 10
+ total_cost: 0.0015
+ upstream_id: chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946
+ upstream_inference_cost: 0.0012
+ usage: 0.0015
+ user_agent: null
+ schema:
+ description: Generation response
+ properties:
+ data:
+ description: Generation data
+ properties:
+ api_type:
+ description: Type of API used for the generation
+ enum:
+ - completions
+ - embeddings
+ - rerank
+ - video
+ - null
+ nullable: true
+ type: string
+ app_id:
+ description: ID of the app that made the request
+ example: 12345
+ type: integer
+ cache_discount:
+ description: Discount applied due to caching
+ example: 0.0002
+ format: double
+ type: number
+ cancelled:
+ description: Whether the generation was cancelled
+ example: false
+ nullable: true
+ type: boolean
+ created_at:
+ description: ISO 8601 timestamp of when the generation was created
+ example: '2024-07-15T23:33:19.433273+00:00'
+ type: string
+ external_user:
+ description: External user identifier
+ example: user-123
+ nullable: true
+ type: string
+ finish_reason:
+ description: Reason the generation finished
+ example: stop
+ nullable: true
+ type: string
+ generation_time:
+ description: Time taken for generation in milliseconds
+ example: 1200
+ format: double
+ type: number
+ http_referer:
+ description: Referer header from the request
+ nullable: true
+ type: string
+ id:
+ description: Unique identifier for the generation
+ example: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG
+ type: string
+ is_byok:
+ description: Whether this used bring-your-own-key
+ example: false
+ type: boolean
+ latency:
+ description: Total latency in milliseconds
+ example: 1250
+ format: double
+ type: number
+ model:
+ description: Model used for the generation
+ example: sao10k/l3-stheno-8b
+ type: string
+ moderation_latency:
+ description: Moderation latency in milliseconds
+ example: 50
+ format: double
+ type: number
+ native_finish_reason:
+ description: Native finish reason as reported by provider
+ example: stop
+ nullable: true
+ type: string
+ native_tokens_cached:
+ description: Native cached tokens as reported by provider
+ example: 3
+ type: integer
+ native_tokens_completion:
+ description: Native completion tokens as reported by provider
+ example: 25
+ type: integer
+ native_tokens_completion_images:
+ description: Native completion image tokens as reported by provider
+ example: 0
+ type: integer
+ native_tokens_prompt:
+ description: Native prompt tokens as reported by provider
+ example: 10
+ type: integer
+ native_tokens_reasoning:
+ description: Native reasoning tokens as reported by provider
+ example: 5
+ type: integer
+ num_input_audio_prompt:
+ description: Number of audio inputs in the prompt
+ example: 0
+ type: integer
+ num_media_completion:
+ description: Number of media items in the completion
+ example: 0
+ type: integer
+ num_media_prompt:
+ description: Number of media items in the prompt
+ example: 1
+ type: integer
+ num_search_results:
+ description: Number of search results included
+ example: 5
+ type: integer
+ origin:
+ description: Origin URL of the request
+ example: https://openrouter.ai/
+ type: string
+ provider_name:
+ description: Name of the provider that served the request
+ example: Infermatic
+ nullable: true
+ type: string
+ provider_responses:
+ description: List of provider responses for this generation, including fallback attempts
+ items:
+ $ref: '#/components/schemas/ProviderResponse'
+ nullable: true
+ type: array
+ request_id:
+ description: Unique identifier grouping all generations from a single API request
+ example: req-1727282430-aBcDeFgHiJkLmNoPqRsT
+ nullable: true
+ type: string
+ router:
+ description: Router used for the request (e.g., openrouter/auto)
+ example: openrouter/auto
+ nullable: true
+ type: string
+ session_id:
+ description: Session identifier grouping multiple generations in the same session
+ nullable: true
+ type: string
+ streamed:
+ description: Whether the response was streamed
+ example: true
+ nullable: true
+ type: boolean
+ tokens_completion:
+ description: Number of tokens in the completion
+ example: 25
+ type: integer
+ tokens_prompt:
+ description: Number of tokens in the prompt
+ example: 10
+ type: integer
+ total_cost:
+ description: Total cost of the generation in USD
+ example: 0.0015
+ format: double
+ type: number
+ upstream_id:
+ description: Upstream provider's identifier for this generation
+ example: chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946
+ nullable: true
+ type: string
+ upstream_inference_cost:
+ description: Cost charged by the upstream provider
+ example: 0.0012
+ format: double
+ type: number
+ usage:
+ description: Usage amount in USD
+ example: 0.0015
+ format: double
+ type: number
+ user_agent:
+ description: User-Agent header from the request
+ nullable: true
+ type: string
+ required:
+ - id
+ - upstream_id
+ - total_cost
+ - cache_discount
+ - upstream_inference_cost
+ - created_at
+ - model
+ - app_id
+ - streamed
+ - cancelled
+ - provider_name
+ - latency
+ - moderation_latency
+ - generation_time
+ - finish_reason
+ - tokens_prompt
+ - tokens_completion
+ - native_tokens_prompt
+ - native_tokens_completion
+ - native_tokens_completion_images
+ - native_tokens_reasoning
+ - native_tokens_cached
+ - num_media_prompt
+ - num_input_audio_prompt
+ - num_media_completion
+ - num_search_results
+ - origin
+ - usage
+ - is_byok
+ - native_finish_reason
+ - external_user
+ - api_type
+ - router
+ - provider_responses
+ - user_agent
+ - http_referer
+ type: object
+ required:
+ - data
+ type: object
+ description: Returns the request metadata for this generation
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '402':
+ content:
+ application/json:
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ schema:
+ $ref: '#/components/schemas/PaymentRequiredResponse'
+ description: Payment Required - Insufficient credits or quota to complete request
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '429':
+ content:
+ application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ schema:
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ '502':
+ content:
+ application/json:
+ example:
+ error:
+ code: 502
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/BadGatewayResponse'
+ description: Bad Gateway - Provider/upstream API failure
+ '524':
+ content:
+ application/json:
+ example:
+ error:
+ code: 524
+ message: Request timed out. Please try again later.
+ schema:
+ $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
+ description: Infrastructure Timeout - Provider request timed out at edge network
+ '529':
+ content:
+ application/json:
+ example:
+ error:
+ code: 529
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/ProviderOverloadedResponse'
+ description: Provider Overloaded - Provider is temporarily overloaded
+ summary: Get request & usage metadata for a generation
+ tags:
+ - Generations
+ /guardrails:
+ get:
+ description: >-
+ List all guardrails for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys)
+ required.
+ operationId: listGuardrails
+ parameters:
+ - description: Number of records to skip for pagination
+ in: query
+ name: offset
+ required: false
+ schema:
+ description: Number of records to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
+ - description: Maximum number of records to return (max 100)
+ in: query
+ name: limit
+ required: false
+ schema:
+ description: Maximum number of records to return (max 100)
+ example: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: Guardrail for production environment
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 100
+ name: Production Guardrail
+ reset_interval: monthly
+ updated_at: '2025-08-24T15:45:00Z'
+ total_count: 1
+ schema:
+ $ref: '#/components/schemas/ListGuardrailsResponse'
+ description: List of guardrails
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List guardrails
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: list
+ x-speakeasy-pagination:
+ inputs:
+ - in: parameters
+ name: offset
+ type: offset
+ - in: parameters
+ name: limit
+ type: limit
+ outputs:
+ results: $.data
+ type: offsetLimit
+ post:
+ description: >-
+ Create a new guardrail for the authenticated user. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: createGuardrail
+ requestBody:
+ content:
+ application/json:
+ example:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - deepseek
+ description: A guardrail for limiting API usage
+ enforce_zdr: false
+ ignored_providers: null
+ limit_usd: 50
+ name: My New Guardrail
+ reset_interval: monthly
+ schema:
+ $ref: '#/components/schemas/CreateGuardrailRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ example:
+ data:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: A guardrail for limiting API usage
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 50
+ name: My New Guardrail
+ reset_interval: monthly
+ updated_at: null
+ schema:
+ $ref: '#/components/schemas/CreateGuardrailResponse'
+ description: Guardrail created successfully
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Create a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: create
+ /guardrails/{id}:
+ delete:
+ description: Delete an existing guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: deleteGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail to delete
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail to delete
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ deleted: true
+ schema:
+ $ref: '#/components/schemas/DeleteGuardrailResponse'
+ description: Guardrail deleted successfully
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Delete a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: delete
+ get:
+ description: Get a single guardrail by ID. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: getGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail to retrieve
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail to retrieve
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ - anthropic
+ - google
+ created_at: '2025-08-24T10:30:00Z'
+ description: Guardrail for production environment
+ enforce_zdr: false
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 100
+ name: Production Guardrail
+ reset_interval: monthly
+ updated_at: '2025-08-24T15:45:00Z'
+ schema:
+ $ref: '#/components/schemas/GetGuardrailResponse'
+ description: Guardrail details
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Get a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: get
+ patch:
+ description: Update an existing guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: updateGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail to update
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail to update
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ example:
+ description: Updated description
+ limit_usd: 75
+ name: Updated Guardrail Name
+ reset_interval: weekly
+ schema:
+ $ref: '#/components/schemas/UpdateGuardrailRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ allowed_models: null
+ allowed_providers:
+ - openai
+ created_at: '2025-08-24T10:30:00Z'
+ description: Updated description
+ enforce_zdr: true
+ id: 550e8400-e29b-41d4-a716-446655440000
+ ignored_providers: null
+ limit_usd: 75
+ name: Updated Guardrail Name
+ reset_interval: weekly
+ updated_at: '2025-08-24T16:00:00Z'
+ schema:
+ $ref: '#/components/schemas/UpdateGuardrailResponse'
+ description: Guardrail updated successfully
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Update a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: update
+ /guardrails/{id}/assignments/keys:
+ get:
+ description: >-
+ List all API key assignments for a specific guardrail. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: listGuardrailKeyAssignments
+ parameters:
+ - description: The unique identifier of the guardrail
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ - description: Number of records to skip for pagination
+ in: query
+ name: offset
+ required: false
+ schema:
+ description: Number of records to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
+ - description: Maximum number of records to return (max 100)
+ in: query
+ name: limit
+ required: false
+ schema:
+ description: Maximum number of records to return (max 100)
+ example: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ key_label: prod-key
+ key_name: Production Key
+ total_count: 1
+ schema:
+ $ref: '#/components/schemas/ListKeyAssignmentsResponse'
+ description: List of key assignments
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List key assignments for a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: listGuardrailKeyAssignments
+ x-speakeasy-pagination:
+ inputs:
+ - in: parameters
+ name: offset
+ type: offset
+ - in: parameters
+ name: limit
+ type: limit
+ outputs:
+ results: $.data
+ type: offsetLimit
+ post:
+ description: >-
+ Assign multiple API keys to a specific guardrail. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: bulkAssignKeysToGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ example:
+ key_hashes:
+ - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ schema:
+ $ref: '#/components/schemas/BulkAssignKeysRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ assigned_count: 3
+ schema:
+ $ref: '#/components/schemas/BulkAssignKeysResponse'
+ description: Assignment result
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Bulk assign keys to a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: bulkAssignKeys
+ /guardrails/{id}/assignments/keys/remove:
+ post:
+ description: >-
+ Unassign multiple API keys from a specific guardrail. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: bulkUnassignKeysFromGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ example:
+ key_hashes:
+ - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ schema:
+ $ref: '#/components/schemas/BulkUnassignKeysRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ unassigned_count: 3
+ schema:
+ $ref: '#/components/schemas/BulkUnassignKeysResponse'
+ description: Unassignment result
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Bulk unassign keys from a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: bulkUnassignKeys
+ /guardrails/{id}/assignments/members:
+ get:
+ description: >-
+ List all organization member assignments for a specific guardrail. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: listGuardrailMemberAssignments
+ parameters:
+ - description: The unique identifier of the guardrail
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ - description: Number of records to skip for pagination
+ in: query
+ name: offset
+ required: false
+ schema:
+ description: Number of records to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
+ - description: Maximum number of records to return (max 100)
+ in: query
+ name: limit
+ required: false
+ schema:
+ description: Maximum number of records to return (max 100)
+ example: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ organization_id: org_xyz789
+ user_id: user_abc123
+ total_count: 1
+ schema:
+ $ref: '#/components/schemas/ListMemberAssignmentsResponse'
+ description: List of member assignments
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List member assignments for a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: listGuardrailMemberAssignments
+ x-speakeasy-pagination:
+ inputs:
+ - in: parameters
+ name: offset
+ type: offset
+ - in: parameters
+ name: limit
+ type: limit
+ outputs:
+ results: $.data
+ type: offsetLimit
+ post:
+ description: >-
+ Assign multiple organization members to a specific guardrail. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: bulkAssignMembersToGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ example:
+ member_user_ids:
+ - user_abc123
+ - user_def456
+ schema:
+ $ref: '#/components/schemas/BulkAssignMembersRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ assigned_count: 2
+ schema:
+ $ref: '#/components/schemas/BulkAssignMembersResponse'
+ description: Assignment result
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Bulk assign members to a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: bulkAssignMembers
+ /guardrails/{id}/assignments/members/remove:
+ post:
+ description: >-
+ Unassign multiple organization members from a specific guardrail. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: bulkUnassignMembersFromGuardrail
+ parameters:
+ - description: The unique identifier of the guardrail
+ in: path
+ name: id
+ required: true
+ schema:
+ description: The unique identifier of the guardrail
+ example: 550e8400-e29b-41d4-a716-446655440000
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ example:
+ member_user_ids:
+ - user_abc123
+ - user_def456
+ schema:
+ $ref: '#/components/schemas/BulkUnassignMembersRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ unassigned_count: 2
+ schema:
+ $ref: '#/components/schemas/BulkUnassignMembersResponse'
+ description: Unassignment result
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Bulk unassign members from a guardrail
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: bulkUnassignMembers
+ /guardrails/assignments/keys:
+ get:
+ description: >-
+ List all API key guardrail assignments for the authenticated user. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: listKeyAssignments
+ parameters:
+ - description: Number of records to skip for pagination
+ in: query
+ name: offset
+ required: false
+ schema:
+ description: Number of records to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
+ - description: Maximum number of records to return (max 100)
+ in: query
+ name: limit
+ required: false
+ schema:
+ description: Maximum number of records to return (max 100)
+ example: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ key_label: prod-key
+ key_name: Production Key
+ total_count: 1
+ schema:
+ $ref: '#/components/schemas/ListKeyAssignmentsResponse'
+ description: List of key assignments
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List all key assignments
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: listKeyAssignments
+ x-speakeasy-pagination:
+ inputs:
+ - in: parameters
+ name: offset
+ type: offset
+ - in: parameters
+ name: limit
+ type: limit
+ outputs:
+ results: $.data
+ type: offsetLimit
+ /guardrails/assignments/members:
+ get:
+ description: >-
+ List all organization member guardrail assignments for the authenticated user. [Management
+ key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: listMemberAssignments
+ parameters:
+ - description: Number of records to skip for pagination
+ in: query
+ name: offset
+ required: false
+ schema:
+ description: Number of records to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
+ - description: Maximum number of records to return (max 100)
+ in: query
+ name: limit
+ required: false
+ schema:
+ description: Maximum number of records to return (max 100)
+ example: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - assigned_by: user_abc123
+ created_at: '2025-08-24T10:30:00Z'
+ guardrail_id: 550e8400-e29b-41d4-a716-446655440001
+ id: 550e8400-e29b-41d4-a716-446655440000
+ organization_id: org_xyz789
+ user_id: user_abc123
+ total_count: 1
+ schema:
+ $ref: '#/components/schemas/ListMemberAssignmentsResponse'
+ description: List of member assignments
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List all member assignments
+ tags:
+ - Guardrails
+ x-speakeasy-name-override: listMemberAssignments
+ x-speakeasy-pagination:
+ inputs:
+ - in: parameters
+ name: offset
+ type: offset
+ - in: parameters
+ name: limit
+ type: limit
+ outputs:
+ results: $.data
+ type: offsetLimit
+ /key:
+ get:
+ description: Get information on the API key associated with the current authentication session
+ operationId: getCurrentKey
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ expires_at: '2027-12-31T23:59:59Z'
+ include_byok_in_limit: false
+ is_free_tier: false
+ is_management_key: false
+ is_provisioning_key: false
+ label: sk-or-v1-au7...890
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ rate_limit:
+ interval: 1h
+ note: This field is deprecated and safe to ignore.
+ requests: 1000
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
+ schema:
+ example:
+ data:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ expires_at: '2027-12-31T23:59:59Z'
+ include_byok_in_limit: false
+ is_free_tier: false
+ is_management_key: false
+ is_provisioning_key: false
+ label: sk-or-v1-au7...890
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ rate_limit:
+ interval: 1h
+ note: This field is deprecated and safe to ignore.
+ requests: 1000
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
+ properties:
+ data:
+ description: Current API key information
+ example:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ expires_at: '2027-12-31T23:59:59Z'
+ include_byok_in_limit: false
+ is_free_tier: false
+ is_management_key: false
+ is_provisioning_key: false
+ label: sk-or-v1-au7...890
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ rate_limit:
+ interval: 1h
+ note: This field is deprecated and safe to ignore.
+ requests: 1000
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
+ properties:
+ byok_usage:
+ description: Total external BYOK usage (in USD) for the API key
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_daily:
+ description: External BYOK usage (in USD) for the current UTC day
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_monthly:
+ description: External BYOK usage (in USD) for current UTC month
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_weekly:
+ description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 17.38
+ format: double
+ type: number
+ creator_user_id:
+ description: >-
+ The user ID of the key creator. For organization-owned keys, this is the member who created
+ the key. For individual users, this is the user's own ID.
+ example: user_2dHFtVWx2n56w6HkM0000000000
+ nullable: true
+ type: string
+ expires_at:
+ description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
+ type: string
+ include_byok_in_limit:
+ description: Whether to include external BYOK usage in the credit limit
+ example: false
+ type: boolean
+ is_free_tier:
+ description: Whether this is a free tier API key
+ example: false
+ type: boolean
+ is_management_key:
+ description: Whether this is a management key
+ example: false
+ type: boolean
+ is_provisioning_key:
+ deprecated: true
+ description: Whether this is a management key
+ example: false
+ type: boolean
+ label:
+ description: Human-readable label for the API key
+ example: sk-or-v1-0e6...1c96
+ type: string
+ limit:
+ description: Spending limit for the API key in USD
+ example: 100
+ format: double
+ type: number
+ limit_remaining:
+ description: Remaining spending limit in USD
+ example: 74.5
+ format: double
+ type: number
+ limit_reset:
+ description: Type of limit reset for the API key
+ example: monthly
+ nullable: true
+ type: string
+ rate_limit:
+ deprecated: true
+ description: Legacy rate limit information about a key. Will always return -1.
+ example:
+ interval: 1h
+ note: This field is deprecated and safe to ignore.
+ requests: 1000
+ properties:
+ interval:
+ description: Rate limit interval
+ example: 1h
+ type: string
+ note:
+ description: Note about the rate limit
+ example: This field is deprecated and safe to ignore.
+ type: string
+ requests:
+ description: Number of requests allowed per interval
+ example: 1000
+ type: integer
+ required:
+ - requests
+ - interval
+ - note
+ type: object
+ usage:
+ description: Total OpenRouter credit usage (in USD) for the API key
+ example: 25.5
+ format: double
+ type: number
+ usage_daily:
+ description: OpenRouter credit usage (in USD) for the current UTC day
+ example: 25.5
+ format: double
+ type: number
+ usage_monthly:
+ description: OpenRouter credit usage (in USD) for the current UTC month
+ example: 25.5
+ format: double
+ type: number
+ usage_weekly:
+ description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 25.5
+ format: double
+ type: number
+ required:
+ - label
+ - limit
+ - usage
+ - usage_daily
+ - usage_weekly
+ - usage_monthly
+ - byok_usage
+ - byok_usage_daily
+ - byok_usage_weekly
+ - byok_usage_monthly
+ - is_free_tier
+ - is_management_key
+ - is_provisioning_key
+ - limit_remaining
+ - limit_reset
+ - include_byok_in_limit
+ - creator_user_id
+ - rate_limit
+ type: object
required:
- data
+ type: object
+ description: API key details
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
'500':
- description: Internal Server Error - Unexpected server error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- /keys:
- get:
- operationId: list
- x-speakeasy-name-override: list
+ description: Internal Server Error - Unexpected server error
+ summary: Get current API key
tags:
- API Keys
- summary: List API keys
+ x-speakeasy-name-override: getCurrentKeyMetadata
+ /keys:
+ get:
description: >-
List all API keys for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys)
required.
+ operationId: list
parameters:
- - schema:
- type: string
+ - description: Whether to include disabled API keys in the response
+ in: query
+ name: include_disabled
+ required: false
+ schema:
description: Whether to include disabled API keys in the response
example: 'false'
- required: false
- description: Whether to include disabled API keys in the response
- name: include_disabled
- in: query
- - schema:
type: string
- description: Number of API keys to skip for pagination
- example: '0'
- required: false
- description: Number of API keys to skip for pagination
- name: offset
+ x-openrouter-type: boolean
+ - description: Number of API keys to skip for pagination
in: query
+ name: offset
+ required: false
+ schema:
+ description: Number of API keys to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
responses:
'200':
- description: List of API keys
content:
application/json:
+ example:
+ data:
+ - byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: Production API Key
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
schema:
- type: object
+ example:
+ data:
+ - byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: Production API Key
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
data:
- type: array
+ description: List of API keys
items:
- type: object
+ example:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: sk-or-v1-0e6...1c96
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
- hash:
+ byok_usage:
+ description: Total external BYOK usage (in USD) for the API key
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_daily:
+ description: External BYOK usage (in USD) for the current UTC day
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_monthly:
+ description: External BYOK usage (in USD) for current UTC month
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_weekly:
+ description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 17.38
+ format: double
+ type: number
+ created_at:
+ description: ISO 8601 timestamp of when the API key was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ creator_user_id:
+ description: >-
+ The user ID of the key creator. For organization-owned keys, this is the member who created
+ the key. For individual users, this is the user's own ID.
+ example: user_2dHFtVWx2n56w6HkM0000000000
+ nullable: true
+ type: string
+ disabled:
+ description: Whether the API key is disabled
+ example: false
+ type: boolean
+ expires_at:
+ description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
type: string
+ hash:
description: Unique hash identifier for the API key
example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name:
type: string
- description: Name of the API key
- example: My Production Key
+ include_byok_in_limit:
+ description: Whether to include external BYOK usage in the credit limit
+ example: false
+ type: boolean
label:
- type: string
description: Human-readable label for the API key
example: sk-or-v1-0e6...1c96
- disabled:
- type: boolean
- description: Whether the API key is disabled
- example: false
+ type: string
limit:
- type: number
- nullable: true
description: Spending limit for the API key in USD
example: 100
- limit_remaining:
+ format: double
type: number
- nullable: true
+ limit_remaining:
description: Remaining spending limit in USD
example: 74.5
+ format: double
+ type: number
limit_reset:
- type: string
- nullable: true
description: Type of limit reset for the API key
example: monthly
- include_byok_in_limit:
- type: boolean
- description: Whether to include external BYOK usage in the credit limit
- example: false
+ nullable: true
+ type: string
+ name:
+ description: Name of the API key
+ example: My Production Key
+ type: string
+ updated_at:
+ description: ISO 8601 timestamp of when the API key was last updated
+ example: '2025-08-24T15:45:00Z'
+ nullable: true
+ type: string
usage:
- type: number
description: Total OpenRouter credit usage (in USD) for the API key
example: 25.5
- usage_daily:
+ format: double
type: number
+ usage_daily:
description: OpenRouter credit usage (in USD) for the current UTC day
example: 25.5
- usage_weekly:
+ format: double
type: number
- description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
- example: 25.5
usage_monthly:
- type: number
description: OpenRouter credit usage (in USD) for the current UTC month
example: 25.5
- byok_usage:
+ format: double
type: number
- description: Total external BYOK usage (in USD) for the API key
- example: 17.38
- byok_usage_daily:
- type: number
- description: External BYOK usage (in USD) for the current UTC day
- example: 17.38
- byok_usage_weekly:
- type: number
- description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
- example: 17.38
- byok_usage_monthly:
+ usage_weekly:
+ description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 25.5
+ format: double
type: number
- description: External BYOK usage (in USD) for current UTC month
- example: 17.38
- created_at:
- type: string
- description: ISO 8601 timestamp of when the API key was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the API key was last updated
- example: '2025-08-24T15:45:00Z'
- expires_at:
- type: string
- nullable: true
- format: date-time
- description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
- example: '2027-12-31T23:59:59Z'
- creator_user_id:
- type: string
- nullable: true
- description: >-
- The user ID of the key creator. For organization-owned keys, this is the member who created
- the key. For individual users, this is the user's own ID.
- example: user_2dHFtVWx2n56w6HkM0000000000
required:
- hash
- name
@@ -16489,239 +15660,300 @@ paths:
- disabled
- limit
- limit_remaining
- - limit_reset
- - include_byok_in_limit
- - usage
- - usage_daily
- - usage_weekly
- - usage_monthly
- - byok_usage
- - byok_usage_daily
- - byok_usage_weekly
- - byok_usage_monthly
- - created_at
- - updated_at
- - creator_user_id
- example:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My Production Key
- label: sk-or-v1-0e6...1c96
- disabled: false
- limit: 100
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- description: List of API keys
- required:
- - data
- example:
- data:
- - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My Production Key
- label: Production API Key
- disabled: false
- limit: 100
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ - limit_reset
+ - include_byok_in_limit
+ - usage
+ - usage_daily
+ - usage_weekly
+ - usage_monthly
+ - byok_usage
+ - byok_usage_daily
+ - byok_usage_weekly
+ - byok_usage_monthly
+ - created_at
+ - updated_at
+ - creator_user_id
+ type: object
+ type: array
+ required:
+ - data
+ type: object
+ description: List of API keys
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
'429':
- description: Too Many Requests - Rate limit exceeded
content:
application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- post:
- x-speakeasy-name-override: create
+ description: Internal Server Error - Unexpected server error
+ summary: List API keys
tags:
- API Keys
- summary: Create a new API key
+ x-speakeasy-name-override: list
+ post:
description: >-
Create a new API key for the authenticated user. [Management
key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: createKeys
requestBody:
content:
application/json:
+ example:
+ expires_at: '2027-12-31T23:59:59Z'
+ include_byok_in_limit: true
+ limit: 50
+ limit_reset: monthly
+ name: My New API Key
schema:
- type: object
+ example:
+ expires_at: '2027-12-31T23:59:59Z'
+ include_byok_in_limit: true
+ limit: 50
+ limit_reset: monthly
+ name: My New API Key
properties:
- name:
- type: string
+ creator_user_id:
+ description: >-
+ Optional user ID of the key creator. Only meaningful for organization-owned keys where a specific
+ member is creating the key.
+ example: user_2dHFtVWx2n56w6HkM0000000000
minLength: 1
- description: Name for the new API key
- example: My New API Key
- limit:
- type: number
nullable: true
+ type: string
+ expires_at:
+ description: >-
+ Optional ISO 8601 UTC timestamp when the API key should expire. Must be UTC, other timezones will be
+ rejected
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
+ type: string
+ include_byok_in_limit:
+ description: Whether to include BYOK usage in the limit
+ example: true
+ type: boolean
+ limit:
description: Optional spending limit for the API key in USD
example: 50
+ format: double
+ type: number
limit_reset:
- type: string
- nullable: true
+ description: >-
+ Type of limit reset for the API key (daily, weekly, monthly, or null for no reset). Resets happen
+ automatically at midnight UTC, and weeks are Monday through Sunday.
enum:
- daily
- weekly
- monthly
- description: >-
- Type of limit reset for the API key (daily, weekly, monthly, or null for no reset). Resets happen
- automatically at midnight UTC, and weeks are Monday through Sunday.
+ - null
example: monthly
- include_byok_in_limit:
- type: boolean
- description: Whether to include BYOK usage in the limit
- example: true
- expires_at:
- type: string
nullable: true
- format: date-time
- description: >-
- Optional ISO 8601 UTC timestamp when the API key should expire. Must be UTC, other timezones will be
- rejected
- example: '2027-12-31T23:59:59Z'
+ type: string
+ name:
+ description: Name for the new API key
+ example: My New API Key
+ minLength: 1
+ type: string
required:
- name
- example:
- name: My New API Key
- limit: 50
- limit_reset: monthly
- include_byok_in_limit: true
- expires_at: '2027-12-31T23:59:59Z'
+ type: object
required: true
responses:
'201':
- description: API key created successfully
content:
application/json:
+ example:
+ data:
+ byok_usage: 0
+ byok_usage_daily: 0
+ byok_usage_monthly: 0
+ byok_usage_weekly: 0
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: true
+ label: My New API Key
+ limit: 50
+ limit_remaining: 50
+ limit_reset: monthly
+ name: My New API Key
+ updated_at: null
+ usage: 0
+ usage_daily: 0
+ usage_monthly: 0
+ usage_weekly: 0
+ key: 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
schema:
- type: object
+ example:
+ data:
+ byok_usage: 0
+ byok_usage_daily: 0
+ byok_usage_monthly: 0
+ byok_usage_weekly: 0
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: true
+ label: My New API Key
+ limit: 50
+ limit_remaining: 50
+ limit_reset: monthly
+ name: My New API Key
+ updated_at: null
+ usage: 0
+ usage_daily: 0
+ usage_monthly: 0
+ usage_weekly: 0
+ key: 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
properties:
data:
- type: object
+ description: The created API key information
+ example:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: sk-or-v1-0e6...1c96
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
- hash:
+ byok_usage:
+ description: Total external BYOK usage (in USD) for the API key
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_daily:
+ description: External BYOK usage (in USD) for the current UTC day
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_monthly:
+ description: External BYOK usage (in USD) for current UTC month
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_weekly:
+ description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 17.38
+ format: double
+ type: number
+ created_at:
+ description: ISO 8601 timestamp of when the API key was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ creator_user_id:
+ description: >-
+ The user ID of the key creator. For organization-owned keys, this is the member who created
+ the key. For individual users, this is the user's own ID.
+ example: user_2dHFtVWx2n56w6HkM0000000000
+ nullable: true
+ type: string
+ disabled:
+ description: Whether the API key is disabled
+ example: false
+ type: boolean
+ expires_at:
+ description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
type: string
+ hash:
description: Unique hash identifier for the API key
example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name:
type: string
- description: Name of the API key
- example: My Production Key
+ include_byok_in_limit:
+ description: Whether to include external BYOK usage in the credit limit
+ example: false
+ type: boolean
label:
- type: string
description: Human-readable label for the API key
example: sk-or-v1-0e6...1c96
- disabled:
- type: boolean
- description: Whether the API key is disabled
- example: false
+ type: string
limit:
- type: number
- nullable: true
description: Spending limit for the API key in USD
example: 100
- limit_remaining:
+ format: double
type: number
- nullable: true
+ limit_remaining:
description: Remaining spending limit in USD
example: 74.5
+ format: double
+ type: number
limit_reset:
- type: string
- nullable: true
description: Type of limit reset for the API key
example: monthly
- include_byok_in_limit:
- type: boolean
- description: Whether to include external BYOK usage in the credit limit
- example: false
- usage:
- type: number
- description: Total OpenRouter credit usage (in USD) for the API key
- example: 25.5
- usage_daily:
- type: number
- description: OpenRouter credit usage (in USD) for the current UTC day
- example: 25.5
- usage_weekly:
- type: number
- description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
- example: 25.5
- usage_monthly:
- type: number
- description: OpenRouter credit usage (in USD) for the current UTC month
- example: 25.5
- byok_usage:
- type: number
- description: Total external BYOK usage (in USD) for the API key
- example: 17.38
- byok_usage_daily:
- type: number
- description: External BYOK usage (in USD) for the current UTC day
- example: 17.38
- byok_usage_weekly:
- type: number
- description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
- example: 17.38
- byok_usage_monthly:
- type: number
- description: External BYOK usage (in USD) for current UTC month
- example: 17.38
- created_at:
+ nullable: true
type: string
- description: ISO 8601 timestamp of when the API key was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
+ name:
+ description: Name of the API key
+ example: My Production Key
type: string
- nullable: true
+ updated_at:
description: ISO 8601 timestamp of when the API key was last updated
example: '2025-08-24T15:45:00Z'
- expires_at:
- type: string
- nullable: true
- format: date-time
- description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
- example: '2027-12-31T23:59:59Z'
- creator_user_id:
- type: string
nullable: true
- description: >-
- The user ID of the key creator. For organization-owned keys, this is the member who created
- the key. For individual users, this is the user's own ID.
- example: user_2dHFtVWx2n56w6HkM0000000000
+ type: string
+ usage:
+ description: Total OpenRouter credit usage (in USD) for the API key
+ example: 25.5
+ format: double
+ type: number
+ usage_daily:
+ description: OpenRouter credit usage (in USD) for the current UTC day
+ example: 25.5
+ format: double
+ type: number
+ usage_monthly:
+ description: OpenRouter credit usage (in USD) for the current UTC month
+ example: 25.5
+ format: double
+ type: number
+ usage_weekly:
+ description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 25.5
+ format: double
+ type: number
required:
- hash
- name
@@ -16742,240 +15974,319 @@ paths:
- created_at
- updated_at
- creator_user_id
- example:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My Production Key
- label: sk-or-v1-0e6...1c96
- disabled: false
- limit: 100
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- description: The created API key information
+ type: object
key:
- type: string
description: The actual API key string (only shown once)
example: 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
+ type: string
required:
- data
- key
- example:
- data:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My New API Key
- label: My New API Key
- disabled: false
- limit: 50
- limit_remaining: 50
- limit_reset: monthly
- include_byok_in_limit: true
- usage: 0
- usage_daily: 0
- usage_weekly: 0
- usage_monthly: 0
- byok_usage: 0
- byok_usage_daily: 0
- byok_usage_weekly: 0
- byok_usage_monthly: 0
- created_at: '2025-08-24T10:30:00Z'
- updated_at: null
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- key: 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
+ type: object
+ description: API key created successfully
'400':
- description: Bad Request - Invalid request parameters
content:
application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
schema:
$ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
'429':
- description: Too Many Requests - Rate limit exceeded
content:
application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- operationId: createKeys
- /keys/{hash}:
- patch:
- x-speakeasy-name-override: update
+ description: Internal Server Error - Unexpected server error
+ summary: Create a new API key
tags:
- API Keys
- summary: Update an API key
- description: Update an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ x-speakeasy-name-override: create
+ /keys/{hash}:
+ delete:
+ description: Delete an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: deleteKeys
parameters:
- - schema:
- type: string
- description: The hash identifier of the API key to update
- example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- required: true
- description: The hash identifier of the API key to update
- name: hash
+ - description: The hash identifier of the API key to delete
in: path
- requestBody:
- content:
- application/json:
- schema:
- type: object
- properties:
- name:
- type: string
- description: New name for the API key
- example: Updated API Key Name
- disabled:
- type: boolean
- description: Whether to disable the API key
- example: false
- limit:
- type: number
- nullable: true
- description: New spending limit for the API key in USD
- example: 75
- limit_reset:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: >-
- New limit reset type for the API key (daily, weekly, monthly, or null for no reset). Resets happen
- automatically at midnight UTC, and weeks are Monday through Sunday.
- example: daily
- include_byok_in_limit:
- type: boolean
- description: Whether to include BYOK usage in the limit
- example: true
- example:
- name: Updated API Key Name
- disabled: false
- limit: 75
- limit_reset: daily
- include_byok_in_limit: true
- required: true
+ name: hash
+ required: true
+ schema:
+ description: The hash identifier of the API key to delete
+ example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ type: string
responses:
'200':
- description: API key updated successfully
content:
application/json:
+ example:
+ deleted: true
schema:
+ example:
+ deleted: true
+ properties:
+ deleted:
+ const: true
+ description: Confirmation that the API key was deleted
+ example: true
+ type: boolean
+ required:
+ - deleted
type: object
+ description: API key deleted successfully
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '429':
+ content:
+ application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ schema:
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: Delete an API key
+ tags:
+ - API Keys
+ x-speakeasy-name-override: delete
+ get:
+ description: Get a single API key by hash. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: getKey
+ parameters:
+ - description: The hash identifier of the API key to retrieve
+ in: path
+ name: hash
+ required: true
+ schema:
+ description: The hash identifier of the API key to retrieve
+ example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: Production API Key
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
+ schema:
+ example:
+ data:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: Production API Key
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
data:
- type: object
+ description: The API key information
+ example:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: sk-or-v1-0e6...1c96
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
- hash:
+ byok_usage:
+ description: Total external BYOK usage (in USD) for the API key
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_daily:
+ description: External BYOK usage (in USD) for the current UTC day
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_monthly:
+ description: External BYOK usage (in USD) for current UTC month
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_weekly:
+ description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 17.38
+ format: double
+ type: number
+ created_at:
+ description: ISO 8601 timestamp of when the API key was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ creator_user_id:
+ description: >-
+ The user ID of the key creator. For organization-owned keys, this is the member who created
+ the key. For individual users, this is the user's own ID.
+ example: user_2dHFtVWx2n56w6HkM0000000000
+ nullable: true
+ type: string
+ disabled:
+ description: Whether the API key is disabled
+ example: false
+ type: boolean
+ expires_at:
+ description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
type: string
+ hash:
description: Unique hash identifier for the API key
example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name:
type: string
- description: Name of the API key
- example: My Production Key
+ include_byok_in_limit:
+ description: Whether to include external BYOK usage in the credit limit
+ example: false
+ type: boolean
label:
- type: string
description: Human-readable label for the API key
example: sk-or-v1-0e6...1c96
- disabled:
- type: boolean
- description: Whether the API key is disabled
- example: false
+ type: string
limit:
- type: number
- nullable: true
description: Spending limit for the API key in USD
example: 100
- limit_remaining:
+ format: double
type: number
- nullable: true
+ limit_remaining:
description: Remaining spending limit in USD
example: 74.5
+ format: double
+ type: number
limit_reset:
- type: string
- nullable: true
description: Type of limit reset for the API key
example: monthly
- include_byok_in_limit:
- type: boolean
- description: Whether to include external BYOK usage in the credit limit
- example: false
+ nullable: true
+ type: string
+ name:
+ description: Name of the API key
+ example: My Production Key
+ type: string
+ updated_at:
+ description: ISO 8601 timestamp of when the API key was last updated
+ example: '2025-08-24T15:45:00Z'
+ nullable: true
+ type: string
usage:
- type: number
description: Total OpenRouter credit usage (in USD) for the API key
example: 25.5
- usage_daily:
+ format: double
type: number
+ usage_daily:
description: OpenRouter credit usage (in USD) for the current UTC day
example: 25.5
- usage_weekly:
+ format: double
type: number
- description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
- example: 25.5
usage_monthly:
- type: number
description: OpenRouter credit usage (in USD) for the current UTC month
example: 25.5
- byok_usage:
- type: number
- description: Total external BYOK usage (in USD) for the API key
- example: 17.38
- byok_usage_daily:
- type: number
- description: External BYOK usage (in USD) for the current UTC day
- example: 17.38
- byok_usage_weekly:
+ format: double
type: number
- description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
- example: 17.38
- byok_usage_monthly:
+ usage_weekly:
+ description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 25.5
+ format: double
type: number
- description: External BYOK usage (in USD) for current UTC month
- example: 17.38
- created_at:
- type: string
- description: ISO 8601 timestamp of when the API key was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the API key was last updated
- example: '2025-08-24T15:45:00Z'
- expires_at:
- type: string
- nullable: true
- format: date-time
- description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
- example: '2027-12-31T23:59:59Z'
- creator_user_id:
- type: string
- nullable: true
- description: >-
- The user ID of the key creator. For organization-owned keys, this is the member who created
- the key. For individual users, this is the user's own ID.
- example: user_2dHFtVWx2n56w6HkM0000000000
required:
- hash
- name
@@ -16996,256 +16307,286 @@ paths:
- created_at
- updated_at
- creator_user_id
- example:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My Production Key
- label: sk-or-v1-0e6...1c96
- disabled: false
- limit: 100
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- description: The updated API key information
+ type: object
required:
- data
- example:
- data:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: Updated API Key Name
- label: Updated API Key Name
- disabled: false
- limit: 75
- limit_remaining: 49.5
- limit_reset: daily
- include_byok_in_limit: true
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T16:00:00Z'
- expires_at: null
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- '400':
- description: Bad Request - Invalid request parameters
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Missing or invalid authentication
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Not Found - API key does not exist
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '429':
- description: Too Many Requests - Rate limit exceeded
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/TooManyRequestsResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- operationId: updateKeys
- delete:
- x-speakeasy-name-override: delete
- tags:
- - API Keys
- summary: Delete an API key
- description: Delete an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- description: The hash identifier of the API key to delete
- example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- required: true
- description: The hash identifier of the API key to delete
- name: hash
- in: path
- responses:
- '200':
- description: API key deleted successfully
- content:
- application/json:
- schema:
type: object
- properties:
- deleted:
- type: boolean
- const: true
- description: Confirmation that the API key was deleted
- example: true
- required:
- - deleted
- example:
- deleted: true
+ description: API key details
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
'404':
- description: Not Found - API key does not exist
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
$ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
'429':
- description: Too Many Requests - Rate limit exceeded
content:
application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- operationId: deleteKeys
- get:
- operationId: getKey
- x-speakeasy-name-override: get
+ description: Internal Server Error - Unexpected server error
+ summary: Get a single API key
tags:
- API Keys
- summary: Get a single API key
- description: Get a single API key by hash. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ x-speakeasy-name-override: get
+ patch:
+ description: Update an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: updateKeys
parameters:
- - schema:
- type: string
- description: The hash identifier of the API key to retrieve
- example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- required: true
- description: The hash identifier of the API key to retrieve
- name: hash
+ - description: The hash identifier of the API key to update
in: path
+ name: hash
+ required: true
+ schema:
+ description: The hash identifier of the API key to update
+ example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ type: string
+ requestBody:
+ content:
+ application/json:
+ example:
+ disabled: false
+ include_byok_in_limit: true
+ limit: 75
+ limit_reset: daily
+ name: Updated API Key Name
+ schema:
+ example:
+ disabled: false
+ include_byok_in_limit: true
+ limit: 75
+ limit_reset: daily
+ name: Updated API Key Name
+ properties:
+ disabled:
+ description: Whether to disable the API key
+ example: false
+ type: boolean
+ include_byok_in_limit:
+ description: Whether to include BYOK usage in the limit
+ example: true
+ type: boolean
+ limit:
+ description: New spending limit for the API key in USD
+ example: 75
+ format: double
+ type: number
+ limit_reset:
+ description: >-
+ New limit reset type for the API key (daily, weekly, monthly, or null for no reset). Resets happen
+ automatically at midnight UTC, and weeks are Monday through Sunday.
+ enum:
+ - daily
+ - weekly
+ - monthly
+ - null
+ example: daily
+ nullable: true
+ type: string
+ name:
+ description: New name for the API key
+ example: Updated API Key Name
+ type: string
+ type: object
+ required: true
responses:
'200':
- description: API key details
content:
application/json:
+ example:
+ data:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: null
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: true
+ label: Updated API Key Name
+ limit: 75
+ limit_remaining: 49.5
+ limit_reset: daily
+ name: Updated API Key Name
+ updated_at: '2025-08-24T16:00:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
schema:
- type: object
+ example:
+ data:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: null
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: true
+ label: Updated API Key Name
+ limit: 75
+ limit_remaining: 49.5
+ limit_reset: daily
+ name: Updated API Key Name
+ updated_at: '2025-08-24T16:00:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
data:
- type: object
+ description: The updated API key information
+ example:
+ byok_usage: 17.38
+ byok_usage_daily: 17.38
+ byok_usage_monthly: 17.38
+ byok_usage_weekly: 17.38
+ created_at: '2025-08-24T10:30:00Z'
+ creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ disabled: false
+ expires_at: '2027-12-31T23:59:59Z'
+ hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
+ include_byok_in_limit: false
+ label: sk-or-v1-0e6...1c96
+ limit: 100
+ limit_remaining: 74.5
+ limit_reset: monthly
+ name: My Production Key
+ updated_at: '2025-08-24T15:45:00Z'
+ usage: 25.5
+ usage_daily: 25.5
+ usage_monthly: 25.5
+ usage_weekly: 25.5
properties:
- hash:
+ byok_usage:
+ description: Total external BYOK usage (in USD) for the API key
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_daily:
+ description: External BYOK usage (in USD) for the current UTC day
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_monthly:
+ description: External BYOK usage (in USD) for current UTC month
+ example: 17.38
+ format: double
+ type: number
+ byok_usage_weekly:
+ description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 17.38
+ format: double
+ type: number
+ created_at:
+ description: ISO 8601 timestamp of when the API key was created
+ example: '2025-08-24T10:30:00Z'
+ type: string
+ creator_user_id:
+ description: >-
+ The user ID of the key creator. For organization-owned keys, this is the member who created
+ the key. For individual users, this is the user's own ID.
+ example: user_2dHFtVWx2n56w6HkM0000000000
+ nullable: true
+ type: string
+ disabled:
+ description: Whether the API key is disabled
+ example: false
+ type: boolean
+ expires_at:
+ description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
+ example: '2027-12-31T23:59:59Z'
+ format: date-time
+ nullable: true
type: string
+ hash:
description: Unique hash identifier for the API key
example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name:
type: string
- description: Name of the API key
- example: My Production Key
+ include_byok_in_limit:
+ description: Whether to include external BYOK usage in the credit limit
+ example: false
+ type: boolean
label:
- type: string
description: Human-readable label for the API key
example: sk-or-v1-0e6...1c96
- disabled:
- type: boolean
- description: Whether the API key is disabled
- example: false
+ type: string
limit:
- type: number
- nullable: true
description: Spending limit for the API key in USD
example: 100
- limit_remaining:
+ format: double
type: number
- nullable: true
+ limit_remaining:
description: Remaining spending limit in USD
example: 74.5
+ format: double
+ type: number
limit_reset:
- type: string
- nullable: true
description: Type of limit reset for the API key
example: monthly
- include_byok_in_limit:
- type: boolean
- description: Whether to include external BYOK usage in the credit limit
- example: false
+ nullable: true
+ type: string
+ name:
+ description: Name of the API key
+ example: My Production Key
+ type: string
+ updated_at:
+ description: ISO 8601 timestamp of when the API key was last updated
+ example: '2025-08-24T15:45:00Z'
+ nullable: true
+ type: string
usage:
- type: number
description: Total OpenRouter credit usage (in USD) for the API key
example: 25.5
- usage_daily:
+ format: double
type: number
+ usage_daily:
description: OpenRouter credit usage (in USD) for the current UTC day
example: 25.5
- usage_weekly:
+ format: double
type: number
- description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
- example: 25.5
usage_monthly:
- type: number
description: OpenRouter credit usage (in USD) for the current UTC month
example: 25.5
- byok_usage:
- type: number
- description: Total external BYOK usage (in USD) for the API key
- example: 17.38
- byok_usage_daily:
- type: number
- description: External BYOK usage (in USD) for the current UTC day
- example: 17.38
- byok_usage_weekly:
+ format: double
type: number
- description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
- example: 17.38
- byok_usage_monthly:
+ usage_weekly:
+ description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
+ example: 25.5
+ format: double
type: number
- description: External BYOK usage (in USD) for current UTC month
- example: 17.38
- created_at:
- type: string
- description: ISO 8601 timestamp of when the API key was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the API key was last updated
- example: '2025-08-24T15:45:00Z'
- expires_at:
- type: string
- nullable: true
- format: date-time
- description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
- example: '2027-12-31T23:59:59Z'
- creator_user_id:
- type: string
- nullable: true
- description: >-
- The user ID of the key creator. For organization-owned keys, this is the member who created
- the key. For individual users, this is the user's own ID.
- example: user_2dHFtVWx2n56w6HkM0000000000
required:
- hash
- name
@@ -17256,2093 +16597,2132 @@ paths:
- limit_reset
- include_byok_in_limit
- usage
- - usage_daily
- - usage_weekly
- - usage_monthly
- - byok_usage
- - byok_usage_daily
- - byok_usage_weekly
- - byok_usage_monthly
- - created_at
- - updated_at
- - creator_user_id
- example:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My Production Key
- label: sk-or-v1-0e6...1c96
- disabled: false
- limit: 100
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- description: The API key information
- required:
- - data
- example:
- data:
- hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943
- name: My Production Key
- label: Production API Key
- disabled: false
- limit: 100
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
+ - usage_daily
+ - usage_weekly
+ - usage_monthly
+ - byok_usage
+ - byok_usage_daily
+ - byok_usage_weekly
+ - byok_usage_monthly
+ - created_at
+ - updated_at
+ - creator_user_id
+ type: object
+ required:
+ - data
+ type: object
+ description: API key updated successfully
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
'404':
- description: Not Found - API key does not exist
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
$ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
'429':
- description: Too Many Requests - Rate limit exceeded
content:
application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
schema:
$ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- /guardrails:
- get:
- operationId: listGuardrails
- x-speakeasy-name-override: list
+ description: Internal Server Error - Unexpected server error
+ summary: Update an API key
tags:
- - Guardrails
- summary: List guardrails
- description: >-
- List all guardrails for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys)
- required.
- parameters:
- - schema:
- type: string
- description: Number of records to skip for pagination
- example: '0'
- required: false
- description: Number of records to skip for pagination
- name: offset
- in: query
- - schema:
- type: string
- description: Maximum number of records to return (max 100)
- example: '50'
- required: false
- description: Maximum number of records to return (max 100)
- name: limit
- in: query
- responses:
- '200':
- description: List of guardrails
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- name:
- type: string
- description: Name of the guardrail
- example: Production Guardrail
- description:
- type: string
- nullable: true
- description: Description of the guardrail
- example: Guardrail for production environment
- limit_usd:
- type: number
- nullable: true
- minimum: 0
- exclusiveMinimum: true
- description: Spending limit in USD
- example: 100
- reset_interval:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: Interval at which the limit resets (daily, weekly, monthly)
- example: monthly
- allowed_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of allowed provider IDs
- example:
- - openai
- - anthropic
- - google
- ignored_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of provider IDs to exclude from routing
- example:
- - azure
- allowed_models:
- type: array
- nullable: true
- items:
- type: string
- description: Array of model canonical_slugs (immutable identifiers)
- example:
- - openai/gpt-5.2-20251211
- - anthropic/claude-4.5-opus-20251124
- - deepseek/deepseek-r1-0528:free
- enforce_zdr:
- type: boolean
- nullable: true
- description: Whether to enforce zero data retention
- example: false
- created_at:
- type: string
- description: ISO 8601 timestamp of when the guardrail was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the guardrail was last updated
- example: '2025-08-24T15:45:00Z'
- required:
- - id
- - name
- - created_at
- example:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: Production Guardrail
- description: Guardrail for production environment
- limit_usd: 100
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- description: List of guardrails
- total_count:
- type: number
- description: Total number of guardrails
- example: 25
- required:
- - data
- - total_count
- example:
- data:
- - id: 550e8400-e29b-41d4-a716-446655440000
- name: Production Guardrail
- description: Guardrail for production environment
- limit_usd: 100
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- total_count: 1
- '401':
- description: Unauthorized - Missing or invalid authentication
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
+ - API Keys
+ x-speakeasy-name-override: update
+ /messages:
post:
- operationId: createGuardrail
- x-speakeasy-name-override: create
- tags:
- - Guardrails
- summary: Create a guardrail
description: >-
- Create a new guardrail for the authenticated user. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
+ Creates a message using the Anthropic Messages API format. Supports text, images, PDFs, tools, and extended
+ thinking.
+ operationId: createMessages
requestBody:
content:
application/json:
+ example:
+ max_tokens: 1024
+ messages:
+ - content: Hello, how are you?
+ role: user
+ model: anthropic/claude-sonnet-4
schema:
- type: object
- properties:
- name:
- type: string
- minLength: 1
- maxLength: 200
- description: Name for the new guardrail
- example: My New Guardrail
- description:
- type: string
- nullable: true
- maxLength: 1000
- description: Description of the guardrail
- example: A guardrail for limiting API usage
- limit_usd:
- type: number
- nullable: true
- minimum: 0
- exclusiveMinimum: true
- description: Spending limit in USD
- example: 50
- reset_interval:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: Interval at which the limit resets (daily, weekly, monthly)
- example: monthly
- allowed_providers:
- type: array
- nullable: true
- items:
- type: string
- minItems: 1
- description: List of allowed provider IDs
- example:
- - openai
- - anthropic
- - deepseek
- ignored_providers:
- type: array
- nullable: true
- items:
- type: string
- minItems: 1
- description: List of provider IDs to exclude from routing
- example:
- - azure
- allowed_models:
- type: array
- nullable: true
- items:
- type: string
- minItems: 1
- description: Array of model identifiers (slug or canonical_slug accepted)
- example:
- - openai/gpt-5.2
- - anthropic/claude-4.5-opus-20251124
- - deepseek/deepseek-r1-0528:free
- enforce_zdr:
- type: boolean
- nullable: true
- description: Whether to enforce zero data retention
- example: false
- required:
- - name
- example:
- name: My New Guardrail
- description: A guardrail for limiting API usage
- limit_usd: 50
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - deepseek
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
+ $ref: '#/components/schemas/MessagesRequest'
required: true
responses:
- '201':
- description: Guardrail created successfully
+ '200':
content:
application/json:
+ example:
+ content:
+ - text: I'm doing well, thank you for asking! How can I help you today?
+ type: text
+ id: msg_abc123
+ model: anthropic/claude-sonnet-4
+ role: assistant
+ stop_reason: end_turn
+ type: message
+ usage:
+ input_tokens: 12
+ output_tokens: 18
+ schema:
+ $ref: '#/components/schemas/MessagesResult'
+ text/event-stream:
+ example:
+ data:
+ delta:
+ text: Hello
+ type: text_delta
+ index: 0
+ type: content_block_delta
+ event: content_block_delta
schema:
- type: object
properties:
- data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- name:
- type: string
- description: Name of the guardrail
- example: Production Guardrail
- description:
- type: string
- nullable: true
- description: Description of the guardrail
- example: Guardrail for production environment
- limit_usd:
- type: number
- nullable: true
- minimum: 0
- exclusiveMinimum: true
- description: Spending limit in USD
- example: 100
- reset_interval:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: Interval at which the limit resets (daily, weekly, monthly)
- example: monthly
- allowed_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of allowed provider IDs
- example:
- - openai
- - anthropic
- - google
- ignored_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of provider IDs to exclude from routing
- example:
- - azure
- allowed_models:
- type: array
- nullable: true
- items:
- type: string
- description: Array of model canonical_slugs (immutable identifiers)
- example:
- - openai/gpt-5.2-20251211
- - anthropic/claude-4.5-opus-20251124
- - deepseek/deepseek-r1-0528:free
- enforce_zdr:
- type: boolean
- nullable: true
- description: Whether to enforce zero data retention
- example: false
- created_at:
- type: string
- description: ISO 8601 timestamp of when the guardrail was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the guardrail was last updated
- example: '2025-08-24T15:45:00Z'
- required:
- - id
- - name
- - created_at
- example:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: Production Guardrail
- description: Guardrail for production environment
- limit_usd: 100
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- description: The created guardrail
- required:
- - data
- example:
- data:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: My New Guardrail
- description: A guardrail for limiting API usage
- limit_usd: 50
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: null
+ data:
+ $ref: '#/components/schemas/MessagesStreamEvents'
+ event:
+ type: string
+ required:
+ - event
+ - data
+ type: object
+ x-speakeasy-sse-sentinel: '[DONE]'
+ description: Successful response
'400':
- description: Bad Request - Invalid request parameters
content:
application/json:
+ example:
+ error:
+ message: 'Invalid request: messages is required'
+ type: invalid_request_error
+ type: error
schema:
- $ref: '#/components/schemas/BadRequestResponse'
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Invalid request error
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ message: Invalid API key
+ type: authentication_error
+ type: error
schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '500':
- description: Internal Server Error
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Authentication error
+ '403':
content:
application/json:
+ example:
+ error:
+ message: Permission denied
+ type: permission_error
+ type: error
schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /guardrails/{id}:
- get:
- operationId: getGuardrail
- x-speakeasy-name-override: get
- tags:
- - Guardrails
- summary: Get a guardrail
- description: Get a single guardrail by ID. [Management key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail to retrieve
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail to retrieve
- name: id
- in: path
- responses:
- '200':
- description: Guardrail details
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Permission denied error
+ '404':
content:
application/json:
+ example:
+ error:
+ message: Model not found
+ type: not_found_error
+ type: error
schema:
- type: object
- properties:
- data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- name:
- type: string
- description: Name of the guardrail
- example: Production Guardrail
- description:
- type: string
- nullable: true
- description: Description of the guardrail
- example: Guardrail for production environment
- limit_usd:
- type: number
- nullable: true
- minimum: 0
- exclusiveMinimum: true
- description: Spending limit in USD
- example: 100
- reset_interval:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: Interval at which the limit resets (daily, weekly, monthly)
- example: monthly
- allowed_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of allowed provider IDs
- example:
- - openai
- - anthropic
- - google
- ignored_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of provider IDs to exclude from routing
- example:
- - azure
- allowed_models:
- type: array
- nullable: true
- items:
- type: string
- description: Array of model canonical_slugs (immutable identifiers)
- example:
- - openai/gpt-5.2-20251211
- - anthropic/claude-4.5-opus-20251124
- - deepseek/deepseek-r1-0528:free
- enforce_zdr:
- type: boolean
- nullable: true
- description: Whether to enforce zero data retention
- example: false
- created_at:
- type: string
- description: ISO 8601 timestamp of when the guardrail was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the guardrail was last updated
- example: '2025-08-24T15:45:00Z'
- required:
- - id
- - name
- - created_at
- example:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: Production Guardrail
- description: Guardrail for production environment
- limit_usd: 100
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- description: The guardrail
- required:
- - data
- example:
- data:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: Production Guardrail
- description: Guardrail for production environment
- limit_usd: 100
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- '401':
- description: Unauthorized - Missing or invalid authentication
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Not found error
+ '429':
content:
application/json:
+ example:
+ error:
+ message: Rate limit exceeded
+ type: rate_limit_error
+ type: error
schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Not Found - Guardrail does not exist
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Rate limit error
+ '500':
content:
application/json:
+ example:
+ error:
+ message: Internal server error
+ type: api_error
+ type: error
schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: API error
+ '503':
content:
application/json:
+ example:
+ error:
+ message: Service temporarily overloaded
+ type: overloaded_error
+ type: error
schema:
- $ref: '#/components/schemas/InternalServerResponse'
- patch:
- operationId: updateGuardrail
- x-speakeasy-name-override: update
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Overloaded error
+ '529':
+ content:
+ application/json:
+ example:
+ error:
+ message: Provider is temporarily overloaded
+ type: overloaded_error
+ type: error
+ schema:
+ $ref: '#/components/schemas/MessagesErrorResponse'
+ description: Overloaded error
+ summary: Create a message
tags:
- - Guardrails
- summary: Update a guardrail
- description: Update an existing guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.
+ - Anthropic Messages
+ x-speakeasy-ignore: true
+ x-speakeasy-name-override: create
+ x-speakeasy-stream-request-field: stream
+ /models:
+ get:
+ operationId: getModels
parameters:
- - schema:
+ - description: Filter models by use case category
+ in: query
+ name: category
+ required: false
+ schema:
+ description: Filter models by use case category
+ enum:
+ - programming
+ - roleplay
+ - marketing
+ - marketing/seo
+ - technology
+ - science
+ - translation
+ - legal
+ - finance
+ - health
+ - trivia
+ - academia
+ example: programming
type: string
- format: uuid
- description: The unique identifier of the guardrail to update
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail to update
- name: id
- in: path
- requestBody:
- content:
- application/json:
- schema:
- type: object
- properties:
- name:
- type: string
- minLength: 1
- maxLength: 200
- description: New name for the guardrail
- example: Updated Guardrail Name
- description:
- type: string
- nullable: true
- maxLength: 1000
- description: New description for the guardrail
- example: Updated description
- limit_usd:
- type: number
- nullable: true
- minimum: 0
- exclusiveMinimum: true
- description: New spending limit in USD
- example: 75
- reset_interval:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: Interval at which the limit resets (daily, weekly, monthly)
- example: monthly
- allowed_providers:
- type: array
- nullable: true
- items:
- type: string
- minItems: 1
- description: New list of allowed provider IDs
- example:
- - openai
- - anthropic
- - deepseek
- ignored_providers:
- type: array
- nullable: true
- items:
- type: string
- minItems: 1
- description: List of provider IDs to exclude from routing
- example:
- - azure
- allowed_models:
- type: array
- nullable: true
- items:
- type: string
- minItems: 1
- description: Array of model identifiers (slug or canonical_slug accepted)
- example:
- - openai/gpt-5.2
- enforce_zdr:
- type: boolean
- nullable: true
- description: Whether to enforce zero data retention
- example: true
+ - description: Filter models by supported parameter (comma-separated)
+ in: query
+ name: supported_parameters
+ required: false
+ schema:
+ description: Filter models by supported parameter (comma-separated)
+ example: temperature
+ type: string
+ - description: >-
+ Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
+ embeddings) or "all" to include all models. Defaults to "text".
+ in: query
+ name: output_modalities
+ required: false
+ schema:
+ description: >-
+ Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
+ embeddings) or "all" to include all models. Defaults to "text".
+ example: text
+ type: string
+ - description: Return results as RSS feed
+ in: query
+ name: use_rss
+ required: false
+ schema:
+ description: Return results as RSS feed
+ example: 'true'
+ type: string
+ - description: Use chat links in RSS feed items
+ in: query
+ name: use_rss_chat_links
+ required: false
+ schema:
+ description: Use chat links in RSS feed items
+ example: 'true'
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ canonical_slug: openai/gpt-4
+ context_length: 8192
+ created: 1692901234
+ default_parameters: null
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ expiration_date: null
+ id: openai/gpt-4
+ knowledge_cutoff: null
+ links:
+ details: /api/v1/models/openai/gpt-5.4/endpoints
+ name: GPT-4
+ per_request_limits: null
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ top_provider:
+ context_length: 8192
+ is_moderated: true
+ max_completion_tokens: 4096
+ schema:
+ $ref: '#/components/schemas/ModelsListResponse'
+ application/rss+xml:
+ example: >-
+ OpenRouter
+ Models
+ schema:
+ type: string
+ description: Returns a list of models or RSS feed
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '500':
+ content:
+ application/json:
example:
- name: Updated Guardrail Name
- description: Updated description
- limit_usd: 75
- reset_interval: weekly
- required: true
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List all models and their properties
+ tags:
+ - Models
+ x-speakeasy-name-override: list
+ /models/{author}/{slug}/endpoints:
+ get:
+ operationId: listEndpoints
+ parameters:
+ - description: The author/organization of the model
+ in: path
+ name: author
+ required: true
+ schema:
+ description: The author/organization of the model
+ example: openai
+ type: string
+ - description: The model slug
+ in: path
+ name: slug
+ required: true
+ schema:
+ description: The model slug
+ example: gpt-4
+ type: string
responses:
'200':
- description: Guardrail updated successfully
content:
application/json:
+ example:
+ data:
+ architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ created: 1692901234
+ description: GPT-4 is a large multimodal model.
+ endpoints: []
+ id: openai/gpt-4
+ name: GPT-4
schema:
- type: object
+ example:
+ data:
+ architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ created: 1692901234
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ endpoints:
+ - context_length: 8192
+ latency_last_30m:
+ p50: 0.25
+ p75: 0.35
+ p90: 0.48
+ p99: 0.85
+ max_completion_tokens: 4096
+ max_prompt_tokens: 8192
+ model_id: openai/gpt-4
+ model_name: GPT-4
+ name: 'OpenAI: GPT-4'
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ provider_name: OpenAI
+ quantization: fp16
+ status: default
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ supports_implicit_caching: true
+ tag: openai
+ throughput_last_30m:
+ p50: 45.2
+ p75: 38.5
+ p90: 28.3
+ p99: 15.1
+ uptime_last_1d: 99.8
+ uptime_last_30m: 99.5
+ uptime_last_5m: 100
+ id: openai/gpt-4
+ name: GPT-4
properties:
data:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- name:
- type: string
- description: Name of the guardrail
- example: Production Guardrail
- description:
- type: string
- nullable: true
- description: Description of the guardrail
- example: Guardrail for production environment
- limit_usd:
- type: number
- nullable: true
- minimum: 0
- exclusiveMinimum: true
- description: Spending limit in USD
- example: 100
- reset_interval:
- type: string
- nullable: true
- enum:
- - daily
- - weekly
- - monthly
- description: Interval at which the limit resets (daily, weekly, monthly)
- example: monthly
- allowed_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of allowed provider IDs
- example:
- - openai
- - anthropic
- - google
- ignored_providers:
- type: array
- nullable: true
- items:
- type: string
- description: List of provider IDs to exclude from routing
- example:
- - azure
- allowed_models:
- type: array
- nullable: true
- items:
- type: string
- description: Array of model canonical_slugs (immutable identifiers)
- example:
- - openai/gpt-5.2-20251211
- - anthropic/claude-4.5-opus-20251124
- - deepseek/deepseek-r1-0528:free
- enforce_zdr:
- type: boolean
- nullable: true
- description: Whether to enforce zero data retention
- example: false
- created_at:
- type: string
- description: ISO 8601 timestamp of when the guardrail was created
- example: '2025-08-24T10:30:00Z'
- updated_at:
- type: string
- nullable: true
- description: ISO 8601 timestamp of when the guardrail was last updated
- example: '2025-08-24T15:45:00Z'
- required:
- - id
- - name
- - created_at
- example:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: Production Guardrail
- description: Guardrail for production environment
- limit_usd: 100
- reset_interval: monthly
- allowed_providers:
- - openai
- - anthropic
- - google
- ignored_providers: null
- allowed_models: null
- enforce_zdr: false
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T15:45:00Z'
- description: The updated guardrail
+ $ref: '#/components/schemas/ListEndpointsResponse'
required:
- data
- example:
- data:
- id: 550e8400-e29b-41d4-a716-446655440000
- name: Updated Guardrail Name
- description: Updated description
- limit_usd: 75
- reset_interval: weekly
- allowed_providers:
- - openai
- ignored_providers: null
- allowed_models: null
- enforce_zdr: true
- created_at: '2025-08-24T10:30:00Z'
- updated_at: '2025-08-24T16:00:00Z'
- '400':
- description: Bad Request - Invalid request parameters
+ type: object
+ description: Returns a list of endpoints
+ '404':
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Missing or invalid authentication
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Not Found - Guardrail does not exist
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List all endpoints for a model
+ tags:
+ - Endpoints
+ x-speakeasy-name-override: list
+ /models/count:
+ get:
+ operationId: listModelsCount
+ parameters:
+ - description: >-
+ Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
+ embeddings) or "all" to include all models. Defaults to "text".
+ in: query
+ name: output_modalities
+ required: false
+ schema:
+ description: >-
+ Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio,
+ embeddings) or "all" to include all models. Defaults to "text".
+ example: text
+ type: string
+ responses:
+ '200':
content:
application/json:
+ example:
+ data:
+ count: 150
schema:
- $ref: '#/components/schemas/NotFoundResponse'
+ $ref: '#/components/schemas/ModelsCountResponse'
+ description: Returns the total count of available models
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- delete:
- operationId: deleteGuardrail
- x-speakeasy-name-override: delete
+ description: Internal Server Error - Unexpected server error
+ summary: Get total count of available models
tags:
- - Guardrails
- summary: Delete a guardrail
- description: Delete an existing guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail to delete
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail to delete
- name: id
- in: path
+ - Models
+ x-speakeasy-name-override: count
+ /models/user:
+ get:
+ description: >-
+ List models filtered by user provider preferences, [privacy
+ settings](https://openrouter.ai/docs/guides/privacy/provider-logging), and
+ [guardrails](https://openrouter.ai/docs/guides/features/guardrails). If requesting through
+ `eu.openrouter.ai/api/v1/...` the results will be filtered to models that satisfy [EU in-region
+ routing](https://openrouter.ai/docs/guides/privacy/provider-logging#enterprise-eu-in-region-routing).
+ operationId: listModelsUser
responses:
'200':
- description: Guardrail deleted successfully
content:
application/json:
+ example:
+ data:
+ - architecture:
+ input_modalities:
+ - text
+ instruct_type: chatml
+ modality: text->text
+ output_modalities:
+ - text
+ tokenizer: GPT
+ canonical_slug: openai/gpt-4
+ context_length: 8192
+ created: 1692901234
+ default_parameters: null
+ description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.
+ expiration_date: null
+ id: openai/gpt-4
+ knowledge_cutoff: null
+ links:
+ details: /api/v1/models/openai/gpt-5.4/endpoints
+ name: GPT-4
+ per_request_limits: null
+ pricing:
+ completion: '0.00006'
+ image: '0'
+ prompt: '0.00003'
+ request: '0'
+ supported_parameters:
+ - temperature
+ - top_p
+ - max_tokens
+ top_provider:
+ context_length: 8192
+ is_moderated: true
+ max_completion_tokens: 4096
schema:
- type: object
- properties:
- deleted:
- type: boolean
- const: true
- description: Confirmation that the guardrail was deleted
- example: true
- required:
- - deleted
- example:
- deleted: true
+ $ref: '#/components/schemas/ModelsListResponse'
+ description: Returns a list of models filtered by user provider preferences
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
'404':
- description: Not Found - Guardrail does not exist
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
$ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- /guardrails/assignments/keys:
- get:
- operationId: listKeyAssignments
- x-speakeasy-name-override: listKeyAssignments
+ description: Internal Server Error - Unexpected server error
+ security:
+ - bearer: []
+ summary: List models filtered by user provider preferences, privacy settings, and guardrails
tags:
- - Guardrails
- summary: List all key assignments
+ - Models
+ x-speakeasy-name-override: listForUser
+ /organization/members:
+ get:
description: >-
- List all API key guardrail assignments for the authenticated user. [Management
+ List all members of the organization associated with the authenticated management key. [Management
key](/docs/guides/overview/auth/management-api-keys) required.
+ operationId: listOrganizationMembers
parameters:
- - schema:
- type: string
- description: Number of records to skip for pagination
- example: '0'
- required: false
- description: Number of records to skip for pagination
- name: offset
+ - description: Number of records to skip for pagination
in: query
- - schema:
- type: string
- description: Maximum number of records to return (max 100)
- example: '50'
+ name: offset
required: false
- description: Maximum number of records to return (max 100)
- name: limit
+ schema:
+ description: Number of records to skip for pagination
+ example: 0
+ minimum: 0
+ type: integer
+ - description: Maximum number of records to return (max 100)
in: query
+ name: limit
+ required: false
+ schema:
+ description: Maximum number of records to return (max 100)
+ example: 50
+ maximum: 100
+ minimum: 1
+ type: integer
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - email: jane.doe@example.com
+ first_name: Jane
+ id: user_2dHFtVWx2n56w6HkM0000000000
+ last_name: Doe
+ role: member
+ total_count: 25
+ schema:
+ properties:
+ data:
+ description: List of organization members
+ items:
+ properties:
+ email:
+ description: Email address of the member
+ example: jane.doe@example.com
+ type: string
+ first_name:
+ description: First name of the member
+ example: Jane
+ nullable: true
+ type: string
+ id:
+ description: User ID of the organization member
+ example: user_2dHFtVWx2n56w6HkM0000000000
+ type: string
+ last_name:
+ description: Last name of the member
+ example: Doe
+ nullable: true
+ type: string
+ role:
+ description: Role of the member in the organization
+ enum:
+ - org:admin
+ - org:member
+ example: org:member
+ type: string
+ required:
+ - id
+ - first_name
+ - last_name
+ - email
+ - role
+ type: object
+ type: array
+ total_count:
+ description: Total number of members in the organization
+ example: 25
+ type: integer
+ required:
+ - data
+ - total_count
+ type: object
+ description: List of organization members
+ '401':
+ content:
+ application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
+ schema:
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
+ content:
+ application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
+ schema:
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ summary: List organization members
+ tags:
+ - Organization
+ x-speakeasy-name-override: listMembers
+ x-speakeasy-pagination:
+ inputs:
+ - in: parameters
+ name: offset
+ type: offset
+ - in: parameters
+ name: limit
+ type: limit
+ outputs:
+ results: $.data
+ type: offsetLimit
+ /providers:
+ get:
+ operationId: listProviders
responses:
'200':
- description: List of key assignments
content:
application/json:
+ example:
+ data:
+ - datacenters:
+ - US
+ - IE
+ headquarters: US
+ name: OpenAI
+ privacy_policy_url: https://openai.com/privacy
+ slug: openai
+ status_page_url: https://status.openai.com
+ terms_of_service_url: https://openai.com/terms
schema:
- type: object
+ example:
+ data:
+ - datacenters:
+ - US
+ - IE
+ headquarters: US
+ name: OpenAI
+ privacy_policy_url: https://openai.com/privacy
+ slug: openai
+ status_page_url: https://status.openai.com
+ terms_of_service_url: https://openai.com/terms
properties:
data:
- type: array
items:
- type: object
+ example:
+ datacenters:
+ - US
+ - IE
+ headquarters: US
+ name: OpenAI
+ privacy_policy_url: https://openai.com/privacy
+ slug: openai
+ status_page_url: https://status.openai.com
+ terms_of_service_url: https://openai.com/terms
properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the assignment
- example: 550e8400-e29b-41d4-a716-446655440000
- key_hash:
- type: string
- description: Hash of the assigned API key
- example: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
- guardrail_id:
- type: string
- format: uuid
- description: ID of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440001
- key_name:
- type: string
- description: Name of the API key
- example: Production Key
- key_label:
- type: string
- description: Label of the API key
- example: prod-key
- assigned_by:
- type: string
+ datacenters:
+ description: ISO 3166-1 Alpha-2 country codes of the provider datacenter locations
+ example:
+ - US
+ - IE
+ items:
+ enum:
+ - AD
+ - AE
+ - AF
+ - AG
+ - AI
+ - AL
+ - AM
+ - AO
+ - AQ
+ - AR
+ - AS
+ - AT
+ - AU
+ - AW
+ - AX
+ - AZ
+ - BA
+ - BB
+ - BD
+ - BE
+ - BF
+ - BG
+ - BH
+ - BI
+ - BJ
+ - BL
+ - BM
+ - BN
+ - BO
+ - BQ
+ - BR
+ - BS
+ - BT
+ - BV
+ - BW
+ - BY
+ - BZ
+ - CA
+ - CC
+ - CD
+ - CF
+ - CG
+ - CH
+ - CI
+ - CK
+ - CL
+ - CM
+ - CN
+ - CO
+ - CR
+ - CU
+ - CV
+ - CW
+ - CX
+ - CY
+ - CZ
+ - DE
+ - DJ
+ - DK
+ - DM
+ - DO
+ - DZ
+ - EC
+ - EE
+ - EG
+ - EH
+ - ER
+ - ES
+ - ET
+ - FI
+ - FJ
+ - FK
+ - FM
+ - FO
+ - FR
+ - GA
+ - GB
+ - GD
+ - GE
+ - GF
+ - GG
+ - GH
+ - GI
+ - GL
+ - GM
+ - GN
+ - GP
+ - GQ
+ - GR
+ - GS
+ - GT
+ - GU
+ - GW
+ - GY
+ - HK
+ - HM
+ - HN
+ - HR
+ - HT
+ - HU
+ - ID
+ - IE
+ - IL
+ - IM
+ - IN
+ - IO
+ - IQ
+ - IR
+ - IS
+ - IT
+ - JE
+ - JM
+ - JO
+ - JP
+ - KE
+ - KG
+ - KH
+ - KI
+ - KM
+ - KN
+ - KP
+ - KR
+ - KW
+ - KY
+ - KZ
+ - LA
+ - LB
+ - LC
+ - LI
+ - LK
+ - LR
+ - LS
+ - LT
+ - LU
+ - LV
+ - LY
+ - MA
+ - MC
+ - MD
+ - ME
+ - MF
+ - MG
+ - MH
+ - MK
+ - ML
+ - MM
+ - MN
+ - MO
+ - MP
+ - MQ
+ - MR
+ - MS
+ - MT
+ - MU
+ - MV
+ - MW
+ - MX
+ - MY
+ - MZ
+ - NA
+ - NC
+ - NE
+ - NF
+ - NG
+ - NI
+ - NL
+ - 'NO'
+ - NP
+ - NR
+ - NU
+ - NZ
+ - OM
+ - PA
+ - PE
+ - PF
+ - PG
+ - PH
+ - PK
+ - PL
+ - PM
+ - PN
+ - PR
+ - PS
+ - PT
+ - PW
+ - PY
+ - QA
+ - RE
+ - RO
+ - RS
+ - RU
+ - RW
+ - SA
+ - SB
+ - SC
+ - SD
+ - SE
+ - SG
+ - SH
+ - SI
+ - SJ
+ - SK
+ - SL
+ - SM
+ - SN
+ - SO
+ - SR
+ - SS
+ - ST
+ - SV
+ - SX
+ - SY
+ - SZ
+ - TC
+ - TD
+ - TF
+ - TG
+ - TH
+ - TJ
+ - TK
+ - TL
+ - TM
+ - TN
+ - TO
+ - TR
+ - TT
+ - TV
+ - TW
+ - TZ
+ - UA
+ - UG
+ - UM
+ - US
+ - UY
+ - UZ
+ - VA
+ - VC
+ - VE
+ - VG
+ - VI
+ - VN
+ - VU
+ - WF
+ - WS
+ - YE
+ - YT
+ - ZA
+ - ZM
+ - ZW
+ type: string
+ nullable: true
+ type: array
+ headquarters:
+ description: ISO 3166-1 Alpha-2 country code of the provider headquarters
+ enum:
+ - AD
+ - AE
+ - AF
+ - AG
+ - AI
+ - AL
+ - AM
+ - AO
+ - AQ
+ - AR
+ - AS
+ - AT
+ - AU
+ - AW
+ - AX
+ - AZ
+ - BA
+ - BB
+ - BD
+ - BE
+ - BF
+ - BG
+ - BH
+ - BI
+ - BJ
+ - BL
+ - BM
+ - BN
+ - BO
+ - BQ
+ - BR
+ - BS
+ - BT
+ - BV
+ - BW
+ - BY
+ - BZ
+ - CA
+ - CC
+ - CD
+ - CF
+ - CG
+ - CH
+ - CI
+ - CK
+ - CL
+ - CM
+ - CN
+ - CO
+ - CR
+ - CU
+ - CV
+ - CW
+ - CX
+ - CY
+ - CZ
+ - DE
+ - DJ
+ - DK
+ - DM
+ - DO
+ - DZ
+ - EC
+ - EE
+ - EG
+ - EH
+ - ER
+ - ES
+ - ET
+ - FI
+ - FJ
+ - FK
+ - FM
+ - FO
+ - FR
+ - GA
+ - GB
+ - GD
+ - GE
+ - GF
+ - GG
+ - GH
+ - GI
+ - GL
+ - GM
+ - GN
+ - GP
+ - GQ
+ - GR
+ - GS
+ - GT
+ - GU
+ - GW
+ - GY
+ - HK
+ - HM
+ - HN
+ - HR
+ - HT
+ - HU
+ - ID
+ - IE
+ - IL
+ - IM
+ - IN
+ - IO
+ - IQ
+ - IR
+ - IS
+ - IT
+ - JE
+ - JM
+ - JO
+ - JP
+ - KE
+ - KG
+ - KH
+ - KI
+ - KM
+ - KN
+ - KP
+ - KR
+ - KW
+ - KY
+ - KZ
+ - LA
+ - LB
+ - LC
+ - LI
+ - LK
+ - LR
+ - LS
+ - LT
+ - LU
+ - LV
+ - LY
+ - MA
+ - MC
+ - MD
+ - ME
+ - MF
+ - MG
+ - MH
+ - MK
+ - ML
+ - MM
+ - MN
+ - MO
+ - MP
+ - MQ
+ - MR
+ - MS
+ - MT
+ - MU
+ - MV
+ - MW
+ - MX
+ - MY
+ - MZ
+ - NA
+ - NC
+ - NE
+ - NF
+ - NG
+ - NI
+ - NL
+ - 'NO'
+ - NP
+ - NR
+ - NU
+ - NZ
+ - OM
+ - PA
+ - PE
+ - PF
+ - PG
+ - PH
+ - PK
+ - PL
+ - PM
+ - PN
+ - PR
+ - PS
+ - PT
+ - PW
+ - PY
+ - QA
+ - RE
+ - RO
+ - RS
+ - RU
+ - RW
+ - SA
+ - SB
+ - SC
+ - SD
+ - SE
+ - SG
+ - SH
+ - SI
+ - SJ
+ - SK
+ - SL
+ - SM
+ - SN
+ - SO
+ - SR
+ - SS
+ - ST
+ - SV
+ - SX
+ - SY
+ - SZ
+ - TC
+ - TD
+ - TF
+ - TG
+ - TH
+ - TJ
+ - TK
+ - TL
+ - TM
+ - TN
+ - TO
+ - TR
+ - TT
+ - TV
+ - TW
+ - TZ
+ - UA
+ - UG
+ - UM
+ - US
+ - UY
+ - UZ
+ - VA
+ - VC
+ - VE
+ - VG
+ - VI
+ - VN
+ - VU
+ - WF
+ - WS
+ - YE
+ - YT
+ - ZA
+ - ZM
+ - ZW
+ - null
+ example: US
nullable: true
- description: User ID of who made the assignment
- example: user_abc123
- created_at:
- type: string
- description: ISO 8601 timestamp of when the assignment was created
- example: '2025-08-24T10:30:00Z'
- required:
- - id
- - key_hash
- - guardrail_id
- - key_name
- - key_label
- - assigned_by
- - created_at
- description: List of key assignments
- total_count:
- type: number
- description: Total number of key assignments for this guardrail
- example: 25
- required:
- - data
- - total_count
- '401':
- description: Unauthorized - Missing or invalid authentication
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /guardrails/assignments/members:
- get:
- operationId: listMemberAssignments
- x-speakeasy-name-override: listMemberAssignments
- tags:
- - Guardrails
- summary: List all member assignments
- description: >-
- List all organization member guardrail assignments for the authenticated user. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- description: Number of records to skip for pagination
- example: '0'
- required: false
- description: Number of records to skip for pagination
- name: offset
- in: query
- - schema:
- type: string
- description: Maximum number of records to return (max 100)
- example: '50'
- required: false
- description: Maximum number of records to return (max 100)
- name: limit
- in: query
- responses:
- '200':
- description: List of member assignments
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the assignment
- example: 550e8400-e29b-41d4-a716-446655440000
- user_id:
type: string
- description: Clerk user ID of the assigned member
- example: user_abc123
- organization_id:
- type: string
- description: Organization ID
- example: org_xyz789
- guardrail_id:
- type: string
- format: uuid
- description: ID of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440001
- assigned_by:
+ name:
+ description: Display name of the provider
+ example: OpenAI
type: string
+ privacy_policy_url:
+ description: URL to the provider's privacy policy
+ example: https://openai.com/privacy
nullable: true
- description: User ID of who made the assignment
- example: user_abc123
- created_at:
- type: string
- description: ISO 8601 timestamp of when the assignment was created
- example: '2025-08-24T10:30:00Z'
- required:
- - id
- - user_id
- - organization_id
- - guardrail_id
- - assigned_by
- - created_at
- description: List of member assignments
- total_count:
- type: number
- description: Total number of member assignments
- example: 10
- required:
- - data
- - total_count
- '401':
- description: Unauthorized - Missing or invalid authentication
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /guardrails/{id}/assignments/keys:
- get:
- operationId: listGuardrailKeyAssignments
- x-speakeasy-name-override: listGuardrailKeyAssignments
- tags:
- - Guardrails
- summary: List key assignments for a guardrail
- description: >-
- List all API key assignments for a specific guardrail. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail
- name: id
- in: path
- - schema:
- type: string
- description: Number of records to skip for pagination
- example: '0'
- required: false
- description: Number of records to skip for pagination
- name: offset
- in: query
- - schema:
- type: string
- description: Maximum number of records to return (max 100)
- example: '50'
- required: false
- description: Maximum number of records to return (max 100)
- name: limit
- in: query
- responses:
- '200':
- description: List of key assignments
- content:
- application/json:
- schema:
- type: object
- properties:
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the assignment
- example: 550e8400-e29b-41d4-a716-446655440000
- key_hash:
- type: string
- description: Hash of the assigned API key
- example: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
- guardrail_id:
type: string
- format: uuid
- description: ID of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440001
- key_name:
- type: string
- description: Name of the API key
- example: Production Key
- key_label:
+ slug:
+ description: URL-friendly identifier for the provider
+ example: openai
type: string
- description: Label of the API key
- example: prod-key
- assigned_by:
+ status_page_url:
+ description: URL to the provider's status page
+ example: https://status.openai.com
+ nullable: true
type: string
+ terms_of_service_url:
+ description: URL to the provider's terms of service
+ example: https://openai.com/terms
nullable: true
- description: User ID of who made the assignment
- example: user_abc123
- created_at:
type: string
- description: ISO 8601 timestamp of when the assignment was created
- example: '2025-08-24T10:30:00Z'
required:
- - id
- - key_hash
- - guardrail_id
- - key_name
- - key_label
- - assigned_by
- - created_at
- description: List of key assignments
- total_count:
- type: number
- description: Total number of key assignments for this guardrail
- example: 25
+ - name
+ - slug
+ - privacy_policy_url
+ type: object
+ type: array
required:
- data
- - total_count
- '401':
- description: Unauthorized - Missing or invalid authentication
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Guardrail not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
+ type: object
+ description: Returns a list of providers
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- post:
- operationId: bulkAssignKeysToGuardrail
- x-speakeasy-name-override: bulkAssignKeys
+ description: Internal Server Error - Unexpected server error
+ summary: List all providers
tags:
- - Guardrails
- summary: Bulk assign keys to a guardrail
- description: >-
- Assign multiple API keys to a specific guardrail. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail
- name: id
- in: path
+ - Providers
+ x-speakeasy-name-override: list
+ /rerank:
+ post:
+ description: Submits a rerank request to the rerank router
+ operationId: createRerank
requestBody:
content:
application/json:
schema:
- type: object
+ description: Rerank request input
+ example:
+ documents:
+ - Paris is the capital of France.
+ - Berlin is the capital of Germany.
+ model: cohere/rerank-v3.5
+ query: What is the capital of France?
+ top_n: 3
properties:
- key_hashes:
- type: array
+ documents:
+ description: The list of documents to rerank
+ example:
+ - Paris is the capital of France.
+ - Berlin is the capital of Germany.
items:
type: string
- minLength: 1
- minItems: 1
- description: Array of API key hashes to assign to the guardrail
- example:
- - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
+ type: array
+ model:
+ description: The rerank model to use
+ example: cohere/rerank-v3.5
+ type: string
+ provider:
+ allOf:
+ - $ref: '#/components/schemas/ProviderPreferences'
+ - description: Provider routing preferences for the request.
+ query:
+ description: The search query to rerank documents against
+ example: What is the capital of France?
+ type: string
+ top_n:
+ description: Number of most relevant documents to return
+ example: 3
+ exclusiveMinimum: 0
+ minimum: 0
+ type: integer
required:
- - key_hashes
+ - model
+ - query
+ - documents
+ type: object
required: true
responses:
'200':
- description: Assignment result
content:
application/json:
schema:
- type: object
+ description: Rerank response containing ranked results
+ example:
+ id: gen-rerank-1234567890-abc
+ model: cohere/rerank-v3.5
+ results:
+ - document:
+ text: Paris is the capital of France.
+ index: 0
+ relevance_score: 0.98
+ usage:
+ search_units: 1
+ total_tokens: 150
properties:
- assigned_count:
- type: number
- description: Number of keys successfully assigned
- example: 3
+ id:
+ description: Unique identifier for the rerank response (ORID format)
+ example: gen-rerank-1234567890-abc
+ type: string
+ model:
+ description: The model used for reranking
+ example: cohere/rerank-v3.5
+ type: string
+ provider:
+ description: The provider that served the rerank request
+ example: Cohere
+ type: string
+ results:
+ description: List of rerank results sorted by relevance
+ example:
+ - document:
+ text: Paris is the capital of France.
+ index: 0
+ relevance_score: 0.98
+ items:
+ description: A single rerank result
+ example:
+ document:
+ text: Paris is the capital of France.
+ index: 0
+ relevance_score: 0.98
+ properties:
+ document:
+ description: The document object containing the original text
+ properties:
+ text:
+ description: The document text
+ example: Paris is the capital of France.
+ type: string
+ required:
+ - text
+ type: object
+ index:
+ description: Index of the document in the original input list
+ example: 0
+ type: integer
+ relevance_score:
+ description: Relevance score of the document to the query
+ example: 0.98
+ format: double
+ type: number
+ required:
+ - index
+ - relevance_score
+ - document
+ type: object
+ type: array
+ usage:
+ description: Usage statistics
+ example:
+ search_units: 1
+ total_tokens: 150
+ properties:
+ cost:
+ description: Cost of the request in credits
+ example: 0.001
+ format: double
+ type: number
+ search_units:
+ description: Number of search units consumed (Cohere billing)
+ example: 1
+ type: integer
+ total_tokens:
+ description: Total number of tokens used
+ example: 150
+ type: integer
+ type: object
required:
- - assigned_count
+ - model
+ - results
+ type: object
+ text/event-stream:
+ example: 'data: [DONE]'
+ schema:
+ description: Not used for rerank - rerank does not support streaming
+ type: string
+ x-speakeasy-sse-sentinel: '[DONE]'
+ description: Rerank response
'400':
- description: Bad Request - Invalid input
content:
application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
schema:
$ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '402':
+ content:
+ application/json:
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ schema:
+ $ref: '#/components/schemas/PaymentRequiredResponse'
+ description: Payment Required - Insufficient credits or quota to complete request
'404':
- description: Guardrail not found
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
$ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '429':
+ content:
+ application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ schema:
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
'500':
- description: Internal Server Error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- /guardrails/{id}/assignments/members:
- get:
- operationId: listGuardrailMemberAssignments
- x-speakeasy-name-override: listGuardrailMemberAssignments
- tags:
- - Guardrails
- summary: List member assignments for a guardrail
- description: >-
- List all organization member assignments for a specific guardrail. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail
- name: id
- in: path
- - schema:
- type: string
- description: Number of records to skip for pagination
- example: '0'
- required: false
- description: Number of records to skip for pagination
- name: offset
- in: query
- - schema:
- type: string
- description: Maximum number of records to return (max 100)
- example: '50'
- required: false
- description: Maximum number of records to return (max 100)
- name: limit
- in: query
- responses:
- '200':
- description: List of member assignments
+ description: Internal Server Error - Unexpected server error
+ '502':
content:
application/json:
+ example:
+ error:
+ code: 502
+ message: Provider returned error
schema:
- type: object
- properties:
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- description: Unique identifier for the assignment
- example: 550e8400-e29b-41d4-a716-446655440000
- user_id:
- type: string
- description: Clerk user ID of the assigned member
- example: user_abc123
- organization_id:
- type: string
- description: Organization ID
- example: org_xyz789
- guardrail_id:
- type: string
- format: uuid
- description: ID of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440001
- assigned_by:
- type: string
- nullable: true
- description: User ID of who made the assignment
- example: user_abc123
- created_at:
- type: string
- description: ISO 8601 timestamp of when the assignment was created
- example: '2025-08-24T10:30:00Z'
- required:
- - id
- - user_id
- - organization_id
- - guardrail_id
- - assigned_by
- - created_at
- description: List of member assignments
- total_count:
- type: number
- description: Total number of member assignments
- example: 10
- required:
- - data
- - total_count
- '401':
- description: Unauthorized - Missing or invalid authentication
+ $ref: '#/components/schemas/BadGatewayResponse'
+ description: Bad Gateway - Provider/upstream API failure
+ '503':
content:
application/json:
+ example:
+ error:
+ code: 503
+ message: Service temporarily unavailable
schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Guardrail not found
+ $ref: '#/components/schemas/ServiceUnavailableResponse'
+ description: Service Unavailable - Service temporarily unavailable
+ '524':
content:
application/json:
+ example:
+ error:
+ code: 524
+ message: Request timed out. Please try again later.
schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error
+ $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
+ description: Infrastructure Timeout - Provider request timed out at edge network
+ '529':
content:
application/json:
+ example:
+ error:
+ code: 529
+ message: Provider returned error
schema:
- $ref: '#/components/schemas/InternalServerResponse'
- post:
- operationId: bulkAssignMembersToGuardrail
- x-speakeasy-name-override: bulkAssignMembers
+ $ref: '#/components/schemas/ProviderOverloadedResponse'
+ description: Provider Overloaded - Provider is temporarily overloaded
+ summary: Submit a rerank request
tags:
- - Guardrails
- summary: Bulk assign members to a guardrail
- description: >-
- Assign multiple organization members to a specific guardrail. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail
- name: id
- in: path
+ - Rerank
+ x-speakeasy-name-override: rerank
+ /responses:
+ post:
+ description: Creates a streaming or non-streaming response using OpenResponses API format
+ operationId: createResponses
requestBody:
content:
application/json:
+ example:
+ input: Tell me a joke
+ model: openai/gpt-4o
schema:
- type: object
- properties:
- member_user_ids:
- type: array
- items:
- type: string
- minLength: 1
- minItems: 1
- description: Array of member user IDs to assign to the guardrail
- example:
- - user_abc123
- - user_def456
- required:
- - member_user_ids
+ $ref: '#/components/schemas/ResponsesRequest'
required: true
responses:
'200':
- description: Assignment result
content:
application/json:
+ example:
+ created_at: 1700000000
+ id: resp_abc123
+ model: openai/gpt-4o
+ object: response
+ output:
+ - content:
+ - text: Why did the chicken cross the road? To get to the other side!
+ type: output_text
+ role: assistant
+ type: message
+ status: completed
+ usage:
+ completion_tokens: 20
+ prompt_tokens: 10
+ total_tokens: 30
+ schema:
+ $ref: '#/components/schemas/OpenResponsesResult'
+ text/event-stream:
+ example:
+ data:
+ delta: Hello
+ type: response.output_text.delta
schema:
- type: object
properties:
- assigned_count:
- type: number
- description: Number of members successfully assigned
- example: 2
+ data:
+ $ref: '#/components/schemas/StreamEvents'
required:
- - assigned_count
+ - data
+ type: object
+ x-speakeasy-sse-sentinel: '[DONE]'
+ description: Successful response
'400':
- description: Bad Request - Invalid input
content:
application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
schema:
$ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '402':
+ content:
+ application/json:
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
+ schema:
+ $ref: '#/components/schemas/PaymentRequiredResponse'
+ description: Payment Required - Insufficient credits or quota to complete request
'404':
- description: Guardrail not found
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
$ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error
+ description: Not Found - Resource does not exist
+ '408':
content:
application/json:
+ example:
+ error:
+ code: 408
+ message: Operation timed out. Please try again later.
schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /guardrails/{id}/assignments/keys/remove:
- post:
- operationId: bulkUnassignKeysFromGuardrail
- x-speakeasy-name-override: bulkUnassignKeys
- tags:
- - Guardrails
- summary: Bulk unassign keys from a guardrail
- description: >-
- Unassign multiple API keys from a specific guardrail. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail
- name: id
- in: path
- requestBody:
- content:
- application/json:
- schema:
- type: object
- properties:
- key_hashes:
- type: array
- items:
- type: string
- minLength: 1
- minItems: 1
- description: Array of API key hashes to unassign from the guardrail
- example:
- - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93
- required:
- - key_hashes
- required: true
- responses:
- '200':
- description: Unassignment result
+ $ref: '#/components/schemas/RequestTimeoutResponse'
+ description: Request Timeout - Operation exceeded time limit
+ '413':
content:
application/json:
+ example:
+ error:
+ code: 413
+ message: Request payload too large
schema:
- type: object
- properties:
- unassigned_count:
- type: number
- description: Number of keys successfully unassigned
- example: 3
- required:
- - unassigned_count
- '400':
- description: Bad Request - Invalid input
+ $ref: '#/components/schemas/PayloadTooLargeResponse'
+ description: Payload Too Large - Request payload exceeds size limits
+ '422':
content:
application/json:
+ example:
+ error:
+ code: 422
+ message: Invalid argument
schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '401':
- description: Unauthorized - Missing or invalid authentication
+ $ref: '#/components/schemas/UnprocessableEntityResponse'
+ description: Unprocessable Entity - Semantic validation failure
+ '429':
content:
application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Guardrail not found
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
+ '500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
+ description: Internal Server Error - Unexpected server error
+ '502':
+ content:
+ application/json:
+ example:
+ error:
+ code: 502
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/BadGatewayResponse'
+ description: Bad Gateway - Provider/upstream API failure
+ '503':
+ content:
+ application/json:
+ example:
+ error:
+ code: 503
+ message: Service temporarily unavailable
+ schema:
+ $ref: '#/components/schemas/ServiceUnavailableResponse'
+ description: Service Unavailable - Service temporarily unavailable
+ '524':
content:
application/json:
+ example:
+ error:
+ code: 524
+ message: Request timed out. Please try again later.
schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error
+ $ref: '#/components/schemas/EdgeNetworkTimeoutResponse'
+ description: Infrastructure Timeout - Provider request timed out at edge network
+ '529':
content:
application/json:
+ example:
+ error:
+ code: 529
+ message: Provider returned error
schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /guardrails/{id}/assignments/members/remove:
- post:
- operationId: bulkUnassignMembersFromGuardrail
- x-speakeasy-name-override: bulkUnassignMembers
+ $ref: '#/components/schemas/ProviderOverloadedResponse'
+ description: Provider Overloaded - Provider is temporarily overloaded
+ summary: Create a response
tags:
- - Guardrails
- summary: Bulk unassign members from a guardrail
- description: >-
- Unassign multiple organization members from a specific guardrail. [Management
- key](/docs/guides/overview/auth/management-api-keys) required.
- parameters:
- - schema:
- type: string
- format: uuid
- description: The unique identifier of the guardrail
- example: 550e8400-e29b-41d4-a716-446655440000
- required: true
- description: The unique identifier of the guardrail
- name: id
- in: path
+ - beta.responses
+ x-speakeasy-name-override: send
+ x-speakeasy-stream-request-field: stream
+ /videos:
+ post:
+ description: Submits a video generation request and returns a polling URL to check status
+ operationId: createVideos
requestBody:
content:
application/json:
+ example:
+ aspect_ratio: '16:9'
+ duration: 8
+ model: google/veo-3.1
+ prompt: A serene mountain landscape at sunset
+ resolution: 720p
schema:
- type: object
- properties:
- member_user_ids:
- type: array
- items:
- type: string
- minLength: 1
- minItems: 1
- description: Array of member user IDs to unassign from the guardrail
- example:
- - user_abc123
- - user_def456
- required:
- - member_user_ids
+ $ref: '#/components/schemas/VideoGenerationRequest'
required: true
responses:
- '200':
- description: Unassignment result
+ '202':
content:
application/json:
+ example:
+ generation_id: gen-xyz789
+ id: job-abc123
+ polling_url: /api/v1/videos/job-abc123
+ status: pending
schema:
- type: object
- properties:
- unassigned_count:
- type: number
- description: Number of members successfully unassigned
- example: 2
- required:
- - unassigned_count
+ $ref: '#/components/schemas/VideoGenerationResponse'
+ description: Video generation request accepted
'400':
- description: Bad Request - Invalid input
content:
application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
schema:
$ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'401':
- description: Unauthorized - Missing or invalid authentication
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
- '404':
- description: Guardrail not found
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/NotFoundResponse'
- '500':
- description: Internal Server Error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/InternalServerResponse'
- /key:
- get:
- operationId: getCurrentKey
- x-speakeasy-name-override: getCurrentKeyMetadata
- tags:
- - API Keys
- summary: Get current API key
- description: Get information on the API key associated with the current authentication session
- responses:
- '200':
- description: API key details
+ description: Unauthorized - Authentication required or invalid credentials
+ '402':
content:
application/json:
+ example:
+ error:
+ code: 402
+ message: Insufficient credits. Add more using https://openrouter.ai/credits
schema:
- type: object
- properties:
- data:
- type: object
- properties:
- label:
- type: string
- description: Human-readable label for the API key
- example: sk-or-v1-0e6...1c96
- limit:
- type: number
- nullable: true
- description: Spending limit for the API key in USD
- example: 100
- usage:
- type: number
- description: Total OpenRouter credit usage (in USD) for the API key
- example: 25.5
- usage_daily:
- type: number
- description: OpenRouter credit usage (in USD) for the current UTC day
- example: 25.5
- usage_weekly:
- type: number
- description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)
- example: 25.5
- usage_monthly:
- type: number
- description: OpenRouter credit usage (in USD) for the current UTC month
- example: 25.5
- byok_usage:
- type: number
- description: Total external BYOK usage (in USD) for the API key
- example: 17.38
- byok_usage_daily:
- type: number
- description: External BYOK usage (in USD) for the current UTC day
- example: 17.38
- byok_usage_weekly:
- type: number
- description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday)
- example: 17.38
- byok_usage_monthly:
- type: number
- description: External BYOK usage (in USD) for current UTC month
- example: 17.38
- is_free_tier:
- type: boolean
- description: Whether this is a free tier API key
- example: false
- is_management_key:
- type: boolean
- description: Whether this is a management key
- example: false
- is_provisioning_key:
- type: boolean
- description: Whether this is a management key
- deprecated: true
- example: false
- limit_remaining:
- type: number
- nullable: true
- description: Remaining spending limit in USD
- example: 74.5
- limit_reset:
- type: string
- nullable: true
- description: Type of limit reset for the API key
- example: monthly
- include_byok_in_limit:
- type: boolean
- description: Whether to include external BYOK usage in the credit limit
- example: false
- expires_at:
- type: string
- nullable: true
- format: date-time
- description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration
- example: '2027-12-31T23:59:59Z'
- creator_user_id:
- type: string
- nullable: true
- description: >-
- The user ID of the key creator. For organization-owned keys, this is the member who created
- the key. For individual users, this is the user's own ID.
- example: user_2dHFtVWx2n56w6HkM0000000000
- rate_limit:
- type: object
- properties:
- requests:
- type: number
- description: Number of requests allowed per interval
- example: 1000
- interval:
- type: string
- description: Rate limit interval
- example: 1h
- note:
- type: string
- description: Note about the rate limit
- example: This field is deprecated and safe to ignore.
- required:
- - requests
- - interval
- - note
- description: Legacy rate limit information about a key. Will always return -1.
- deprecated: true
- example:
- requests: 1000
- interval: 1h
- note: This field is deprecated and safe to ignore.
- required:
- - label
- - limit
- - usage
- - usage_daily
- - usage_weekly
- - usage_monthly
- - byok_usage
- - byok_usage_daily
- - byok_usage_weekly
- - byok_usage_monthly
- - is_free_tier
- - is_management_key
- - is_provisioning_key
- - limit_remaining
- - limit_reset
- - include_byok_in_limit
- - creator_user_id
- - rate_limit
- description: Current API key information
- example:
- label: sk-or-v1-au7...890
- limit: 100
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- is_free_tier: false
- is_management_key: false
- is_provisioning_key: false
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- rate_limit:
- requests: 1000
- interval: 1h
- note: This field is deprecated and safe to ignore.
- required:
- - data
- example:
- data:
- label: sk-or-v1-au7...890
- limit: 100
- usage: 25.5
- usage_daily: 25.5
- usage_weekly: 25.5
- usage_monthly: 25.5
- byok_usage: 17.38
- byok_usage_daily: 17.38
- byok_usage_weekly: 17.38
- byok_usage_monthly: 17.38
- is_free_tier: false
- is_management_key: false
- is_provisioning_key: false
- limit_remaining: 74.5
- limit_reset: monthly
- include_byok_in_limit: false
- expires_at: '2027-12-31T23:59:59Z'
- creator_user_id: user_2dHFtVWx2n56w6HkM0000000000
- rate_limit:
- requests: 1000
- interval: 1h
- note: This field is deprecated and safe to ignore.
- '401':
- description: Unauthorized - Authentication required or invalid credentials
+ $ref: '#/components/schemas/PaymentRequiredResponse'
+ description: Payment Required - Insufficient credits or quota to complete request
+ '404':
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
- $ref: '#/components/schemas/UnauthorizedResponse'
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
+ '429':
+ content:
+ application/json:
+ example:
+ error:
+ code: 429
+ message: Rate limit exceeded
+ schema:
+ $ref: '#/components/schemas/TooManyRequestsResponse'
+ description: Too Many Requests - Rate limit exceeded
'500':
- description: Internal Server Error - Unexpected server error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- /auth/keys:
- post:
- operationId: exchangeAuthCodeForAPIKey
+ description: Internal Server Error - Unexpected server error
+ summary: Submit a video generation request
tags:
- - OAuth
- summary: Exchange authorization code for API key
- description: Exchange an authorization code from the PKCE flow for a user-controlled API key
- requestBody:
- content:
- application/json:
- schema:
- type: object
- properties:
- code:
- type: string
- description: The authorization code received from the OAuth redirect
- example: auth_code_abc123def456
- code_verifier:
- type: string
- description: The code verifier if code_challenge was used in the authorization request
- example: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
- code_challenge_method:
- type: string
- nullable: true
- enum:
- - S256
- - plain
- description: The method used to generate the code challenge
- example: S256
- required:
- - code
- example:
- code: auth_code_abc123def456
- code_verifier: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
- code_challenge_method: S256
- required: true
+ - Video Generation
+ x-speakeasy-name-override: generate
+ /videos/{jobId}:
+ get:
+ description: Returns job status and content URLs when completed
+ operationId: getVideos
+ parameters:
+ - in: path
+ name: jobId
+ required: true
+ schema:
+ example: job-abc123
+ minLength: 1
+ type: string
responses:
'200':
- description: Successfully exchanged code for an API key
content:
application/json:
+ example:
+ generation_id: gen-xyz789
+ id: job-abc123
+ polling_url: /api/v1/videos/job-abc123
+ status: complete
+ unsigned_urls:
+ - https://storage.example.com/video.mp4
+ usage:
+ cost: 0.5
schema:
- type: object
- properties:
- key:
- type: string
- description: The API key to use for OpenRouter requests
- example: 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
- user_id:
- type: string
- nullable: true
- description: User ID associated with the API key
- example: user_2yOPcMpKoQhcd4bVgSMlELRaIah
- required:
- - key
- - user_id
- example:
- key: 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
- user_id: user_2yOPcMpKoQhcd4bVgSMlELRaIah
- '400':
- description: Bad Request - Invalid request parameters or malformed input
+ $ref: '#/components/schemas/VideoGenerationResponse'
+ description: Video generation status
+ '401':
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
- $ref: '#/components/schemas/BadRequestResponse'
- '403':
- description: Forbidden - Authentication successful but insufficient permissions
+ $ref: '#/components/schemas/UnauthorizedResponse'
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
- $ref: '#/components/schemas/ForbiddenResponse'
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
'500':
- description: Internal Server Error - Unexpected server error
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- /auth/keys/code:
- post:
- x-speakeasy-name-override: createAuthCode
+ description: Internal Server Error - Unexpected server error
+ summary: Poll video generation status
tags:
- - OAuth
- summary: Create authorization code
- description: Create an authorization code for the PKCE flow to generate a user-controlled API key
- requestBody:
- content:
- application/json:
- schema:
- type: object
- properties:
- callback_url:
- type: string
- format: uri
- description: >-
- The callback URL to redirect to after authorization. Note, only https URLs on ports 443 and 3000 are
- allowed.
- example: https://myapp.com/auth/callback
- code_challenge:
- type: string
- description: PKCE code challenge for enhanced security
- example: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
- code_challenge_method:
- type: string
- enum:
- - S256
- - plain
- description: The method used to generate the code challenge
- example: S256
- limit:
- type: number
- description: Credit limit for the API key to be created
- example: 100
- expires_at:
- type: string
- nullable: true
- format: date-time
- description: Optional expiration time for the API key to be created
- key_label:
- type: string
- maxLength: 100
- description: Optional custom label for the API key. Defaults to the app name if not provided.
- example: My Custom Key
- usage_limit_type:
- type: string
- enum:
- - daily
- - weekly
- - monthly
- description: Optional credit limit reset interval. When set, the credit limit resets on this interval.
- example: monthly
- spawn_agent:
- type: string
- description: Agent identifier for spawn telemetry
- x-speakeasy-ignore: true
- x-fern-ignore: true
- spawn_cloud:
- type: string
- description: Cloud identifier for spawn telemetry
- x-speakeasy-ignore: true
- x-fern-ignore: true
- required:
- - callback_url
- example:
- callback_url: https://myapp.com/auth/callback
- code_challenge: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
- code_challenge_method: S256
- limit: 100
- required: true
+ - Video Generation
+ x-speakeasy-name-override: getGeneration
+ /videos/{jobId}/content:
+ get:
+ description: Streams the generated video content from the upstream provider
+ operationId: listVideosContent
+ parameters:
+ - in: path
+ name: jobId
+ required: true
+ schema:
+ example: job-abc123
+ minLength: 1
+ type: string
+ - in: query
+ name: index
+ required: false
+ schema:
+ default: 0
+ example: 0
+ minimum: 0
+ nullable: true
+ type: integer
responses:
'200':
- description: Successfully created authorization code
content:
- application/json:
+ application/octet-stream:
+ example:
schema:
- type: object
- properties:
- data:
- type: object
- properties:
- id:
- type: string
- description: The authorization code ID to use in the exchange request
- example: auth_code_xyz789
- app_id:
- type: number
- description: The application ID associated with this auth code
- example: 12345
- created_at:
- type: string
- description: ISO 8601 timestamp of when the auth code was created
- example: '2025-08-24T10:30:00Z'
- required:
- - id
- - app_id
- - created_at
- description: Auth code data
- example:
- id: auth_code_xyz789
- app_id: 12345
- created_at: '2025-08-24T10:30:00Z'
- required:
- - data
+ format: binary
+ type: string
+ description: Video content stream
'400':
- description: Bad Request - Invalid request parameters or malformed input
content:
application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
schema:
$ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
'401':
- description: Unauthorized - Authentication required or invalid credentials
content:
application/json:
+ example:
+ error:
+ code: 401
+ message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
- '409':
- description: Conflict - App upsert conflict during auth code creation
+ description: Unauthorized - Authentication required or invalid credentials
+ '404':
content:
application/json:
+ example:
+ error:
+ code: 404
+ message: Resource not found
schema:
- $ref: '#/components/schemas/ConflictResponse'
+ $ref: '#/components/schemas/NotFoundResponse'
+ description: Not Found - Resource does not exist
'500':
+ content:
+ application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
+ schema:
+ $ref: '#/components/schemas/InternalServerResponse'
description: Internal Server Error - Unexpected server error
+ '502':
+ content:
+ application/json:
+ example:
+ error:
+ code: 502
+ message: Provider returned error
+ schema:
+ $ref: '#/components/schemas/BadGatewayResponse'
+ description: Bad Gateway - Provider/upstream API failure
+ summary: Download generated video content
+ tags:
+ - Video Generation
+ x-speakeasy-name-override: getVideoContent
+ /videos/models:
+ get:
+ description: Returns a list of all available video generation models and their properties
+ operationId: listVideosModels
+ responses:
+ '200':
+ content:
+ application/json:
+ example:
+ data:
+ - allowed_passthrough_parameters: []
+ canonical_slug: google/veo-3.1
+ created: 1700000000
+ description: Google video generation model
+ id: google/veo-3.1
+ name: Veo 3.1
+ pricing_skus:
+ generate: '0.50'
+ supported_aspect_ratios:
+ - '16:9'
+ supported_durations:
+ - 5
+ - 8
+ supported_resolutions:
+ - 720p
+ supported_sizes: null
+ schema:
+ $ref: '#/components/schemas/VideoModelsListResponse'
+ description: Returns a list of video generation models
+ '400':
+ content:
+ application/json:
+ example:
+ error:
+ code: 400
+ message: Invalid request parameters
+ schema:
+ $ref: '#/components/schemas/BadRequestResponse'
+ description: Bad Request - Invalid request parameters or malformed input
+ '500':
content:
application/json:
+ example:
+ error:
+ code: 500
+ message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
- operationId: createAuthKeysCode
+ description: Internal Server Error - Unexpected server error
+ summary: List all video generation models
+ tags:
+ - Video Generation
+security:
+ - apiKey: []
+servers:
+ - description: Production server
+ url: https://openrouter.ai/api/v1
+ x-speakeasy-server-id: production
tags:
- - name: API Keys
- description: API key management endpoints
- - name: Analytics
- description: Analytics and usage endpoints
- - name: Anthropic Messages
- description: Anthropic Messages endpoints
- - name: Chat
- description: Chat completion endpoints
- - name: Credits
- description: Credit management endpoints
- - name: Embeddings
- description: Text embedding endpoints
- - name: Endpoints
- description: Endpoint information
- - name: Generations
- description: Generation history endpoints
- - name: Guardrails
- description: Guardrails endpoints
- - name: Models
- description: Model information endpoints
- - name: OAuth
- description: OAuth authentication endpoints
- - name: Providers
- description: Provider information endpoints
- - name: beta.responses
- description: beta.responses endpoints
+ - description: API key management endpoints
+ name: API Keys
+ - description: Analytics and usage endpoints
+ name: Analytics
+ - description: Anthropic Messages endpoints
+ name: Anthropic Messages
+ - description: Chat completion endpoints
+ name: Chat
+ - description: Credit management endpoints
+ name: Credits
+ - description: Text embedding endpoints
+ name: Embeddings
+ - description: Endpoint information
+ name: Endpoints
+ - description: Generation history endpoints
+ name: Generations
+ - description: Guardrails endpoints
+ name: Guardrails
+ - description: Model information endpoints
+ name: Models
+ - description: OAuth authentication endpoints
+ name: OAuth
+ - description: Organization endpoints
+ name: Organization
+ - description: Provider information endpoints
+ name: Providers
+ - description: Rerank endpoints
+ name: Rerank
+ - description: Video Generation endpoints
+ name: Video Generation
+ - description: beta.responses endpoints
+ name: beta.responses
x-fern-base-path: /
x-retry-strategy:
- type: exponential
initialDelay: 500
- maxDelay: 60000
maxAttempts: 3
+ maxDelay: 60000
+ type: exponential
+x-speakeasy-retries:
+ backoff:
+ exponent: 1.5
+ initialInterval: 500
+ maxElapsedTime: 3600000
+ maxInterval: 60000
+ retryConnectionErrors: true
+ statusCodes:
+ - 5XX
+ strategy: backoff