Files
openrouter-python-sdk-retry…/.speakeasy/in.openapi.yaml
T

6068 lines
183 KiB
YAML

openapi: 3.1.0
info:
title: OpenRouter API
version: 1.0.0
description: OpenAI-compatible Chat Completions and Completions 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
components:
schemas:
FileCitationAnnotation:
type: object
properties:
type:
type: string
enum:
- file_citation
file_id:
type: string
filename:
type: string
index:
type: number
required:
- type
- file_id
- filename
- index
example:
type: file_citation
file_id: file-abc123
filename: research_paper.pdf
index: 0
URLCitationAnnotation:
type: object
properties:
type:
type: string
enum:
- url_citation
end_index:
type: number
start_index:
type: number
title:
type: string
url:
type: string
required:
- type
- end_index
- start_index
- title
- url
example:
type: url_citation
start_index: 0
end_index: 42
title: OpenRouter Documentation
url: https://openrouter.ai/docs
FilePathAnnotation:
type: object
properties:
type:
type: string
enum:
- file_path
file_id:
type: string
index:
type: number
required:
- type
- file_id
- index
example:
type: file_path
file_id: file-xyz789
index: 0
OutputTextContent:
type: object
properties:
type:
type: string
enum:
- output_text
text:
type: string
annotations:
type: array
items:
anyOf:
- $ref: '#/components/schemas/FileCitationAnnotation'
- $ref: '#/components/schemas/URLCitationAnnotation'
- $ref: '#/components/schemas/FilePathAnnotation'
required:
- type
- text
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
RefusalContent:
type: object
properties:
type:
type: string
enum:
- refusal
refusal:
type: string
required:
- type
- refusal
example:
type: refusal
refusal: I'm sorry, I cannot assist with that request
OutputMessage:
type: object
properties:
id:
type: string
role:
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/OutputTextContent'
- $ref: '#/components/schemas/RefusalContent'
required:
- id
- role
- type
- status
- content
example:
id: msg-abc123
role: assistant
type: message
status: completed
content:
- type: output_text
text: Hello! How can I help you today?
ResponsesOutputMessage:
allOf:
- $ref: '#/components/schemas/OutputMessage'
- type: object
properties: {}
example:
id: msg-abc123
role: assistant
type: message
status: completed
content:
- type: output_text
text: Hello! How can I help you today?
ReasoningTextContent:
type: object
properties:
type:
type: string
enum:
- reasoning_text
text:
type: string
required:
- type
- text
example:
type: reasoning_text
text: Let me think step by step about this problem...
ReasoningSummaryText:
type: object
properties:
type:
type: string
enum:
- summary_text
text:
type: string
required:
- type
- text
example:
type: summary_text
text: Analyzed the problem using first principles
ResponsesOutputItemReasoning:
type: object
properties:
type:
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:
type: string
nullable: true
required:
- type
- summary
OutputItemFunctionCall:
type: object
properties:
type:
type: string
enum:
- function_call
id:
type: string
name:
type: string
arguments:
type: string
call_id:
type: string
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
ResponsesOutputItemFunctionCall:
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:
type: object
properties:
type:
type: string
enum:
- web_search_call
id:
type: string
status:
$ref: '#/components/schemas/WebSearchStatus'
required:
- type
- id
- status
example:
type: web_search_call
id: search-abc123
status: completed
ResponsesWebSearchCallOutput:
allOf:
- $ref: '#/components/schemas/OutputItemWebSearchCall'
- type: object
properties: {}
example:
type: web_search_call
id: search-abc123
status: completed
OutputItemFileSearchCall:
type: object
properties:
type:
type: string
enum:
- file_search_call
id:
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
ResponsesOutputItemFileSearchCall:
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:
type: object
properties:
type:
type: string
enum:
- image_generation_call
id:
type: string
result:
type: string
nullable: true
status:
$ref: '#/components/schemas/ImageGenerationStatus'
required:
- type
- id
- result
- status
example:
type: image_generation_call
id: imagegen-abc123
result: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
status: completed
ResponsesImageGenerationCall:
allOf:
- $ref: '#/components/schemas/OutputItemImageGenerationCall'
- type: object
properties: {}
example:
type: image_generation_call
id: imagegen-abc123
result: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
status: completed
ResponsesOutputItem:
anyOf:
- $ref: '#/components/schemas/ResponsesOutputMessage'
- $ref: '#/components/schemas/ResponsesOutputItemReasoning'
- $ref: '#/components/schemas/ResponsesOutputItemFunctionCall'
- $ref: '#/components/schemas/ResponsesWebSearchCallOutput'
- $ref: '#/components/schemas/ResponsesOutputItemFileSearchCall'
- $ref: '#/components/schemas/ResponsesImageGenerationCall'
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:
type: object
nullable: true
properties:
code:
type: string
enum:
- server_error
- rate_limit_exceeded
- invalid_prompt
message:
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.
ResponsesUsage:
type: object
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
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
required:
- input_tokens
- input_tokens_details
- output_tokens
- output_tokens_details
- total_tokens
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
OutputItemReasoning:
type: object
properties:
type:
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:
type: string
nullable: true
required:
- type
- id
- summary
example:
type: reasoning
id: reasoning-abc123
summary:
- type: summary_text
text: Analyzed the problem using first principles
OpenResponsesReasoning:
allOf:
- $ref: '#/components/schemas/OutputItemReasoning'
- type: object
properties:
signature:
type: string
nullable: true
format:
type: string
nullable: true
enum:
- unknown
- openai-responses-v1
- xai-responses-v1
- anthropic-claude-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
OpenResponsesInputText:
type: object
properties:
type:
type: string
enum:
- input_text
text:
type: string
required:
- type
- text
description: Text input content item
example:
type: input_text
text: Hello, how can I help you?
OpenResponsesInputImage:
type: object
properties:
type:
type: string
enum:
- input_image
detail:
type: string
enum:
- auto
- high
- low
image_url:
type: string
nullable: true
required:
- type
- detail
description: Image input content item
example:
type: input_image
detail: auto
image_url: https://example.com/image.jpg
OpenResponsesInputFile:
type: object
properties:
type:
type: string
enum:
- input_file
file_id:
type: string
nullable: true
file_data:
type: string
filename:
type: string
file_url:
type: string
required:
- type
description: File input content item
example:
type: input_file
file_id: file-abc123
filename: document.pdf
OpenResponsesInputContent:
oneOf:
- $ref: '#/components/schemas/OpenResponsesInputText'
- $ref: '#/components/schemas/OpenResponsesInputImage'
- $ref: '#/components/schemas/OpenResponsesInputFile'
discriminator:
propertyName: type
mapping:
input_text: '#/components/schemas/OpenResponsesInputText'
input_image: '#/components/schemas/OpenResponsesInputImage'
input_file: '#/components/schemas/OpenResponsesInputFile'
description: Content item in a response input message
example:
type: input_text
text: Hello, how can I help you?
OpenResponsesEasyInputMessage:
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:
$ref: '#/components/schemas/OpenResponsesInputContent'
- type: string
required:
- role
- content
description: Simplified input message format that accepts string or array content
example:
role: user
content: What is the weather today?
OpenResponsesInputMessageItem:
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:
$ref: '#/components/schemas/OpenResponsesInputContent'
required:
- id
- role
- content
description: Input message item with structured content array
example:
id: msg-abc123
type: message
role: user
content:
- type: input_text
text: What is the weather today?
ToolCallStatus:
type: string
enum:
- in_progress
- completed
- incomplete
example: completed
OpenResponsesFunctionToolCall:
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/ToolCallStatus'
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
OpenResponsesFunctionCallOutput:
type: object
properties:
type:
type: string
enum:
- function_call_output
id:
type: string
call_id:
type: string
output:
type: string
status:
$ref: '#/components/schemas/ToolCallStatus'
required:
- type
- id
- 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
OpenResponsesInputItem:
anyOf:
- $ref: '#/components/schemas/OpenResponsesReasoning'
- $ref: '#/components/schemas/OpenResponsesEasyInputMessage'
- $ref: '#/components/schemas/OpenResponsesInputMessageItem'
- $ref: '#/components/schemas/OpenResponsesFunctionToolCall'
- $ref: '#/components/schemas/OpenResponsesFunctionCallOutput'
- $ref: '#/components/schemas/ResponsesOutputMessage'
- $ref: '#/components/schemas/ResponsesOutputItemReasoning'
- $ref: '#/components/schemas/ResponsesOutputItemFunctionCall'
- $ref: '#/components/schemas/ResponsesWebSearchCallOutput'
- $ref: '#/components/schemas/ResponsesOutputItemFileSearchCall'
- $ref: '#/components/schemas/ResponsesImageGenerationCall'
description: An item in the input array for a response request
example:
role: user
content: What is the weather today?
OpenResponsesInput:
anyOf:
- type: string
- type: array
items:
$ref: '#/components/schemas/OpenResponsesInputItem'
- nullable: true
description: Input for a response request - can be a string or array of items
example:
- role: user
content: What is the weather today?
OpenResponsesRequestMetadata:
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.
example:
user_id: '123'
session_id: abc-def-ghi
OpenResponsesFunctionTool:
type: object
properties:
type:
type: string
enum:
- function
name:
type: string
description:
type: string
nullable: true
strict:
type: boolean
nullable: true
parameters:
type: object
nullable: true
additionalProperties:
nullable: true
required:
- type
- name
- parameters
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
ResponsesSearchContextSize:
type: string
enum:
- low
- medium
- high
description: Size of the search context for web search tools
example: medium
WebSearchPreviewToolUserLocation:
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
OpenResponsesWebSearchPreviewTool:
type: object
properties:
type:
type: string
enum:
- web_search_preview
search_context_size:
$ref: '#/components/schemas/ResponsesSearchContextSize'
user_location:
$ref: '#/components/schemas/WebSearchPreviewToolUserLocation'
required:
- type
description: Web search preview tool configuration
example:
type: web_search_preview
OpenResponsesWebSearchPreview20250311Tool:
type: object
properties:
type:
type: string
enum:
- web_search_preview_2025_03_11
search_context_size:
$ref: '#/components/schemas/ResponsesSearchContextSize'
user_location:
$ref: '#/components/schemas/WebSearchPreviewToolUserLocation'
required:
- type
description: Web search preview tool configuration (2025-03-11 version)
example:
type: web_search_preview_2025_03_11
ResponsesWebSearchUserLocation:
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
description: User location information for web search
example:
type: approximate
city: San Francisco
country: USA
region: California
timezone: America/Los_Angeles
OpenResponsesWebSearchTool:
type: object
properties:
type:
type: string
enum:
- web_search
filters:
type: object
nullable: true
properties:
allowed_domains:
type: array
nullable: true
items:
type: string
search_context_size:
$ref: '#/components/schemas/ResponsesSearchContextSize'
user_location:
$ref: '#/components/schemas/ResponsesWebSearchUserLocation'
required:
- type
description: Web search tool configuration
example:
type: web_search
filters:
allowed_domains:
- example.com
OpenResponsesWebSearch20250826Tool:
type: object
properties:
type:
type: string
enum:
- web_search_2025_08_26
filters:
type: object
nullable: true
properties:
allowed_domains:
type: array
nullable: true
items:
type: string
search_context_size:
$ref: '#/components/schemas/ResponsesSearchContextSize'
user_location:
$ref: '#/components/schemas/ResponsesWebSearchUserLocation'
required:
- type
description: Web search tool configuration (2025-08-26 version)
example:
type: web_search_2025_08_26
filters:
allowed_domains:
- example.com
OpenResponsesToolUnion:
oneOf:
- allOf:
- $ref: '#/components/schemas/OpenResponsesFunctionTool'
- 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/OpenResponsesWebSearchPreviewTool'
- $ref: '#/components/schemas/OpenResponsesWebSearchPreview20250311Tool'
- $ref: '#/components/schemas/OpenResponsesWebSearchTool'
- $ref: '#/components/schemas/OpenResponsesWebSearch20250826Tool'
description: Union of all supported tool definitions
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
ToolChoiceTypes:
type: object
properties:
type:
anyOf:
- type: string
enum:
- file_search
- type: string
enum:
- web_search_preview
- type: string
enum:
- web_search_preview_2025_03_11
- type: string
enum:
- computer_use_preview
- type: string
enum:
- code_interpreter
required:
- type
description: Force the model to call a tool of a specific type
example:
type: web_search_preview
ToolChoiceFunction:
type: object
properties:
type:
type: string
enum:
- function
name:
type: string
required:
- type
- name
description: Force the model to call a specific function
example:
type: function
name: get_weather
OpenResponsesToolChoice:
anyOf:
- type: string
enum:
- auto
- type: string
enum:
- none
- type: string
enum:
- required
- $ref: '#/components/schemas/ToolChoiceTypes'
- allOf:
- $ref: '#/components/schemas/ToolChoiceFunction'
- type: object
properties: {}
description: Force the model to call a specific function
example:
type: function
name: get_weather
description: Controls which tool the model should call
example: auto
OpenResponsesPrompt:
type: object
nullable: true
properties:
id:
type: string
variables:
type: object
nullable: true
additionalProperties:
$ref: '#/components/schemas/OpenResponsesInputContent'
required:
- id
description: Prompt template with variables for the response
example:
id: prompt-abc123
variables:
name:
type: input_text
text: John
ReasoningSummaryVerbosity:
type: string
enum:
- auto
- concise
- detailed
OpenResponsesReasoningConfig:
type: object
nullable: true
properties:
effort:
type: string
nullable: true
enum:
- high
- medium
- low
- minimal
summary:
$ref: '#/components/schemas/ReasoningSummaryVerbosity'
max_tokens:
type: number
nullable: true
enabled:
type: boolean
nullable: true
description: Configuration for reasoning mode in the response
example:
summary: auto
enabled: true
OpenResponsesFormatText:
type: object
properties:
type:
type: string
enum:
- text
required:
- type
description: Plain text response format
example:
type: text
OpenResponsesFormatJSONObject:
type: object
properties:
type:
type: string
enum:
- json_object
required:
- type
description: JSON object response format
example:
type: json_object
OpenResponsesFormatJSONSchema:
type: object
properties:
type:
type: string
enum:
- json_schema
name:
type: string
description:
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
OpenResponsesFormatTextConfig:
anyOf:
- $ref: '#/components/schemas/OpenResponsesFormatText'
- $ref: '#/components/schemas/OpenResponsesFormatJSONObject'
- $ref: '#/components/schemas/OpenResponsesFormatJSONSchema'
description: Text response format configuration
example:
type: text
OpenResponsesTextConfig:
type: object
properties:
format:
$ref: '#/components/schemas/OpenResponsesFormatTextConfig'
verbosity:
type: string
nullable: true
enum:
- high
- low
- medium
description: Text output configuration including format and verbosity
example:
format:
type: text
verbosity: medium
OpenResponsesNonStreamingResponse:
type: object
properties:
id:
type: string
object:
type: string
enum:
- response
created_at:
type: number
model:
type: string
status:
type: string
enum:
- completed
- incomplete
- in_progress
- failed
- cancelled
- queued
output:
type: array
items:
$ref: '#/components/schemas/ResponsesOutputItem'
user:
type: string
nullable: true
output_text:
type: string
prompt_cache_key:
type: string
nullable: true
safety_identifier:
type: string
nullable: true
error:
$ref: '#/components/schemas/ResponsesErrorField'
incomplete_details:
type: object
nullable: true
properties:
reason:
type: string
enum:
- max_output_tokens
- content_filter
usage:
$ref: '#/components/schemas/ResponsesUsage'
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
instructions:
$ref: '#/components/schemas/OpenResponsesInput'
metadata:
$ref: '#/components/schemas/OpenResponsesRequestMetadata'
tools:
type: array
items:
$ref: '#/components/schemas/OpenResponsesToolUnion'
tool_choice:
$ref: '#/components/schemas/OpenResponsesToolChoice'
parallel_tool_calls:
type: boolean
prompt:
$ref: '#/components/schemas/OpenResponsesPrompt'
background:
type: boolean
nullable: true
previous_response_id:
type: string
nullable: true
reasoning:
$ref: '#/components/schemas/OpenResponsesReasoningConfig'
service_tier:
type: string
nullable: true
enum:
- auto
- default
- flex
- priority
- scale
store:
type: boolean
truncation:
type: string
nullable: true
enum:
- auto
- disabled
text:
$ref: '#/components/schemas/OpenResponsesTextConfig'
required:
- object
- created_at
- model
- output
- error
- incomplete_details
- temperature
- top_p
- instructions
- metadata
- tools
- tool_choice
- parallel_tool_calls
description: Complete non-streaming response from the Responses API
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
OpenResponsesCreatedEvent:
type: object
properties:
type:
type: string
enum:
- response.created
response:
$ref: '#/components/schemas/OpenResponsesNonStreamingResponse'
sequence_number:
type: number
required:
- type
- response
- sequence_number
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
OpenResponsesInProgressEvent:
type: object
properties:
type:
type: string
enum:
- response.in_progress
response:
$ref: '#/components/schemas/OpenResponsesNonStreamingResponse'
sequence_number:
type: number
required:
- type
- response
- 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
OpenResponsesCompletedEvent:
type: object
properties:
type:
type: string
enum:
- response.completed
response:
$ref: '#/components/schemas/OpenResponsesNonStreamingResponse'
sequence_number:
type: number
required:
- type
- response
- 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
OpenResponsesIncompleteEvent:
type: object
properties:
type:
type: string
enum:
- response.incomplete
response:
$ref: '#/components/schemas/OpenResponsesNonStreamingResponse'
sequence_number:
type: number
required:
- type
- response
- sequence_number
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
OpenResponsesFailedEvent:
type: object
properties:
type:
type: string
enum:
- response.failed
response:
$ref: '#/components/schemas/OpenResponsesNonStreamingResponse'
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
OpenResponsesErrorEvent:
type: object
properties:
type:
type: string
enum:
- error
code:
type: string
nullable: true
message:
type: string
param:
type: string
nullable: true
sequence_number:
type: number
required:
- type
- code
- message
- param
- sequence_number
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
OpenResponsesOutputItemAddedEvent:
type: object
properties:
type:
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
required:
- type
- output_index
- item
- sequence_number
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
OpenResponsesOutputItemDoneEvent:
type: object
properties:
type:
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'
sequence_number:
type: number
required:
- type
- output_index
- item
- sequence_number
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
OpenResponsesOutputText:
allOf:
- $ref: '#/components/schemas/OutputTextContent'
- type: object
properties: {}
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
OpenResponsesRefusalContent:
allOf:
- $ref: '#/components/schemas/RefusalContent'
- type: object
properties: {}
example:
type: refusal
refusal: I'm sorry, I cannot assist with that request
OpenResponsesContentPartAddedEvent:
type: object
properties:
type:
type: string
enum:
- response.content_part.added
output_index:
type: number
item_id:
type: string
content_index:
type: number
part:
anyOf:
- $ref: '#/components/schemas/OpenResponsesOutputText'
- $ref: '#/components/schemas/OpenResponsesRefusalContent'
sequence_number:
type: number
required:
- type
- output_index
- item_id
- content_index
- part
- sequence_number
description: Event emitted when a new content part is added to an output item
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
OpenResponsesContentPartDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.content_part.done
output_index:
type: number
item_id:
type: string
content_index:
type: number
part:
anyOf:
- $ref: '#/components/schemas/OpenResponsesOutputText'
- $ref: '#/components/schemas/OpenResponsesRefusalContent'
sequence_number:
type: number
required:
- 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
OpenResponsesTopLogprobs:
type: object
properties:
token:
type: string
logprob:
type: number
description: Alternative token with its log probability
example:
token: hello
logprob: -0.5
OpenResponsesLogProbs:
type: object
properties:
logprob:
type: number
token:
type: string
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
required:
- logprob
- token
description: Log probability information for a token
example:
logprob: -0.1
token: world
top_logprobs:
- token: hello
logprob: -0.5
OpenResponsesTextDeltaEvent:
type: object
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
delta:
type: string
sequence_number:
type: number
required:
- type
- logprobs
- output_index
- item_id
- content_index
- delta
- sequence_number
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
OpenResponsesTextDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.output_text.done
output_index:
type: number
item_id:
type: string
content_index:
type: number
text:
type: string
sequence_number:
type: number
logprobs:
type: array
items:
$ref: '#/components/schemas/OpenResponsesLogProbs'
required:
- type
- output_index
- item_id
- content_index
- text
- sequence_number
- logprobs
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: []
OpenResponsesRefusalDeltaEvent:
type: object
properties:
type:
type: string
enum:
- response.refusal.delta
output_index:
type: number
item_id:
type: string
content_index:
type: number
delta:
type: string
sequence_number:
type: number
required:
- type
- output_index
- item_id
- content_index
- delta
- sequence_number
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
OpenResponsesRefusalDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.refusal.done
output_index:
type: number
item_id:
type: string
content_index:
type: number
refusal:
type: string
sequence_number:
type: number
required:
- type
- output_index
- item_id
- content_index
- refusal
- sequence_number
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
OpenResponsesOutputTextAnnotationAddedEvent:
type: object
properties:
type:
type: string
enum:
- response.output_text.annotation.added
output_index:
type: number
item_id:
type: string
content_index:
type: number
sequence_number:
type: number
annotation_index:
type: number
annotation:
anyOf:
- $ref: '#/components/schemas/FileCitationAnnotation'
- $ref: '#/components/schemas/URLCitationAnnotation'
- $ref: '#/components/schemas/FilePathAnnotation'
required:
- type
- output_index
- item_id
- content_index
- sequence_number
- annotation_index
- annotation
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
OpenResponsesFunctionCallArgumentsDeltaEvent:
type: object
properties:
type:
type: string
enum:
- response.function_call_arguments.delta
item_id:
type: string
output_index:
type: number
delta:
type: string
sequence_number:
type: number
required:
- type
- item_id
- output_index
- delta
- 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
OpenResponsesFunctionCallArgumentsDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.function_call_arguments.done
item_id:
type: string
output_index:
type: number
name:
type: string
arguments:
type: string
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
OpenResponsesReasoningDeltaEvent:
type: object
properties:
type:
type: string
enum:
- response.reasoning_text.delta
output_index:
type: number
item_id:
type: string
content_index:
type: number
delta:
type: string
sequence_number:
type: number
required:
- type
- output_index
- item_id
- content_index
- delta
- sequence_number
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
OpenResponsesReasoningDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.reasoning_text.done
output_index:
type: number
item_id:
type: string
content_index:
type: number
text:
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
OpenResponsesReasoningSummaryPartAddedEventSchema:
type: object
properties:
type:
type: string
enum:
- response.reasoning_summary_part.added
output_index:
type: number
item_id:
type: string
summary_index:
type: number
part:
$ref: '#/components/schemas/ReasoningSummaryText'
sequence_number:
type: number
required:
- type
- output_index
- item_id
- summary_index
- part
- 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
OpenResponsesReasoningSummaryPartDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.reasoning_summary_part.done
output_index:
type: number
item_id:
type: string
summary_index:
type: number
part:
$ref: '#/components/schemas/ReasoningSummaryText'
sequence_number:
type: number
required:
- type
- output_index
- item_id
- summary_index
- part
- sequence_number
description: Event emitted when a reasoning summary part is complete
example:
type: response.reasoning_summary_part.done
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
OpenResponsesReasoningSummaryTextDeltaEvent:
type: object
properties:
type:
type: string
enum:
- response.reasoning_summary_text.delta
item_id:
type: string
output_index:
type: number
summary_index:
type: number
delta:
type: string
sequence_number:
type: number
required:
- type
- item_id
- output_index
- summary_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
OpenResponsesReasoningSummaryTextDoneEvent:
type: object
properties:
type:
type: string
enum:
- response.reasoning_summary_text.done
item_id:
type: string
output_index:
type: number
summary_index:
type: number
text:
type: string
sequence_number:
type: number
required:
- type
- item_id
- output_index
- summary_index
- text
- sequence_number
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
OpenResponsesImageGenCallInProgress:
type: object
properties:
type:
type: string
enum:
- response.image_generation_call.in_progress
item_id:
type: string
output_index:
type: number
sequence_number:
type: number
required:
- type
- item_id
- output_index
- sequence_number
example:
type: response.image_generation_call.in_progress
item_id: item-abc123
output_index: 0
sequence_number: 1
OpenResponsesImageGenCallGenerating:
type: object
properties:
type:
type: string
enum:
- response.image_generation_call.generating
item_id:
type: string
output_index:
type: number
sequence_number:
type: number
required:
- type
- item_id
- output_index
- sequence_number
example:
type: response.image_generation_call.generating
item_id: item-abc123
output_index: 0
sequence_number: 2
OpenResponsesImageGenCallPartialImage:
type: object
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
required:
- type
- item_id
- output_index
- sequence_number
- partial_image_b64
- partial_image_index
example:
type: response.image_generation_call.partial_image
item_id: item-abc123
output_index: 0
sequence_number: 3
partial_image_b64: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJ
partial_image_index: 0
OpenResponsesImageGenCallCompleted:
type: object
properties:
type:
type: string
enum:
- response.image_generation_call.completed
item_id:
type: string
output_index:
type: number
sequence_number:
type: number
required:
- type
- item_id
- output_index
- sequence_number
example:
type: response.image_generation_call.completed
item_id: item-abc123
output_index: 0
sequence_number: 4
OpenResponsesStreamEvent:
oneOf:
- allOf:
- $ref: '#/components/schemas/OpenResponsesCreatedEvent'
- type: object
properties: {}
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/OpenResponsesInProgressEvent'
- type: object
properties: {}
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/OpenResponsesCompletedEvent'
- type: object
properties: {}
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/OpenResponsesIncompleteEvent'
- type: object
properties: {}
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/OpenResponsesFailedEvent'
- type: object
properties: {}
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesErrorEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesOutputItemAddedEvent'
- type: object
properties:
item:
$ref: '#/components/schemas/ResponsesOutputItem'
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/OpenResponsesOutputItemDoneEvent'
- type: object
properties:
item:
$ref: '#/components/schemas/ResponsesOutputItem'
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesContentPartAddedEvent'
- type: object
properties:
part:
anyOf:
- $ref: '#/components/schemas/OpenResponsesOutputText'
- $ref: '#/components/schemas/ReasoningTextContent'
- $ref: '#/components/schemas/OpenResponsesRefusalContent'
description: Event emitted when a new content part is added to an output item
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesContentPartDoneEvent'
- type: object
properties:
part:
anyOf:
- $ref: '#/components/schemas/OpenResponsesOutputText'
- $ref: '#/components/schemas/ReasoningTextContent'
- $ref: '#/components/schemas/OpenResponsesRefusalContent'
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesTextDeltaEvent'
- type: object
properties: {}
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesTextDoneEvent'
- type: object
properties: {}
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: []
- allOf:
- $ref: '#/components/schemas/OpenResponsesRefusalDeltaEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesRefusalDoneEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesOutputTextAnnotationAddedEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesFunctionCallArgumentsDeltaEvent'
- type: object
properties: {}
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesFunctionCallArgumentsDoneEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesReasoningDeltaEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesReasoningDoneEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesReasoningSummaryPartAddedEventSchema'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesReasoningSummaryPartDoneEvent'
- type: object
properties: {}
description: Event emitted when a reasoning summary part is complete
example:
type: response.reasoning_summary_part.done
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesReasoningSummaryTextDeltaEvent'
- type: object
properties: {}
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
- allOf:
- $ref: '#/components/schemas/OpenResponsesReasoningSummaryTextDoneEvent'
- 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
- allOf:
- $ref: '#/components/schemas/OpenResponsesImageGenCallInProgress'
- type: object
properties: {}
example:
type: response.image_generation_call.in_progress
item_id: item-abc123
output_index: 0
sequence_number: 1
- allOf:
- $ref: '#/components/schemas/OpenResponsesImageGenCallGenerating'
- type: object
properties: {}
example:
type: response.image_generation_call.generating
item_id: item-abc123
output_index: 0
sequence_number: 2
- allOf:
- $ref: '#/components/schemas/OpenResponsesImageGenCallPartialImage'
- type: object
properties: {}
example:
type: response.image_generation_call.partial_image
item_id: item-abc123
output_index: 0
sequence_number: 3
partial_image_b64: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJ
partial_image_index: 0
- allOf:
- $ref: '#/components/schemas/OpenResponsesImageGenCallCompleted'
- type: object
properties: {}
example:
type: response.image_generation_call.completed
item_id: item-abc123
output_index: 0
sequence_number: 4
description: Union of all possible event types emitted during response streaming
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
ErrorResponse:
type: object
properties:
error:
type: object
properties:
code:
type: integer
enum:
- 100
- 101
- 102
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 300
- 301
- 302
- 303
- 304
- 305
- 307
- 308
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 422
- 423
- 424
- 425
- 426
- 428
- 429
- 431
- 451
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 510
- 511
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 529
- 530
message:
type: string
metadata:
type: object
nullable: true
additionalProperties:
nullable: true
required:
- code
- message
user_id:
type: string
nullable: true
required:
- error
description: Error response
example:
error:
code: 400
message: Invalid request parameters
metadata:
field: temperature
reason: Must be between 0 and 2
user_id: user-abc123
OpenResponsesRequest:
type: object
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
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
CreateChargeRequest:
type: object
description: Create a Coinbase charge for crypto payment
example:
amount: 100
sender: '0x1234567890123456789012345678901234567890'
chain_id: 1
ModelsCountResponse:
type: object
description: Model count data
example:
data:
count: 150
ModelsListResponse:
type: object
description: List of available models
example:
data:
- 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.
ListEndpointsResponse:
type: object
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.
PublicEndpoint:
type: object
description: Information about a specific model endpoint
example:
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
status: 0
uptime_last_30m: 99.5
supports_implicit_caching: true
__schema0:
anyOf:
- $ref: '#/components/schemas/ChatCompletionFinishReason'
- type: 'null'
ChatMessageContentItemText:
type: object
properties:
type:
type: string
const: text
text:
type: string
required:
- type
- text
ChatMessageContentItemImage:
type: object
properties:
type:
type: string
const: image_url
image_url:
type: object
properties:
url:
type: string
detail:
type: string
enum:
- auto
- low
- high
required:
- url
required:
- type
- image_url
ChatMessageContentItemAudio:
type: object
properties:
type:
type: string
const: input_audio
input_audio:
type: object
properties:
data:
type: string
format:
type: string
enum:
- wav
- mp3
- flac
- m4a
- ogg
- pcm16
- pcm24
required:
- data
- format
required:
- type
- input_audio
ChatMessageContentItem:
oneOf:
- $ref: '#/components/schemas/ChatMessageContentItemText'
- $ref: '#/components/schemas/ChatMessageContentItemImage'
- $ref: '#/components/schemas/ChatMessageContentItemAudio'
type: object
discriminator:
propertyName: type
mapping:
text: '#/components/schemas/ChatMessageContentItemText'
image_url: '#/components/schemas/ChatMessageContentItemImage'
input_audio: '#/components/schemas/ChatMessageContentItemAudio'
ChatMessageToolCall:
type: object
properties:
id:
type: string
type:
type: string
const: function
function:
type: object
properties:
name:
type: string
arguments:
type: string
required:
- name
- arguments
required:
- id
- type
- function
ChatMessageTokenLogprob:
type: object
properties:
token:
type: string
logprob:
type: number
bytes:
anyOf:
- type: array
items:
type: number
- type: 'null'
top_logprobs:
type: array
items:
type: object
properties:
token:
type: string
logprob:
type: number
bytes:
anyOf:
- type: array
items:
type: number
- type: 'null'
required:
- token
- logprob
- bytes
required:
- token
- logprob
- bytes
- top_logprobs
ChatMessageTokenLogprobs:
type: object
properties:
content:
anyOf:
- type: array
items:
$ref: '#/components/schemas/ChatMessageTokenLogprob'
- type: 'null'
refusal:
anyOf:
- type: array
items:
$ref: '#/components/schemas/ChatMessageTokenLogprob'
- type: 'null'
required:
- content
- refusal
ChatGenerationTokenUsage:
type: object
properties:
completion_tokens:
type: number
prompt_tokens:
type: number
total_tokens:
type: number
completion_tokens_details:
type: object
properties:
reasoning_tokens:
type: number
audio_tokens:
type: number
accepted_prediction_tokens:
type: number
rejected_prediction_tokens:
type: number
prompt_tokens_details:
type: object
properties:
cached_tokens:
type: number
audio_tokens:
type: number
required:
- completion_tokens
- prompt_tokens
- total_tokens
ChatCompletionFinishReason:
type: string
enum:
- tool_calls
- stop
- length
- content_filter
- error
JSONSchemaConfig:
type: object
properties:
name:
type: string
maxLength: 64
description:
type: string
schema:
type: object
propertyNames:
type: string
additionalProperties: {}
strict:
anyOf:
- type: boolean
- type: 'null'
required:
- name
ResponseFormatJSONSchema:
type: object
properties:
type:
type: string
const: json_schema
json_schema:
$ref: '#/components/schemas/JSONSchemaConfig'
required:
- type
- json_schema
ResponseFormatTextGrammar:
type: object
properties:
type:
type: string
const: grammar
grammar:
type: string
required:
- type
- grammar
SystemMessage:
type: object
properties:
role:
type: string
const: system
content:
anyOf:
- type: string
- type: array
items:
$ref: '#/components/schemas/ChatMessageContentItemText'
name:
type: string
required:
- role
- content
UserMessage:
type: object
properties:
role:
type: string
const: user
content:
anyOf:
- type: string
- type: array
items:
$ref: '#/components/schemas/ChatMessageContentItem'
name:
type: string
required:
- role
- content
AssistantMessage:
type: object
properties:
role:
type: string
const: assistant
content:
anyOf:
- anyOf:
- type: string
- type: array
items:
$ref: '#/components/schemas/ChatMessageContentItem'
- type: 'null'
name:
type: string
tool_calls:
type: array
items:
$ref: '#/components/schemas/ChatMessageToolCall'
refusal:
anyOf:
- type: string
- type: 'null'
reasoning:
anyOf:
- type: string
- type: 'null'
required:
- role
ToolResponseMessage:
type: object
properties:
role:
type: string
const: tool
content:
anyOf:
- type: string
- type: array
items:
$ref: '#/components/schemas/ChatMessageContentItem'
tool_call_id:
type: string
required:
- role
- content
- tool_call_id
Message:
oneOf:
- $ref: '#/components/schemas/SystemMessage'
- $ref: '#/components/schemas/UserMessage'
- type: object
properties:
role:
type: string
const: developer
content:
anyOf:
- type: string
- type: array
items:
$ref: '#/components/schemas/ChatMessageContentItemText'
name:
type: string
required:
- role
- content
- $ref: '#/components/schemas/AssistantMessage'
- $ref: '#/components/schemas/ToolResponseMessage'
type: object
Tool:
type: object
properties:
type:
type: string
const: function
function:
type: object
properties:
name:
type: string
maxLength: 64
description:
type: string
parameters:
type: object
propertyNames:
type: string
additionalProperties: {}
strict:
anyOf:
- type: boolean
- type: 'null'
required:
- name
required:
- type
- function
NamedToolChoice:
type: object
properties:
type:
type: string
const: function
function:
type: object
properties:
name:
type: string
required:
- name
required:
- type
- function
ToolChoiceOption:
anyOf:
- type: string
const: none
- type: string
const: auto
- type: string
const: required
- $ref: '#/components/schemas/NamedToolChoice'
ChatStreamOptions:
type: object
properties:
include_usage:
type: boolean
ChatGenerationParams:
type: object
properties:
messages:
minItems: 1
type: array
items:
$ref: '#/components/schemas/Message'
model:
type: string
frequency_penalty:
anyOf:
- type: number
minimum: -2
maximum: 2
- type: 'null'
logit_bias:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties:
type: number
- type: 'null'
logprobs:
anyOf:
- type: boolean
- type: 'null'
top_logprobs:
anyOf:
- type: number
minimum: 0
maximum: 20
- type: 'null'
max_completion_tokens:
anyOf:
- type: number
minimum: 1
- type: 'null'
max_tokens:
anyOf:
- type: number
minimum: 1
- type: 'null'
metadata:
type: object
propertyNames:
type: string
additionalProperties:
type: string
presence_penalty:
anyOf:
- type: number
minimum: -2
maximum: 2
- type: 'null'
reasoning:
type: object
properties:
effort:
anyOf:
- type: string
enum:
- minimal
- low
- medium
- high
- type: 'null'
summary:
anyOf:
- $ref: '#/components/schemas/ReasoningSummaryVerbosity'
- type: 'null'
response_format:
oneOf:
- type: object
properties:
type:
type: string
const: text
required:
- type
- type: object
properties:
type:
type: string
const: json_object
required:
- type
- $ref: '#/components/schemas/ResponseFormatJSONSchema'
- $ref: '#/components/schemas/ResponseFormatTextGrammar'
- type: object
properties:
type:
type: string
const: python
required:
- type
type: object
seed:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: 'null'
stop:
anyOf:
- anyOf:
- type: string
- maxItems: 4
type: array
items:
type: string
- type: 'null'
stream:
default: false
anyOf:
- type: boolean
- type: 'null'
stream_options:
anyOf:
- $ref: '#/components/schemas/ChatStreamOptions'
- type: 'null'
temperature:
default: 1
anyOf:
- type: number
minimum: 0
maximum: 2
- type: 'null'
tool_choice:
$ref: '#/components/schemas/ToolChoiceOption'
tools:
type: array
items:
$ref: '#/components/schemas/Tool'
top_p:
default: 1
anyOf:
- type: number
minimum: 0
maximum: 1
- type: 'null'
user:
type: string
required:
- messages
- model
ChatResponseChoice:
type: object
properties:
finish_reason:
$ref: '#/components/schemas/__schema0'
index:
type: number
message:
$ref: '#/components/schemas/AssistantMessage'
logprobs:
anyOf:
- $ref: '#/components/schemas/ChatMessageTokenLogprobs'
- type: 'null'
required:
- finish_reason
- index
- message
ChatStreamingMessageToolCall:
type: object
properties:
index:
type: number
id:
type: string
type:
type: string
const: function
function:
type: object
properties:
name:
type: string
arguments:
type: string
required:
- index
ChatStreamingMessageChunk:
type: object
properties:
role:
type: string
enum:
- assistant
content:
anyOf:
- type: string
- type: 'null'
reasoning:
anyOf:
- type: string
- type: 'null'
refusal:
anyOf:
- type: string
- type: 'null'
tool_calls:
type: array
items:
$ref: '#/components/schemas/ChatStreamingMessageToolCall'
ChatStreamingChoice:
type: object
properties:
delta:
$ref: '#/components/schemas/ChatStreamingMessageChunk'
finish_reason:
$ref: '#/components/schemas/__schema0'
index:
type: number
logprobs:
anyOf:
- $ref: '#/components/schemas/ChatMessageTokenLogprobs'
- type: 'null'
required:
- delta
- finish_reason
- index
ChatError:
type: object
properties:
error:
type: object
properties:
code:
anyOf:
- anyOf:
- type: string
- type: number
- type: 'null'
message:
type: string
param:
anyOf:
- type: string
- type: 'null'
type:
type: string
required:
- code
- message
- param
- type
additionalProperties: false
required:
- error
additionalProperties: false
ChatResponse:
type: object
properties:
id:
type: string
choices:
type: array
items:
$ref: '#/components/schemas/ChatResponseChoice'
created:
type: number
model:
type: string
object:
type: string
const: chat.completion
system_fingerprint:
anyOf:
- type: string
- type: 'null'
usage:
$ref: '#/components/schemas/ChatGenerationTokenUsage'
required:
- id
- choices
- created
- model
- object
additionalProperties: false
ChatStreamingResponseChunk:
type: object
properties:
data:
type: object
properties:
id:
type: string
choices:
type: array
items:
$ref: '#/components/schemas/ChatStreamingChoice'
created:
type: number
model:
type: string
object:
type: string
const: chat.completion.chunk
system_fingerprint:
anyOf:
- type: string
- type: 'null'
error:
type: object
properties:
message:
type: string
code:
type: number
required:
- message
- code
additionalProperties: false
usage:
$ref: '#/components/schemas/ChatGenerationTokenUsage'
required:
- id
- choices
- created
- model
- object
additionalProperties: false
required:
- data
additionalProperties: false
CompletionFinishReason:
anyOf:
- type: string
enum:
- stop
- length
- content_filter
- type: 'null'
CompletionLogprobs:
type: object
properties:
tokens:
type: array
items:
type: string
token_logprobs:
type: array
items:
type: number
top_logprobs:
anyOf:
- type: array
items:
type: object
propertyNames:
type: string
additionalProperties:
type: number
- type: 'null'
text_offset:
type: array
items:
type: number
required:
- tokens
- token_logprobs
- top_logprobs
- text_offset
CompletionUsage:
type: object
properties:
prompt_tokens:
type: number
completion_tokens:
type: number
total_tokens:
type: number
required:
- prompt_tokens
- completion_tokens
- total_tokens
CompletionCreateParams:
type: object
properties:
model:
type: string
prompt:
anyOf:
- type: string
- type: array
items:
type: string
- type: array
items:
type: number
- type: array
items:
type: array
items:
type: number
best_of:
anyOf:
- type: integer
minimum: 1
maximum: 20
- type: 'null'
echo:
anyOf:
- type: boolean
- type: 'null'
frequency_penalty:
anyOf:
- type: number
minimum: -2
maximum: 2
- type: 'null'
logit_bias:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties:
type: number
- type: 'null'
logprobs:
anyOf:
- type: integer
minimum: 0
maximum: 5
- type: 'null'
max_tokens:
anyOf:
- type: integer
minimum: 1
maximum: 9007199254740991
- type: 'null'
'n':
anyOf:
- type: integer
minimum: 1
maximum: 128
- type: 'null'
presence_penalty:
anyOf:
- type: number
minimum: -2
maximum: 2
- type: 'null'
seed:
anyOf:
- type: integer
minimum: -9007199254740991
maximum: 9007199254740991
- type: 'null'
stop:
anyOf:
- anyOf:
- type: string
- type: array
items:
type: string
- type: 'null'
stream:
anyOf:
- type: boolean
- type: 'null'
stream_options:
anyOf:
- type: object
properties:
include_usage:
anyOf:
- type: boolean
- type: 'null'
- type: 'null'
suffix:
anyOf:
- type: string
- type: 'null'
temperature:
anyOf:
- type: number
minimum: 0
maximum: 2
- type: 'null'
top_p:
anyOf:
- type: number
minimum: 0
maximum: 1
- type: 'null'
user:
type: string
metadata:
anyOf:
- type: object
propertyNames:
type: string
additionalProperties:
type: string
- type: 'null'
response_format:
anyOf:
- oneOf:
- type: object
properties:
type:
type: string
const: text
required:
- type
- type: object
properties:
type:
type: string
const: json_object
required:
- type
- $ref: '#/components/schemas/ResponseFormatJSONSchema'
- $ref: '#/components/schemas/ResponseFormatTextGrammar'
- type: object
properties:
type:
type: string
const: python
required:
- type
type: object
- type: 'null'
required:
- model
- prompt
CompletionChoice:
type: object
properties:
text:
type: string
index:
type: number
logprobs:
anyOf:
- $ref: '#/components/schemas/CompletionLogprobs'
- type: 'null'
finish_reason:
$ref: '#/components/schemas/CompletionFinishReason'
required:
- text
- index
- logprobs
- finish_reason
CompletionResponse:
type: object
properties:
id:
type: string
object:
type: string
const: text_completion
created:
type: number
model:
type: string
system_fingerprint:
type: string
choices:
type: array
items:
$ref: '#/components/schemas/CompletionChoice'
usage:
$ref: '#/components/schemas/CompletionUsage'
required:
- id
- object
- created
- model
- choices
additionalProperties: false
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:
/api/alpha/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/OpenResponsesRequest'
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/OpenResponsesNonStreamingResponse'
text/event-stream:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/OpenResponsesStreamEvent'
required:
- data
x-speakeasy-sse-sentinel: '[DONE]'
default:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: createApiAlphaResponses
/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
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
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/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
responses:
'200':
description: Returns the total credits purchased and used
content:
application/json:
schema:
type: object
description: Total credits purchased and used
example:
data:
total_credits: 100.5
total_usage: 25.75
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/credits/coinbase:
post:
security:
- bearer: []
x-speakeasy-name-override: createCoinbaseCharge
tags:
- Credits
summary: Create a Coinbase charge for crypto payment
operationId: createCoinbaseCharge
description: Create a Coinbase charge for crypto payment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateChargeRequest'
required: true
responses:
'200':
description: Returns the calldata to fulfill the transaction
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
created_at:
type: string
expires_at:
type: string
web3_data:
type: object
properties:
transfer_intent:
type: object
properties:
call_data:
type: object
properties:
deadline:
type: string
fee_amount:
type: string
id:
type: string
operator:
type: string
prefix:
type: string
recipient:
type: string
recipient_amount:
type: string
recipient_currency:
type: string
refund_destination:
type: string
signature:
type: string
required:
- deadline
- fee_amount
- id
- operator
- prefix
- recipient
- recipient_amount
- recipient_currency
- refund_destination
- signature
metadata:
type: object
properties:
chain_id:
type: number
contract_address:
type: string
sender:
type: string
required:
- chain_id
- contract_address
- sender
required:
- call_data
- metadata
required:
- transfer_intent
required:
- id
- created_at
- expires_at
- web3_data
required:
- data
4XX:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/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
description: Type of API used for the generation
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
description: Generation data
required:
- data
description: Generation response
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: getGeneration
/models/count:
get:
tags:
- Models
x-speakeasy-name-override: count
summary: Get total count of available models
responses:
'200':
description: Returns the total count of available models
content:
application/json:
schema:
$ref: '#/components/schemas/ModelsCountResponse'
default:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: listModelsCount
/models:
get:
tags:
- Models
x-speakeasy-name-override: list
summary: List all models and their properties
parameters:
- schema:
type: string
required: false
name: category
in: query
- schema:
type: string
required: false
name: supported_parameters
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
default:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: getModels
/models/user:
get:
tags:
- Models
x-speakeasy-name-override: listForUser
summary: List models filtered by user provider preferences
security:
- bearer: []
responses:
'200':
description: Returns a list of models filtered by user provider preferences
content:
application/json:
schema:
$ref: '#/components/schemas/ModelsListResponse'
default:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
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
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/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
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: listEndpointsZdr
/parameters/{author}/{slug}:
get:
tags:
- Parameters
summary: Get a model's supported parameters and data about which are most popular
security:
- bearer: []
parameters:
- schema:
type: string
required: true
name: author
in: path
- schema:
type: string
required: true
name: slug
in: path
- schema:
type: string
enum:
- AI21
- AionLabs
- Alibaba
- Amazon Bedrock
- Anthropic
- AtlasCloud
- Atoma
- Avian
- Azure
- BaseTen
- Cerebras
- Chutes
- Cirrascale
- Clarifai
- Cloudflare
- Cohere
- CrofAI
- Crusoe
- DeepInfra
- DeepSeek
- Enfer
- Featherless
- Fireworks
- Friendli
- GMICloud
- Google
- Google AI Studio
- Groq
- Hyperbolic
- Inception
- InferenceNet
- Infermatic
- Inflection
- Kluster
- Lambda
- Liquid
- Mancer 2
- Meta
- Minimax
- Mistral
- Modular
- Moonshot AI
- Morph
- NCompass
- Nebius
- NextBit
- Nineteen
- Novita
- Nvidia
- OpenAI
- OpenInference
- Parasail
- Perplexity
- Phala
- Relace
- SambaNova
- SiliconFlow
- Stealth
- Switchpoint
- Targon
- Together
- Ubicloud
- Venice
- WandB
- xAI
- Z.AI
- FakeProvider
required: false
name: provider
in: query
responses:
'200':
description: Returns the parameters for the specified model
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
model:
type: string
description: Model identifier
example: openai/gpt-4
supported_parameters:
type: array
items:
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
- web_search_options
- verbosity
description: List of parameters supported by this model
example:
- temperature
- top_p
- max_tokens
required:
- model
- supported_parameters
example:
model: openai/gpt-4
supported_parameters:
- temperature
- top_p
- max_tokens
description: Parameter analytics data
required:
- data
example:
data:
model: openai/gpt-4
supported_parameters:
- temperature
- top_p
- max_tokens
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: getParameters
/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
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
required:
- data
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
code:
type: number
description: Error code
example: 400
message:
type: string
description: Error message
example: Bad Request
required:
- code
- message
description: Error details
example:
code: 400
message: Bad Request
required:
- error
example:
error:
code: 400
message: Bad Request
/keys:
get:
operationId: list
x-speakeasy-name-override: list
tags:
- API Keys
summary: List API keys
parameters:
- schema:
type: string
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
in: query
responses:
'200':
description: List of API keys
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
hash:
type: string
description: Unique hash identifier for the API key
example: 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
name:
type: string
description: Name of the API key
example: My Production Key
label:
type: string
description: Human-readable label for the API key
example: Production API Key
disabled:
type: boolean
description: Whether the API key is disabled
example: false
limit:
type: number
nullable: true
description: Spending limit for the API key in USD
example: 100
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
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:
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'
required:
- hash
- name
- label
- 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
example:
hash: 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
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'
description: List of API keys
required:
- data
example:
data:
- hash: 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
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'
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
x-speakeasy-name-override: create
tags:
- API Keys
summary: Create a new API key
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
description: Name for the new API key
example: My New API Key
limit:
type: number
nullable: true
description: Optional spending limit for the API key in USD
example: 50
limit_reset:
type: string
nullable: true
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.
example: monthly
include_byok_in_limit:
type: boolean
description: Whether to include BYOK usage in the limit
example: true
required:
- name
example:
name: My New API Key
limit: 50
limit_reset: monthly
include_byok_in_limit: true
required: true
responses:
'201':
description: API key created successfully
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
hash:
type: string
description: Unique hash identifier for the API key
example: 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
name:
type: string
description: Name of the API key
example: My Production Key
label:
type: string
description: Human-readable label for the API key
example: Production API Key
disabled:
type: boolean
description: Whether the API key is disabled
example: false
limit:
type: number
nullable: true
description: Spending limit for the API key in USD
example: 100
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
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:
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'
required:
- hash
- name
- label
- 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
example:
hash: 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
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'
description: The created API key information
key:
type: string
description: The actual API key string (only shown once)
example: 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
required:
- data
- key
example:
data:
hash: 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
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
key: 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
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: createKeys
/keys/{hash}:
patch:
x-speakeasy-name-override: update
tags:
- API Keys
summary: Update an API key
parameters:
- schema:
type: string
description: The hash identifier of the API key to update
example: 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
required: true
description: The hash identifier of the API key to update
name: hash
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
responses:
'200':
description: API key updated successfully
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
hash:
type: string
description: Unique hash identifier for the API key
example: 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
name:
type: string
description: Name of the API key
example: My Production Key
label:
type: string
description: Human-readable label for the API key
example: Production API Key
disabled:
type: boolean
description: Whether the API key is disabled
example: false
limit:
type: number
nullable: true
description: Spending limit for the API key in USD
example: 100
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
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:
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'
required:
- hash
- name
- label
- 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
example:
hash: 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
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'
description: The updated API key information
required:
- data
example:
data:
hash: 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
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'
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: updateKeys
delete:
x-speakeasy-name-override: delete
tags:
- API Keys
summary: Delete an API key
parameters:
- schema:
type: string
description: The hash identifier of the API key to delete
example: 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
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
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
operationId: deleteKeys
get:
operationId: getKey
x-speakeasy-name-override: get
tags:
- API Keys
summary: Get a single API key
parameters:
- schema:
type: string
description: The hash identifier of the API key to retrieve
example: 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
required: true
description: The hash identifier of the API key to retrieve
name: hash
in: path
responses:
'200':
description: API key details
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
hash:
type: string
description: Unique hash identifier for the API key
example: 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
name:
type: string
description: Name of the API key
example: My Production Key
label:
type: string
description: Human-readable label for the API key
example: Production API Key
disabled:
type: boolean
description: Whether the API key is disabled
example: false
limit:
type: number
nullable: true
description: Spending limit for the API key in USD
example: 100
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
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:
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'
required:
- hash
- name
- label
- 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
example:
hash: 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
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'
description: The API key information
required:
- data
example:
data:
hash: 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
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'
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/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
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
label:
type: string
description: Human-readable label for the API key
example: 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
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_provisioning_key:
type: boolean
description: Whether this is a provisioning key
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
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_provisioning_key
- limit_remaining
- limit_reset
- include_byok_in_limit
- rate_limit
description: Current API key information
example:
label: sk-or-v1-au78b3456789012345678901234567890
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_provisioning_key: false
limit_remaining: 74.5
limit_reset: monthly
include_byok_in_limit: false
rate_limit:
requests: 1000
interval: 1h
note: This field is deprecated and safe to ignore.
required:
- data
example:
data:
label: sk-or-v1-au78b3456789012345678901234567890
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_provisioning_key: false
limit_remaining: 74.5
limit_reset: monthly
include_byok_in_limit: false
rate_limit:
requests: 1000
interval: 1h
note: This field is deprecated and safe to ignore.
4XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
5XX:
description: Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/chat/completions:
post:
summary: Create a chat completion
operationId: sendChatCompletionRequest
x-speakeasy-group: chat
x-speakeasy-name-override: send
x-speakeasy-stream-request-field: stream
description: >-
Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming
modes.
tags:
- Chat
requestBody:
required: true
description: Chat completion request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ChatGenerationParams'
responses:
'200':
description: Successful chat completion response
content:
application/json:
schema:
$ref: '#/components/schemas/ChatResponse'
description: Chat completion response
text/event-stream:
x-speakeasy-sse-sentinel: '[DONE]'
schema:
$ref: '#/components/schemas/ChatStreamingResponseChunk'
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
'401':
description: Unauthorized - invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
'429':
description: Too many requests - rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
/completions:
post:
summary: Create a completion
x-speakeasy-group: completions
x-speakeasy-name-override: generate
x-speakeasy-stream-request-field: stream
description: Creates a completion for the provided prompt and parameters. Supports both streaming and non-streaming modes.
tags:
- Completions
requestBody:
required: true
description: Completion request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/CompletionCreateParams'
responses:
'200':
description: Successful completion response
content:
application/json:
schema:
$ref: '#/components/schemas/CompletionResponse'
description: Completion response
'400':
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
'401':
description: Unauthorized - invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
'429':
description: Too many requests - rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ChatError'
operationId: createCompletions
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
tags:
- name: API Keys
description: API key management endpoints
- name: Analytics
description: Analytics and usage endpoints
- name: Chat
description: Chat completion endpoints
- name: Completions
description: Text completion endpoints
- name: Credits
description: Credit management endpoints
- name: Endpoints
description: Endpoint information
- name: Generations
description: Generation history endpoints
- name: Models
description: Model information endpoints
- name: Parameters
description: Parameters endpoints
- name: Providers
description: Provider information endpoints
- name: beta.responses
description: beta.responses endpoints
x-fern-base-path: /
x-retry-strategy:
type: exponential
initialDelay: 500
maxDelay: 60000
maxAttempts: 3