Emitted when a partial code snippet is streamed by the code interpreter.
Emitted when the code snippet is finalized by the code interpreter.
Emitted when the code interpreter call is completed.
Emitted when a code interpreter call is in progress.
Emitted when the code interpreter is actively interpreting the code snippet.
Emitted when new summary content is sampled for a compaction trigger. Contains no summary content.
Emitted when a file search call is completed (results found).
Emitted when there is a partial function-call arguments delta.
A streaming event that indicated a shell command was added to a tool call.
A streaming event that indicated a shell command was incrementally updated.
A streaming event that indicated a shell command was completed.
A streaming event that indicated shell call output was incrementally added.
A streaming event that indicated shell call output was completed.
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.
Emitted when a delta is added to a reasoning summary text.
Emitted when an image generation tool call has completed and the final image is available.
Emitted when an image generation tool call is actively generating an image (intermediate state).
Emitted when an image generation tool call is in progress.
Emitted when a partial image is available during image generation streaming.
Emitted when there is a delta (partial update) to the arguments of an MCP tool call.
Emitted when the arguments for an MCP tool call are finalized.
Emitted when the list of available MCP tools has been successfully retrieved.
Emitted when the attempt to list available MCP tools has failed.
Emitted when the system is in the process of retrieving the list of available MCP tools.
Emitted when an annotation is added to output text content.
Event representing a delta (partial update) to the input of a custom tool call.
Event indicating that input for a custom tool call is complete.
Emitted when an error occurs while processing a Responses WebSocket request.
Details about the error.
An optional classification; clients must accept additional values.
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.
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.
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.Input stubs identifying outstanding client-owned tool results or
approval decisions. Each stub contains identifying fields only; the
client supplies the result before including it in response.create.
Supply output using the custom tool call output input schema. The
original custom tool call supplies the tool’s name.
Supply output using the computer tool call output input schema,
including any required acknowledged_safety_checks.
Supply output using the shell tool call output input schema. Each
output entry includes stdout, stderr, and outcome.
Supply status and optional output using the apply patch tool call
output input schema.
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.
Information about why the input could not be committed.
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.The steering submission that could not be committed.
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.
Emitted when all injected input items were validated and committed to the active response.
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.
The raw input items that were not committed.
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.
Text, image, or audio input to the model, used to generate a response. Can also contain previous assistant responses.
An image input to the model. Learn about image inputs.
A file input to the model.
The detail level of the file to be sent to the model. Use auto to let the system select the detail level; for GPT-5.6 and later models, auto uses high-quality rendering, which may increase input token usage. Use low for lower-cost rendering, or high to render the file at higher quality. Defaults to auto.
The role of the message input. One of user, assistant, system, or
developer.
Labels an assistant message as intermediate commentary (commentary) or the final answer (final_answer).
For models like gpt-5.3-codex and beyond, when sending follow-up requests, preserve and resend
phase on all assistant messages — dropping it can degrade performance. Not used for user messages.
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.
The role of the message input. One of user, system, or developer.
An output message from the model.
The content of the output message.
A text output from the model.
The annotations of the text output.
The status of the message input. One of in_progress, completed, or
incomplete. Populated when input items are returned via API.
Labels an assistant message as intermediate commentary (commentary) or the final answer (final_answer).
For models like gpt-5.3-codex and beyond, when sending follow-up requests, preserve and resend
phase on all assistant messages — dropping it can degrade performance. Not used for user messages.
The results of a file search tool call. See the file search guide for more information.
The status of the file search tool call. One of in_progress,
searching, incomplete or failed,
The results of the file search tool call.
Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
A tool call to a computer use tool. See the computer use guide for more information.
The status of the item. One of in_progress, completed, or
incomplete. Populated when items are returned via API.
The output of a computer tool call.
The type of the computer tool call output. Always computer_call_output.
The safety checks reported by the API that have been acknowledged by the developer.
The results of a web search tool call. See the web search guide for more information.
A tool call to run a function. See the function calling guide for more information.
An update to the conversation’s response configuration. The configuration remains in effect for subsequent responses until it is replaced by another configuration update.
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.
A compaction item generated by the v1/responses/compact API.
A tool call representing a request to create, delete, or update files using diff patches.