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: OpenAIResponsesResponseStatus: type: string enum: - completed - incomplete - in_progress - failed - cancelled - queued FileCitation: 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 URLCitation: type: object properties: type: type: string enum: - url_citation url: type: string title: type: string start_index: type: number end_index: type: number required: - type - url - title - start_index - end_index example: type: url_citation start_index: 0 end_index: 42 title: OpenRouter Documentation url: https://openrouter.ai/docs FilePath: 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 OpenAIResponsesAnnotation: anyOf: - $ref: '#/components/schemas/FileCitation' - $ref: '#/components/schemas/URLCitation' - $ref: '#/components/schemas/FilePath' ResponseOutputText: type: object properties: type: type: string enum: - output_text text: type: string annotations: type: array items: $ref: '#/components/schemas/OpenAIResponsesAnnotation' 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 OpenAIResponsesRefusalContent: 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/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' required: - id - role - type - 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-123 type: message role: assistant status: completed content: - type: output_text text: Hello! How can I help you? annotations: [] description: An output message item 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 status: anyOf: - type: string enum: - completed - type: string enum: - incomplete - type: string enum: - in_progress required: - type - summary description: An output item containing reasoning example: id: reasoning-123 type: reasoning status: completed summary: - type: summary_text text: Analyzed the problem and found the optimal solution. content: - type: reasoning_text text: First, we analyze the problem... OutputItemFunctionCall: type: object properties: type: type: string enum: - function_call id: type: string name: type: string arguments: type: string call_id: type: string status: anyOf: - type: string enum: - completed - type: string enum: - incomplete - type: string enum: - in_progress required: - type - name - arguments - call_id example: type: function_call id: call-abc123 name: get_weather arguments: '{"location":"San Francisco","unit":"celsius"}' call_id: call-abc123 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 - vector_store_timeout - invalid_image - invalid_image_format - invalid_base64_image - invalid_image_url - image_too_large - image_too_small - image_parse_error - image_content_policy_violation - invalid_image_mode - image_file_too_large - unsupported_image_media_type - empty_image_file - failed_to_download_image - image_file_not_found message: 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. OpenAIResponsesIncompleteDetails: type: object nullable: true properties: reason: type: string enum: - max_output_tokens - content_filter OpenAIResponsesUsage: 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 required: - input_tokens - input_tokens_details - output_tokens - output_tokens_details - total_tokens OpenResponsesUsage: allOf: - $ref: '#/components/schemas/OpenAIResponsesUsage' - type: object properties: cost: type: number nullable: true description: Cost of the completion is_byok: type: boolean description: Whether a request was made using a Bring Your Own Key configuration cost_details: type: object properties: upstream_inference_cost: type: number nullable: true upstream_inference_input_cost: type: number upstream_inference_output_cost: type: number required: - upstream_inference_input_cost - upstream_inference_output_cost description: Token usage information for the response example: input_tokens: 10 output_tokens: 25 total_tokens: 35 input_tokens_details: cached_tokens: 0 output_tokens_details: reasoning_tokens: 0 cost: 0.0012 cost_details: upstream_inference_cost: null upstream_inference_input_cost: 0.0008 upstream_inference_output_cost: 0.0004 ResponseInputText: 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? ResponseInputImage: 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 ResponseInputFile: 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 ToolCallStatus: type: string enum: - in_progress - completed - incomplete example: completed OpenAIResponsesInput: anyOf: - type: string - type: array items: anyOf: - type: object properties: type: type: string enum: - message role: anyOf: - type: string enum: - user - type: string enum: - system - type: string enum: - assistant - type: string enum: - developer content: anyOf: - type: array items: oneOf: - $ref: '#/components/schemas/ResponseInputText' - $ref: '#/components/schemas/ResponseInputImage' - $ref: '#/components/schemas/ResponseInputFile' discriminator: propertyName: type mapping: input_text: '#/components/schemas/ResponseInputText' input_image: '#/components/schemas/ResponseInputImage' input_file: '#/components/schemas/ResponseInputFile' - type: string required: - role - content - type: object properties: id: type: string type: type: string enum: - message role: anyOf: - type: string enum: - user - type: string enum: - system - type: string enum: - developer content: type: array items: oneOf: - $ref: '#/components/schemas/ResponseInputText' - $ref: '#/components/schemas/ResponseInputImage' - $ref: '#/components/schemas/ResponseInputFile' discriminator: propertyName: type mapping: input_text: '#/components/schemas/ResponseInputText' input_image: '#/components/schemas/ResponseInputImage' input_file: '#/components/schemas/ResponseInputFile' required: - id - role - content - 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 - 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 - $ref: '#/components/schemas/OutputItemImageGenerationCall' - $ref: '#/components/schemas/OutputMessage' - nullable: true 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 OpenAIResponsesToolChoice: anyOf: - type: string enum: - auto - type: string enum: - none - type: string enum: - required - type: object properties: type: type: string enum: - function name: type: string required: - type - name - type: object properties: type: anyOf: - type: string enum: - web_search_preview_2025_03_11 - type: string enum: - web_search_preview required: - type OpenAIResponsesPrompt: type: object nullable: true properties: id: type: string variables: type: object nullable: true additionalProperties: oneOf: - $ref: '#/components/schemas/ResponseInputText' - $ref: '#/components/schemas/ResponseInputImage' - $ref: '#/components/schemas/ResponseInputFile' discriminator: propertyName: type mapping: input_text: '#/components/schemas/ResponseInputText' input_image: '#/components/schemas/ResponseInputImage' input_file: '#/components/schemas/ResponseInputFile' required: - id OpenAIResponsesReasoningEffort: type: string nullable: true enum: - high - medium - low - minimal ReasoningSummaryVerbosity: type: string enum: - auto - concise - detailed OpenAIResponsesReasoningConfig: type: object nullable: true properties: effort: $ref: '#/components/schemas/OpenAIResponsesReasoningEffort' summary: $ref: '#/components/schemas/ReasoningSummaryVerbosity' OpenAIResponsesServiceTier: type: string nullable: true enum: - auto - default - flex - priority - scale OpenAIResponsesTruncation: type: string nullable: true enum: - auto - disabled ResponsesFormatText: type: object properties: type: type: string enum: - text required: - type description: Plain text response format example: type: text ResponsesFormatJSONObject: type: object properties: type: type: string enum: - json_object required: - type description: JSON object response format example: type: json_object ResponsesFormatTextJSONSchemaConfig: 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 ResponseFormatTextConfig: anyOf: - $ref: '#/components/schemas/ResponsesFormatText' - $ref: '#/components/schemas/ResponsesFormatJSONObject' - $ref: '#/components/schemas/ResponsesFormatTextJSONSchemaConfig' description: Text response format configuration example: type: text ResponseTextConfig: type: object properties: format: $ref: '#/components/schemas/ResponseFormatTextConfig' verbosity: type: string nullable: true enum: - high - low - medium description: Text output configuration including format and verbosity example: format: type: text verbosity: medium 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 status: anyOf: - type: string enum: - completed - type: string enum: - incomplete - type: string enum: - in_progress required: - type - id - summary example: type: reasoning id: reasoning-abc123 summary: - type: summary_text text: Analyzed the problem using first principles OpenAIResponsesNonStreamingResponse: type: object properties: id: type: string object: type: string enum: - response created_at: type: number model: type: string status: $ref: '#/components/schemas/OpenAIResponsesResponseStatus' output: type: array items: oneOf: - $ref: '#/components/schemas/OutputMessage' - $ref: '#/components/schemas/OutputItemReasoning' - $ref: '#/components/schemas/OutputItemFunctionCall' - $ref: '#/components/schemas/OutputItemWebSearchCall' - $ref: '#/components/schemas/OutputItemFileSearchCall' - $ref: '#/components/schemas/OutputItemImageGenerationCall' discriminator: propertyName: type mapping: message: '#/components/schemas/OutputMessage' reasoning: '#/components/schemas/OutputItemReasoning' function_call: '#/components/schemas/OutputItemFunctionCall' web_search_call: '#/components/schemas/OutputItemWebSearchCall' file_search_call: '#/components/schemas/OutputItemFileSearchCall' image_generation_call: '#/components/schemas/OutputItemImageGenerationCall' user: type: 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: $ref: '#/components/schemas/OpenAIResponsesIncompleteDetails' usage: $ref: '#/components/schemas/OpenAIResponsesUsage' max_tool_calls: type: number nullable: true top_logprobs: type: number max_output_tokens: type: number nullable: true temperature: type: number nullable: true top_p: type: number nullable: true instructions: $ref: '#/components/schemas/OpenAIResponsesInput' metadata: $ref: '#/components/schemas/OpenResponsesRequestMetadata' tools: type: array items: 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' tool_choice: $ref: '#/components/schemas/OpenAIResponsesToolChoice' parallel_tool_calls: type: boolean prompt: $ref: '#/components/schemas/OpenAIResponsesPrompt' background: type: boolean nullable: true previous_response_id: type: string nullable: true reasoning: $ref: '#/components/schemas/OpenAIResponsesReasoningConfig' service_tier: $ref: '#/components/schemas/OpenAIResponsesServiceTier' store: type: boolean truncation: $ref: '#/components/schemas/OpenAIResponsesTruncation' text: $ref: '#/components/schemas/ResponseTextConfig' required: - id - object - created_at - model - output - error - incomplete_details - temperature - top_p - instructions - metadata - tools - tool_choice - parallel_tool_calls OpenResponsesNonStreamingResponse: allOf: - $ref: '#/components/schemas/OpenAIResponsesNonStreamingResponse' - type: object properties: output: type: array items: $ref: '#/components/schemas/ResponsesOutputItem' usage: $ref: '#/components/schemas/OpenResponsesUsage' 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/OpenAIResponsesNonStreamingResponse' 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/OpenAIResponsesNonStreamingResponse' 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/OpenAIResponsesNonStreamingResponse' 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/OpenAIResponsesNonStreamingResponse' 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/OpenAIResponsesNonStreamingResponse' 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 OpenAIResponsesErrorEvent: 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 OpenResponsesErrorEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesErrorEvent' - 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 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 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/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' 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/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' 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: $ref: '#/components/schemas/OpenResponsesTopLogprobs' 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: $ref: '#/components/schemas/OpenAIResponsesAnnotation' 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 OpenAIResponsesReasoningDeltaEvent: 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 OpenResponsesReasoningDeltaEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesReasoningDeltaEvent' - 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 OpenAIResponsesReasoningDoneEvent: 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 OpenResponsesReasoningDoneEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesReasoningDoneEvent' - 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 OpenAIResponsesReasoningSummaryPartAddedEvent: 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 OpenResponsesReasoningSummaryPartAddedEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesReasoningSummaryPartAddedEvent' - 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 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 OpenAIResponsesReasoningSummaryTextDeltaEvent: 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 OpenResponsesReasoningSummaryTextDeltaEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesReasoningSummaryTextDeltaEvent' - 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 OpenAIResponsesReasoningSummaryTextDoneEvent: 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 OpenResponsesReasoningSummaryTextDoneEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesReasoningSummaryTextDoneEvent' - type: object properties: {} description: Event emitted when reasoning summary text streaming is complete example: type: response.reasoning_summary_text.done item_id: item-1 output_index: 0 summary_index: 0 text: Analyzing the problem step by step to find the optimal solution. sequence_number: 6 OpenAIResponsesImageGenCallInProgress: type: object 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 OpenResponsesImageGenCallInProgress: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallInProgress' - type: object properties: {} description: Image generation call in progress example: type: response.image_generation_call.in_progress output_index: 0 sequence_number: 1 item_id: call-123 OpenAIResponsesImageGenCallGenerating: 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 OpenResponsesImageGenCallGenerating: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallGenerating' - type: object properties: {} description: Image generation call is generating example: type: response.image_generation_call.generating output_index: 0 sequence_number: 2 item_id: call-123 OpenAIResponsesImageGenCallPartialImage: 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 OpenResponsesImageGenCallPartialImage: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallPartialImage' - type: object properties: {} description: Image generation call with partial image example: type: response.image_generation_call.partial_image output_index: 0 sequence_number: 3 item_id: call-123 partial_image_b64: base64encodedimage... partial_image_index: 0 OpenAIResponsesImageGenCallCompleted: 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 OpenResponsesImageGenCallCompleted: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallCompleted' - type: object properties: {} description: Image generation call completed example: type: response.image_generation_call.completed output_index: 0 sequence_number: 4 item_id: call-123 OpenResponsesStreamEvent: oneOf: - allOf: - $ref: '#/components/schemas/OpenResponsesCreatedEvent' - type: object properties: response: $ref: '#/components/schemas/OpenResponsesNonStreamingResponse' 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: response: $ref: '#/components/schemas/OpenResponsesNonStreamingResponse' 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: response: $ref: '#/components/schemas/OpenResponsesNonStreamingResponse' 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: response: $ref: '#/components/schemas/OpenResponsesNonStreamingResponse' 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: response: $ref: '#/components/schemas/OpenResponsesNonStreamingResponse' description: Event emitted when a response has failed example: type: response.failed response: id: resp-abc123 object: response created_at: 1704067200 model: gpt-4 status: failed output: [] tools: [] tool_choice: auto parallel_tool_calls: true error: null incomplete_details: null metadata: null instructions: null temperature: null top_p: null max_output_tokens: null sequence_number: 3 - $ref: '#/components/schemas/OpenResponsesErrorEvent' - 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/ResponseOutputText' - $ref: '#/components/schemas/ReasoningTextContent' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' 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/ResponseOutputText' - $ref: '#/components/schemas/ReasoningTextContent' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' description: Event emitted when a content part is complete example: type: response.content_part.done output_index: 0 item_id: item-1 content_index: 0 part: type: output_text text: Hello! How can I help you? annotations: [] sequence_number: 7 - 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 - $ref: '#/components/schemas/OpenResponsesReasoningDeltaEvent' - $ref: '#/components/schemas/OpenResponsesReasoningDoneEvent' - $ref: '#/components/schemas/OpenResponsesReasoningSummaryPartAddedEvent' - 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 - $ref: '#/components/schemas/OpenResponsesReasoningSummaryTextDeltaEvent' - $ref: '#/components/schemas/OpenResponsesReasoningSummaryTextDoneEvent' - $ref: '#/components/schemas/OpenResponsesImageGenCallInProgress' - $ref: '#/components/schemas/OpenResponsesImageGenCallGenerating' - $ref: '#/components/schemas/OpenResponsesImageGenCallPartialImage' - $ref: '#/components/schemas/OpenResponsesImageGenCallCompleted' 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 canonical_slug: openai/gpt-4 name: GPT-4 created: 1692901234 description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. pricing: prompt: '0.00003' completion: '0.00006' request: '0' image: '0' context_length: 8192 architecture: tokenizer: GPT instruct_type: chatml modality: text->text input_modalities: - text output_modalities: - text top_provider: context_length: 8192 max_completion_tokens: 4096 is_moderated: true per_request_limits: null supported_parameters: - temperature - top_p - max_tokens - frequency_penalty - presence_penalty default_parameters: null 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. architecture: tokenizer: GPT instruct_type: chatml modality: text->text input_modalities: - text output_modalities: - text endpoints: - name: 'OpenAI: GPT-4' model_name: GPT-4 context_length: 8192 pricing: prompt: '0.00003' completion: '0.00006' request: '0' image: '0' provider_name: OpenAI tag: openai quantization: fp16 max_completion_tokens: 4096 max_prompt_tokens: 8192 supported_parameters: - temperature - top_p - max_tokens - frequency_penalty - presence_penalty status: default uptime_last_30m: 99.5 supports_implicit_caching: true 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 - ModelRun - 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