# Responses API schemas ResponsesRequest: type: object required: - model - input properties: model: type: string description: Model in provider/model format input: $ref: '#/ResponsesRequestInput' fallbacks: type: array items: type: string stream: type: boolean background: type: boolean conversation: type: string include: type: array items: type: string instructions: type: string max_output_tokens: type: integer max_tool_calls: type: integer metadata: type: object additionalProperties: true parallel_tool_calls: type: boolean previous_response_id: type: string prompt_cache_key: type: string reasoning: $ref: '#/ResponsesParametersReasoning' safety_identifier: type: string service_tier: type: string stream_options: $ref: '#/ResponsesStreamOptions' store: type: boolean temperature: type: number text: $ref: '#/ResponsesTextConfig' top_logprobs: type: integer top_p: type: number tool_choice: $ref: '#/ResponsesToolChoice' tools: type: array items: $ref: '#/ResponsesTool' truncation: type: string ResponsesRequestInput: oneOf: - type: string - type: array items: $ref: '#/ResponsesMessage' description: Input - can be a string or array of messages ResponsesMessage: type: object properties: id: type: string type: $ref: '#/ResponsesMessageType' status: type: string enum: [in_progress, completed, incomplete, interpreting, failed] role: type: string enum: [assistant, user, system, developer] content: $ref: '#/ResponsesMessageContent' call_id: type: string name: type: string arguments: type: string output: type: object action: type: object error: type: string queries: type: array items: type: string results: type: array items: type: object summary: type: array items: $ref: '#/ResponsesReasoningSummary' encrypted_content: type: string ResponsesMessageType: type: string enum: - message - file_search_call - computer_call - computer_call_output - web_search_call - web_fetch_call - function_call - function_call_output - code_interpreter_call - local_shell_call - local_shell_call_output - mcp_call - custom_tool_call - custom_tool_call_output - image_generation_call - mcp_list_tools - mcp_approval_request - mcp_approval_responses - reasoning - item_reference - refusal ResponsesMessageContent: oneOf: - type: string - type: array items: $ref: '#/ResponsesMessageContentBlock' ResponsesMessageContentBlock: type: object required: - type properties: type: type: string enum: [input_text, input_image, input_file, input_audio, output_text, refusal, reasoning_text] file_id: type: string text: type: string signature: type: string image_url: type: string detail: type: string file_data: type: string file_url: type: string filename: type: string file_type: type: string input_audio: $ref: '#/ResponsesInputMessageContentBlockAudio' annotations: type: array items: $ref: '#/ResponsesOutputMessageContentTextAnnotation' logprobs: type: array items: $ref: '#/ResponsesOutputMessageContentTextLogProb' refusal: type: string cache_control: $ref: './common.yaml#/CacheControl' ResponsesInputMessageContentBlockAudio: type: object required: - format - data properties: format: type: string enum: [mp3, wav] data: type: string ResponsesOutputMessageContentTextAnnotation: type: object properties: type: type: string enum: [file_citation, url_citation, container_file_citation, file_path] index: type: integer file_id: type: string text: type: string start_index: type: integer end_index: type: integer filename: type: string title: type: string url: type: string container_id: type: string ResponsesOutputMessageContentTextLogProb: type: object properties: bytes: type: array items: type: integer logprob: type: number token: type: string top_logprobs: type: array items: $ref: './chat.yaml#/LogProb' ResponsesParametersReasoning: type: object properties: effort: type: string enum: [none, minimal, low, medium, high, xhigh] generate_summary: type: string deprecated: true summary: type: string enum: [auto, concise, detailed] max_tokens: type: integer ResponsesStreamOptions: type: object properties: include_obfuscation: type: boolean ResponsesTextConfig: type: object properties: format: $ref: '#/ResponsesTextConfigFormat' verbosity: type: string enum: [low, medium, high] ResponsesTextConfigFormat: type: object required: - type properties: type: type: string enum: [text, json_schema, json_object] name: type: string schema: type: object strict: type: boolean ResponsesToolChoice: oneOf: - type: string enum: [none, auto, required] - $ref: '#/ResponsesToolChoiceStruct' ResponsesToolChoiceStruct: type: object required: - type properties: type: type: string enum: - none - auto - any - required - function - allowed_tools - file_search - web_search_preview - computer_use_preview - code_interpreter - image_generation - mcp - custom mode: type: string name: type: string server_label: type: string tools: type: array items: $ref: '#/ResponsesToolChoiceAllowedToolDef' ResponsesToolChoiceAllowedToolDef: type: object required: - type properties: type: type: string enum: [function, mcp, image_generation] name: type: string server_label: type: string ResponsesTool: type: object required: - type properties: type: type: string enum: - function - file_search - computer_use_preview - web_search - web_fetch - mcp - code_interpreter - image_generation - local_shell - custom - web_search_preview - memory - tool_search name: type: string description: type: string cache_control: $ref: './common.yaml#/CacheControl' parameters: $ref: './chat.yaml#/ToolFunctionParameters' strict: type: boolean vector_store_ids: type: array items: type: string filters: type: object max_num_results: type: integer ranking_options: type: object display_height: type: integer display_width: type: integer environment: type: string enable_zoom: type: boolean search_context_size: type: string user_location: type: object server_label: type: string server_url: type: string allowed_tools: type: object authorization: type: string connector_id: type: string headers: type: object additionalProperties: type: string require_approval: type: object server_description: type: string container: type: object background: type: string input_fidelity: type: string input_image_mask: type: object moderation: type: string output_compression: type: integer output_format: type: string partial_images: type: integer quality: type: string size: type: string format: type: object ResponsesReasoningSummary: type: object required: - type - text properties: type: type: string enum: [summary_text] text: type: string ResponsesResponse: type: object properties: id: type: string background: type: boolean conversation: type: object created_at: type: integer error: $ref: '#/ResponsesResponseError' include: type: array items: type: string incomplete_details: $ref: '#/ResponsesResponseIncompleteDetails' instructions: type: object max_output_tokens: type: integer max_tool_calls: type: integer metadata: type: object model: type: string output: type: array items: $ref: '#/ResponsesMessage' parallel_tool_calls: type: boolean previous_response_id: type: string prompt: type: object prompt_cache_key: type: string reasoning: $ref: '#/ResponsesParametersReasoning' safety_identifier: type: string service_tier: type: string status: type: string enum: [completed, failed, in_progress, canceled, queued, incomplete] stop_reason: type: string store: type: boolean temperature: type: number text: $ref: '#/ResponsesTextConfig' top_logprobs: type: integer top_p: type: number tool_choice: $ref: '#/ResponsesToolChoice' tools: type: array items: $ref: '#/ResponsesTool' truncation: type: string usage: $ref: '#/ResponsesResponseUsage' extra_fields: $ref: './common.yaml#/BifrostResponseExtraFields' search_results: type: array items: $ref: './chat.yaml#/PerplexitySearchResult' videos: type: array items: $ref: './chat.yaml#/VideoResult' citations: type: array items: type: string ResponsesResponseError: type: object required: - code - message properties: code: type: string message: type: string ResponsesResponseIncompleteDetails: type: object required: - reason properties: reason: type: string ResponsesResponseUsage: type: object properties: input_tokens: type: integer input_tokens_details: $ref: '#/ResponsesResponseInputTokens' output_tokens: type: integer output_tokens_details: $ref: '#/ResponsesResponseOutputTokens' total_tokens: type: integer cost: $ref: './usage.yaml#/BifrostCost' ResponsesResponseInputTokens: type: object properties: text_tokens: type: integer audio_tokens: type: integer image_tokens: type: integer cached_read_tokens: type: integer description: > Tokens served from the prompt cache (cache hit), billed at the reduced cache-read rate. Already included in the parent input_tokens total. cached_write_tokens: type: integer description: > Tokens written to the prompt cache on this request, billed at the cache-creation rate. Already included in the parent input_tokens total. Populated for providers that separately report cache write tokens (Anthropic, Bedrock). ResponsesResponseOutputTokens: type: object properties: text_tokens: type: integer accepted_prediction_tokens: type: integer audio_tokens: type: integer reasoning_tokens: type: integer rejected_prediction_tokens: type: integer citation_tokens: type: integer num_search_queries: type: integer ResponsesStreamResponse: type: object description: Streaming responses API response (SSE format) properties: type: $ref: '#/ResponsesStreamResponseType' sequence_number: type: integer response: $ref: '#/ResponsesResponse' output_index: type: integer item: $ref: '#/ResponsesMessage' content_index: type: integer item_id: type: string part: $ref: '#/ResponsesMessageContentBlock' delta: type: string signature: type: string logprobs: type: array items: $ref: '#/ResponsesOutputMessageContentTextLogProb' text: type: string refusal: type: string arguments: type: string partial_image_b64: type: string partial_image_index: type: integer annotation: $ref: '#/ResponsesOutputMessageContentTextAnnotation' annotation_index: type: integer code: type: string message: type: string param: type: string extra_fields: $ref: './common.yaml#/BifrostResponseExtraFields' ResponsesStreamResponseType: type: string enum: - response.ping - response.created - response.in_progress - response.completed - response.failed - response.incomplete - response.output_item.added - response.output_item.done - response.content_part.added - response.content_part.done - response.output_text.delta - response.output_text.done - response.refusal.delta - response.refusal.done - response.function_call_arguments.delta - response.function_call_arguments.done - response.file_search_call.in_progress - response.file_search_call.searching - response.file_search_call.results.added - response.file_search_call.results.completed - response.web_search_call.searching - response.web_search_call.results.added - response.web_search_call.results.completed - response.web_fetch_call.in_progress - response.web_fetch_call.fetching - response.web_fetch_call.completed - response.reasoning_summary_part.added - response.reasoning_summary_part.done - response.reasoning_summary_text.delta - response.reasoning_summary_text.done - response.image_generation_call.completed - response.image_generation_call.generating - response.image_generation_call.in_progress - response.image_generation_call.partial_image - response.mcp_call_arguments.delta - response.mcp_call_arguments.done - response.mcp_call.completed - response.mcp_call.failed - response.mcp_call.in_progress - response.mcp_list_tools.completed - response.mcp_list_tools.failed - response.mcp_list_tools.in_progress - response.code_interpreter_call.in_progress - response.code_interpreter_call.interpreting - response.code_interpreter_call.completed - response.code_interpreter_call_code.delta - response.code_interpreter_call_code.done - response.output_text.annotation.added - response.output_text.annotation.done - response.queued - response.custom_tool_call_input.delta - response.custom_tool_call_input.done - error