Skip to content
For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Primary navigation

Responses

Cancel a response
client.Beta.Responses.Cancel(ctx, responseID, body) (*BetaResponse, error)
POST/responses/{response_id}/cancel
Compact conversation
client.Beta.Responses.Compact(ctx, params) (*BetaCompactedResponse, error)
POST/responses/compact
Create a model response
client.Beta.Responses.New(ctx, params) (*BetaResponse, error)
POST/responses
Delete a model response
client.Beta.Responses.Delete(ctx, responseID, body) error
DELETE/responses/{response_id}
Get a model response
client.Beta.Responses.Get(ctx, responseID, params) (*BetaResponse, error)
GET/responses/{response_id}
ModelsExpand Collapse
type BetaApplyPatchTool struct{…}

Allows the assistant to create, delete, or update files using unified diffs.

type BetaCompactedResponse struct{…}
type BetaComputerActionUnion interface{…}

A click action.

type BetaComputerActionList []BetaComputerActionUnion

Flattened batched actions for computer_use. Each action includes an type discriminator and action-specific fields.

type BetaComputerTool struct{…}

A tool that controls a virtual computer. Learn more about the computer tool.

type BetaComputerUsePreviewTool struct{…}

A tool that controls a virtual computer. Learn more about the computer tool.

type BetaContainerAuto struct{…}
type BetaContainerNetworkPolicyAllowlist struct{…}
type BetaContainerNetworkPolicyDisabled struct{…}
type BetaContainerNetworkPolicyDomainSecret struct{…}
type BetaContainerReference struct{…}
type BetaCustomTool struct{…}

A custom tool that processes input using a specified format. Learn more about custom tools

type BetaEasyInputMessage struct{…}

A message input to the model with a role indicating instruction following hierarchy. Instructions given with the developer or system role take precedence over instructions given with the user role. Messages with the assistant role are presumed to have been generated by the model in previous interactions.

type BetaFileSearchTool struct{…}

A tool that searches for relevant content from uploaded files. Learn more about the file search tool.

type BetaFunctionShellTool struct{…}

A tool that allows the model to execute shell commands.

type BetaFunctionTool struct{…}

Defines a function in your own code the model can choose to call. Learn more about function calling.

type BetaInlineSkill struct{…}
type BetaInlineSkillSource struct{…}

Inline skill payload

type BetaLocalEnvironment struct{…}
type BetaLocalSkill struct{…}
type BetaMcpToolCallErrorUnion interface{…}
type BetaNamespaceTool struct{…}

Groups function/custom tools under a shared namespace.

type BetaResponse struct{…}
type BetaResponseApplyPatchToolCall struct{…}

A tool call that applies file diffs by creating, deleting, or updating files.

type BetaResponseApplyPatchToolCallOutput struct{…}

The output emitted by an apply patch tool call.

type BetaResponseAudioDeltaEvent struct{…}

Emitted when there is a partial audio response.

type BetaResponseAudioDoneEvent struct{…}

Emitted when the audio response is complete.

type BetaResponseAudioTranscriptDeltaEvent struct{…}

Emitted when there is a partial transcript of audio.

type BetaResponseAudioTranscriptDoneEvent struct{…}

Emitted when the full audio transcript is completed.

type BetaResponseCodeInterpreterCallCodeDeltaEvent struct{…}

Emitted when a partial code snippet is streamed by the code interpreter.

type BetaResponseCodeInterpreterCallCodeDoneEvent struct{…}

Emitted when the code snippet is finalized by the code interpreter.

type BetaResponseCodeInterpreterCallCompletedEvent struct{…}

Emitted when the code interpreter call is completed.

type BetaResponseCodeInterpreterCallInProgressEvent struct{…}

Emitted when a code interpreter call is in progress.

type BetaResponseCodeInterpreterCallInterpretingEvent struct{…}

Emitted when the code interpreter is actively interpreting the code snippet.

type BetaResponseCodeInterpreterToolCall struct{…}

A tool call to run code.

type BetaResponseCompactionItem struct{…}

A compaction item generated by the v1/responses/compact API.

type BetaResponseCompactionItemParamResp struct{…}

A compaction item generated by the v1/responses/compact API.

type BetaResponseCompletedEvent struct{…}

Emitted when the model response is complete.

type BetaResponseComputerToolCall struct{…}

A tool call to a computer use tool. See the computer use guide for more information.

type BetaResponseComputerToolCallOutputItem struct{…}
type BetaResponseComputerToolCallOutputScreenshot struct{…}

A computer screenshot image used with the computer use tool.

type BetaResponseConfigurationUpdateItem struct{…}

A configuration update that applies to subsequent responses until it is replaced by another configuration update.

type BetaResponseConfigurationUpdateItemParamResp struct{…}

An update to the conversation’s response configuration. The configuration remains in effect for subsequent responses until it is replaced by another configuration update.

type BetaResponseContainerReference struct{…}

Represents a container created with /v1/containers.

type BetaResponseContentUnion interface{…}

Multi-modal input and output contents.

type BetaResponseContentPartAddedEvent struct{…}

Emitted when a new content part is added.

type BetaResponseContentPartDoneEvent struct{…}

Emitted when a content part is done.

type BetaResponseConversationParamResp struct{…}

The conversation that this response belongs to.

type BetaResponseCreatedEvent struct{…}

An event that is emitted when a response is created.

type BetaResponseCustomToolCall struct{…}

A call to a custom tool created by the model.

type BetaResponseCustomToolCallInputDeltaEvent struct{…}

Event representing a delta (partial update) to the input of a custom tool call.

type BetaResponseCustomToolCallInputDoneEvent struct{…}

Event indicating that input for a custom tool call is complete.

type BetaResponseCustomToolCallItem struct{…}

A call to a custom tool created by the model.

type BetaResponseCustomToolCallOutput struct{…}

The output of a custom tool call from your code, being sent back to the model.

type BetaResponseCustomToolCallOutputItem struct{…}

The output of a custom tool call from your code, being sent back to the model.

type BetaResponseError struct{…}

An error object returned when the model fails to generate a Response.

type BetaResponseErrorEvent struct{…}

Emitted when an error occurs.

type BetaResponseFailedEvent struct{…}

An event that is emitted when a response fails.

type BetaResponseFileSearchCallCompletedEvent struct{…}

Emitted when a file search call is completed (results found).

type BetaResponseFileSearchCallInProgressEvent struct{…}

Emitted when a file search call is initiated.

type BetaResponseFileSearchCallSearchingEvent struct{…}

Emitted when a file search is currently searching.

type BetaResponseFileSearchToolCall struct{…}

The results of a file search tool call. See the file search guide for more information.

type BetaResponseFormatTextConfigUnion interface{…}

An object specifying the format that the model must output.

Configuring { "type": "json_schema" } enables Structured Outputs, which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide.

The default format is { "type": "text" } with no additional options.

Not recommended for gpt-4o and newer models:

Setting to { "type": "json_object" } enables the older JSON mode, which ensures the message the model generates is valid JSON. Using json_schema is preferred for models that support it.

type BetaResponseFormatTextJSONSchemaConfig struct{…}

JSON Schema response format. Used to generate structured JSON responses. Learn more about Structured Outputs.

type BetaResponseFunctionCallArgumentsDeltaEvent struct{…}

Emitted when there is a partial function-call arguments delta.

type BetaResponseFunctionCallArgumentsDoneEvent struct{…}

Emitted when function-call arguments are finalized.

type BetaResponseFunctionCallOutputItemUnion interface{…}

A piece of message content, such as text, an image, or a file.

type BetaResponseFunctionCallOutputItemList []BetaResponseFunctionCallOutputItemUnion

An array of content outputs (text, image, file) for the function tool call.

type BetaResponseFunctionShellCallOutputContent struct{…}

Captured stdout and stderr for a portion of a shell tool call output.

type BetaResponseFunctionShellToolCall struct{…}

A tool call that executes one or more shell commands in a managed environment.

type BetaResponseFunctionShellToolCallOutput struct{…}

The output of a shell tool call that was emitted.

type BetaResponseFunctionToolCall struct{…}

A tool call to run a function. See the function calling guide for more information.

type BetaResponseFunctionToolCallItem struct{…}

A tool call to run a function. See the function calling guide for more information.

type BetaResponseFunctionToolCallOutputItem struct{…}
type BetaResponseImageGenCallCompletedEvent struct{…}

Emitted when an image generation tool call has completed and the final image is available.

type BetaResponseImageGenCallGeneratingEvent struct{…}

Emitted when an image generation tool call is actively generating an image (intermediate state).

type BetaResponseImageGenCallInProgressEvent struct{…}

Emitted when an image generation tool call is in progress.

type BetaResponseImageGenCallPartialImageEvent struct{…}

Emitted when a partial image is available during image generation streaming.

type BetaResponseInProgressEvent struct{…}

Emitted when the response is in progress.

type BetaResponseIncludable string

Specify additional output data to include in the model response. Currently supported values are:

  • web_search_call.results: Include the search results of the web search tool call.
  • web_search_call.action.sources: Include the sources of the web search tool call.
  • code_interpreter_call.outputs: Includes the outputs of python code execution in code interpreter tool call items.
  • computer_call_output.output.image_url: Include image urls from the computer call output.
  • file_search_call.results: Include the search results of the file search tool call.
  • message.input_image.image_url: Include image urls from the input message.
  • message.output_text.logprobs: Include logprobs with assistant messages.
  • reasoning.encrypted_content: Includes an encrypted version of reasoning tokens in reasoning item outputs. This enables reasoning items to be used in multi-turn conversations when using the Responses API statelessly (like when the store parameter is set to false, or when an organization is enrolled in the zero data retention program).
type BetaResponseIncompleteEvent struct{…}

An event that is emitted when a response finishes as incomplete.

Over WebSocket, steering can finish a response with response.incomplete_details.reason set to steered, followed automatically by a successor response.created that commits the queued steering input.

type BetaResponseInjectCreatedEvent struct{…}

Emitted when all injected input items were validated and committed to the active response.

type BetaResponseInjectEvent struct{…}

Injects input items into an active response over a WebSocket connection. The items are validated and committed atomically. Currently, the server accepts client-owned tool outputs that resume a waiting agent.

type BetaResponseInjectFailedEvent struct{…}

Emitted when injected input could not be committed to a response. The event returns the uncommitted raw input so the client can retry it in another response when appropriate.

type BetaResponseInput []BetaResponseInputItemUnion

A list of one or many input items to the model, containing different content types.

type BetaResponseInputAudio struct{…}

An audio input to the model.

type BetaResponseInputContentUnion interface{…}

A text input to the model.

type BetaResponseInputFile struct{…}

A file input to the model.

type BetaResponseInputFileContent struct{…}

A file input to the model.

type BetaResponseInputImage struct{…}

An image input to the model. Learn about image inputs.

type BetaResponseInputImageContent struct{…}

An image input to the model. Learn about image inputs

type BetaResponseInputItemUnion interface{…}

A message input to the model with a role indicating instruction following hierarchy. Instructions given with the developer or system role take precedence over instructions given with the user role. Messages with the assistant role are presumed to have been generated by the model in previous interactions.

type BetaResponseInputMessageContentList []BetaResponseInputContentUnion

A list of one or many input items to the model, containing different content types.

type BetaResponseInputMessageItem struct{…}
type BetaResponseInputText struct{…}

A text input to the model.

type BetaResponseInputTextContent struct{…}

A text input to the model.

type BetaResponseItemUnion interface{…}

Content item used to generate a response.

type BetaResponseLocalEnvironment struct{…}

Represents the use of a local environment to perform shell actions.

type BetaResponseMcpCallArgumentsDeltaEvent struct{…}

Emitted when there is a delta (partial update) to the arguments of an MCP tool call.

type BetaResponseMcpCallArgumentsDoneEvent struct{…}

Emitted when the arguments for an MCP tool call are finalized.

type BetaResponseMcpCallCompletedEvent struct{…}

Emitted when an MCP tool call has completed successfully.

type BetaResponseMcpCallFailedEvent struct{…}

Emitted when an MCP tool call has failed.

type BetaResponseMcpCallInProgressEvent struct{…}

Emitted when an MCP tool call is in progress.

type BetaResponseMcpListToolsCompletedEvent struct{…}

Emitted when the list of available MCP tools has been successfully retrieved.

type BetaResponseMcpListToolsFailedEvent struct{…}

Emitted when the attempt to list available MCP tools has failed.

type BetaResponseMcpListToolsInProgressEvent struct{…}

Emitted when the system is in the process of retrieving the list of available MCP tools.

type BetaResponseOutputAudio struct{…}

An audio output from the model.

type BetaResponseOutputItemUnion interface{…}

An output message from the model.

type BetaResponseOutputItemAddedEvent struct{…}

Emitted when a new output item is added.

type BetaResponseOutputItemDoneEvent struct{…}

Emitted when an output item is marked done.

type BetaResponseOutputMessage struct{…}

An output message from the model.

type BetaResponseOutputRefusal struct{…}

A refusal from the model.

type BetaResponseOutputText struct{…}

A text output from the model.

type BetaResponseOutputTextAnnotationAddedEvent struct{…}

Emitted when an annotation is added to output text content.

type BetaResponsePrompt struct{…}

Reference to a prompt template and its variables. Learn more.

type BetaResponseQueuedEvent struct{…}

Emitted when a response is queued and waiting to be processed.

type BetaResponseReasoningItem struct{…}

A description of the chain of thought used by a reasoning model while generating a response. Be sure to include these items in your input to the Responses API for subsequent turns of a conversation if you are manually managing context.

type BetaResponseReasoningSummaryPartAddedEvent struct{…}

Emitted when a new reasoning summary part is added.

type BetaResponseReasoningSummaryPartDoneEvent struct{…}

Emitted when a reasoning summary part is completed.

type BetaResponseReasoningSummaryTextDeltaEvent struct{…}

Emitted when a delta is added to a reasoning summary text.

type BetaResponseReasoningSummaryTextDoneEvent struct{…}

Emitted when a reasoning summary text is completed.

type BetaResponseReasoningTextDeltaEvent struct{…}

Emitted when a delta is added to a reasoning text.

type BetaResponseReasoningTextDoneEvent struct{…}

Emitted when a reasoning text is completed.

type BetaResponseRefusalDeltaEvent struct{…}

Emitted when there is a partial refusal text.

type BetaResponseRefusalDoneEvent struct{…}

Emitted when refusal text is finalized.

type BetaResponseShellCallCommandAddedEvent struct{…}

A streaming event that indicated a shell command was added to a tool call.

type BetaResponseShellCallCommandDeltaEvent struct{…}

A streaming event that indicated a shell command was incrementally updated.

type BetaResponseShellCallCommandDoneEvent struct{…}

A streaming event that indicated a shell command was completed.

type BetaResponseShellCallOutputContentDeltaEvent struct{…}

A streaming event that indicated shell call output was incrementally added.

type BetaResponseShellCallOutputContentDoneEvent struct{…}

A streaming event that indicated shell call output was completed.

type BetaResponseStatus string

The status of the response generation. One of completed, failed, in_progress, cancelled, queued, or incomplete.

type BetaResponseSteerAcceptedEvent struct{…}

Emitted when steering input has been validated and queued. Acceptance means the server owns the input, not that it has been applied. The successor’s response.created event is the commit point. If accepted input cannot be committed, response.steer.failed returns it with the same steering ID.

When the response stops for client-owned tool output or approval, the input remains queued and response.steer.pending is emitted after response.completed. Fill the pending event’s required_input stubs with saved results and send one matching explicit response.create per parent. Do not resend accepted input while it is still queued.

type BetaResponseSteerErrorCode interface{…}

A machine-readable steering error code. Clients should handle unknown values because additional codes may be introduced. Known values include:

  • response_not_found: The target response is not available on this connection.
  • invalid_input: The event or input failed validation.
  • steering_not_supported: The model or response execution mode does not support steering.
  • too_many_pending_steers: Too much steering input is pending for the response.
  • response_already_completed: The response completed and is no longer accepting steering input.
  • response_not_active: The response is no longer accepting steering input.
  • successor_creation_failed: The successor response could not be created.
type BetaResponseSteerEvent struct{…}

Queues user input to steer a response on this WebSocket connection. Input can contain text, images, and files. Steering is supported only for single-agent responses on models and execution modes that support steering. Responses bound to a conversation or using automatic compaction do not support steering.

A response.steer.accepted event acknowledges that the server owns the queued input, not that it has been applied. The successor’s response.created event is the commit point. Input that cannot be committed is returned in response.steer.failed.

Steering may cause the active response to finish at a safe output boundary with response.incomplete and incomplete_details.reason set to steered, followed automatically by a successor response.created. Normal completion can also be followed by an automatic successor. Automatic successors inherit the previous response’s settings and continue from it with the queued input.

If the response stops for client-owned tool output or approval, accepted steering input remains queued and response.steer.pending is emitted after response.completed. Fill the required_input stubs from that event with saved tool results or approval decisions, and send one explicit response.create per parent with the same previous_response_id and WebSocket lane. Do not rerun tools or resend accepted steering input. The queued input is prepended in submission order to that request’s input, and the explicit request retains its own settings.

This event accepts only type, previous_response_id, and input. Do not send stream_id; the target response determines the WebSocket lane.

type BetaResponseSteerFailedEvent struct{…}

Emitted when steering input is rejected or cannot be committed to a successor response. Returns the original, uncommitted input so the client can carry it into response.create when appropriate. Invalid input must be corrected before retrying.

Failures after acceptance include the same steering ID. Failures before an ID is allocated omit steer.id. A lost connection or missing acknowledgement leaves the outcome unknown; it is not proof that the input was rejected.

type BetaResponseSteerInputUnion interface{…}

Input to queue for a continuation of the response. Uses the same string or input-item shape as response.create.input, with a non-empty array when supplying input items.

Steering accepts only messages with the user role. Each message may contain only type, role, and content, with content as a string or an array of input_text, input_image, and input_file parts. The optional type must be message. Other roles, tool outputs, and item types are not supported for steering.

type BetaResponseSteerInputContentUnion interface{…}

A piece of message content, such as text, an image, or a file.

type BetaResponseSteerPendingEvent struct{…}

Emitted when accepted steering input remains queued after the target response completes. The server still owns the input. Do not resend it. The successor’s response.created event is the commit point.

When reason is waiting_for_required_input, this event follows response.completed while the response waits for the tool results or approval decisions identified by required_input. Copy those stubs, fill their result fields using the ordinary response.create input schemas, and submit one continuation per parent with the same previous_response_id and WebSocket lane. Use saved results without rerunning tools. The queued steering input is prepended in submission order to the continuation’s input. That explicit request retains its own settings.

This notification is emitted at most once per steering submission. Multiple submissions for the same parent can report the same required inputs; they do not each require a separate continuation.

type BetaResponseSteerPendingReason interface{…}

An extensible enum describing why accepted steering input is still queued. Clients should handle unknown values because additional reasons may be introduced. Known values include:

  • waiting_for_required_input: The response is waiting for the tool results or approval decisions identified by required_input.
type BetaResponseSteerRequiredInputUnion interface{…}

An input stub identifying an outstanding client-owned tool result or approval decision. Copy the stub and fill the result fields using the corresponding response.create input schema. Use saved results without rerunning the tool. The server does not supply results, approval decisions, or safety acknowledgements in these stubs.

type BetaResponseStreamEventUnion interface{…}

Event emitted while a response is streamed.

type BetaResponseTextConfig struct{…}

Configuration options for a text response from the model. Can be plain text or structured JSON data. Learn more:

type BetaResponseTextDeltaEvent struct{…}

Emitted when there is an additional text delta.

type BetaResponseTextDoneEvent struct{…}

Emitted when text content is finalized.

type BetaResponseToolSearchCall struct{…}
type BetaResponseToolSearchOutputItem struct{…}
type BetaResponseToolSearchOutputItemParamResp struct{…}
type BetaResponseUsage struct{…}

Represents token usage details including input tokens, output tokens, a breakdown of output tokens, and the total tokens used.

type BetaResponseWebSearchCallCompletedEvent struct{…}

Emitted when a web search call is completed.

type BetaResponseWebSearchCallInProgressEvent struct{…}

Emitted when a web search call is initiated.

type BetaResponseWebSearchCallSearchingEvent struct{…}

Emitted when a web search call is executing.

type BetaResponsesClientEventUnion interface{…}

Client events accepted by the Responses WebSocket server.

type BetaResponsesServerEventUnion interface{…}

Server events emitted by the Responses WebSocket server.

type BetaSkillReference struct{…}
type BetaToolUnion interface{…}

A tool that can be used to generate a response.

type BetaToolChoiceAllowed struct{…}

Constrains the tools available to the model to a pre-defined set.

type BetaToolChoiceApplyPatch struct{…}

Forces the model to call the apply_patch tool when executing a tool call.

type BetaToolChoiceCustom struct{…}

Use this option to force the model to call a specific custom tool.

type BetaToolChoiceFunction struct{…}

Use this option to force the model to call a specific function.

type BetaToolChoiceMcp struct{…}

Use this option to force the model to call a specific tool on a remote MCP server.

type BetaToolChoiceOptions string

Controls which (if any) tool is called by the model.

none means the model will not call any tool and instead generates a message.

auto means the model can pick between generating a message or calling one or more tools.

required means the model must call one or more tools.

type BetaToolChoiceShell struct{…}

Forces the model to call the shell tool when a tool call is required.

type BetaToolChoiceTypes struct{…}

Indicates that the model should use a built-in tool to generate a response. Learn more about built-in tools.

type BetaToolSearchTool struct{…}

Hosted or BYOT tool search configuration for deferred tools.

type BetaWebSearchPreviewTool struct{…}

This tool searches the web for relevant results to use in a response. Learn more about the web search tool.

type BetaWebSearchTool struct{…}

Search the Internet for sources related to the prompt. Learn more about the web search tool.

ResponsesInput Items

List input items
client.Beta.Responses.InputItems.List(ctx, responseID, params) (*CursorPage[BetaResponseItemUnion], error)
GET/responses/{response_id}/input_items
ModelsExpand Collapse
type BetaResponseItemList struct{…}

A list of Response items.

ResponsesInput Tokens

Get input token counts
client.Beta.Responses.InputTokens.Count(ctx, params) (*BetaResponseInputTokenCountResponse, error)
POST/responses/input_tokens