惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
L
LangChain Blog
博客园_首页
J
Java Code Geeks
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
WordPress大学
WordPress大学
V
Visual Studio Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
C
Check Point Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
D
Docker
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
I
InfoQ

OpenAI Developers

API deployment checklist | OpenAI API Sora 2 Prompting Guide Codex Prompting Guide Docs MCP | OpenAI Developers Gpt-image-1.5 Prompting Guide GPT-5.2 Prompting Guide Transcribing User Audio with a Separate Realtime Request Modernizing your Codebase with Codex GitHub - openai/openai-sora-sample-app: Sample app to get started using the Video API with Sora GitHub - openai/openai-apps-sdk-examples: Example apps for the Apps SDK GitHub - openai/openai-chatkit-advanced-samples: Starter app to build with OpenAI ChatKit SDK GitHub - openai/openai-chatkit-starter-app: Starter app to build with OpenAI ChatKit + Agent Builder Rate limits | OpenAI API Web search | OpenAI API Getting started with datasets | OpenAI API Prompt optimizer | OpenAI API Verifying gpt-oss implementations How to run gpt-oss locally with LM Studio Fine-tuning with gpt-oss and Hugging Face Transformers How to run gpt-oss locally with Ollama Function calling | OpenAI API Models | OpenAI API Reasoning best practices | OpenAI API Reasoning models | OpenAI API Background mode | OpenAI API Batch API | OpenAI API Conversation state | OpenAI API File search | OpenAI API Flex processing | OpenAI API MCP and Connectors | OpenAI API
Responses
2025-07-21 · via OpenAI Developers
ModelsExpand Collapse

CompactedResponse object { id, created_at, object, 2 more }

id: string

The unique identifier for the compacted response.

created_at: number

Unix timestamp (in seconds) when the compacted conversation was created.

object: "response.compaction"

The object type. Always response.compaction.

output: array of Message { id, content, role, 3 more } or object { id, call_id, code, 2 more } or object { id, call_id, result, 2 more } or 25 more

The compacted list of output items.

One of the following:

Message object { id, content, role, 3 more }

A message to or from the model.

id: string

The unique ID of the message.

The content of the message

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

TextContent object { text, type }

SummaryTextContent object { text, type }

A summary text from the model.

text: string

A summary of the reasoning output from the model so far.

type: "summary_text"

The type of the object. Always summary_text.

ReasoningText object { text, type }

Reasoning text from the model.

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ComputerScreenshotContent object { detail, file_id, image_url, 2 more }

A screenshot of a computer.

The detail level of the screenshot image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

file_id: string or null

The identifier of an uploaded file that contains the screenshot.

image_url: string or null

The URL of the screenshot image.

type: "computer_screenshot"

Specifies the event type. For a computer screenshot, this property is always set to computer_screenshot.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

role: "unknown" or "user" or "assistant" or 5 more

The role of the message. One of unknown, user, assistant, system, critic, discriminator, developer, or tool.

status: "in_progress" or "completed" or "incomplete"

The status of item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "message"

The type of the message. Always set to message.

phase: optional "commentary" or "final_answer" or null

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.

Program object { id, call_id, code, 2 more }

id: string

The unique ID of the program item.

call_id: string

The stable call ID of the program item.

code: string

The JavaScript source executed by programmatic tool calling.

fingerprint: string

Opaque program replay fingerprint that must be round-tripped.

type: "program"

The type of the item. Always program.

ProgramOutput object { id, call_id, result, 2 more }

id: string

The unique ID of the program output item.

call_id: string

The call ID of the program item.

result: string

The result produced by the program item.

status: "completed" or "incomplete"

The terminal status of the program output item.

type: "program_output"

The type of the item. Always program_output.

FunctionCall object { arguments, call_id, name, 6 more }

arguments: string

A JSON string of the arguments to pass to the function.

call_id: string

The unique ID of the function tool call generated by the model.

name: string

The name of the function to run.

type: "function_call"

The type of the function tool call. Always function_call.

id: optional string

The unique ID of the function tool call.

async: optional boolean

Whether the function tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the function to run.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

ToolSearchCall object { id, arguments, call_id, 4 more }

id: string

The unique ID of the tool search call item.

arguments: unknown

Arguments used for the tool search call.

call_id: string or null

The unique ID of the tool search call generated by the model.

execution: "server" or "client"

Whether tool search was executed by the server or by the client.

status: "in_progress" or "completed" or "incomplete"

The status of the tool search call item that was recorded.

type: "tool_search_call"

The type of the item. Always tool_search_call.

created_by: optional string

The identifier of the actor that created the item.

ToolSearchOutput object { id, call_id, execution, 4 more }

id: string

The unique ID of the tool search output item.

call_id: string or null

The unique ID of the tool search call generated by the model.

execution: "server" or "client"

Whether tool search was executed by the server or by the client.

status: "in_progress" or "completed" or "incomplete"

The status of the tool search output item that was recorded.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "tool_search_output"

The type of the item. Always tool_search_output.

created_by: optional string

The identifier of the actor that created the item.

AdditionalTools object { id, role, tools, type }

id: string

The unique ID of the additional tools item.

role: "unknown" or "user" or "assistant" or 5 more

The role that provided the additional tools.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "additional_tools"

The type of the item. Always additional_tools.

FunctionCallOutput object { output, type, id, 5 more }

The output of a function tool call.

The output from the function call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the function call.

Text, image, or file output of the function call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "function_call_output"

The type of the function tool call output. Always function_call_output.

id: optional string

The unique ID of the function tool call output. Populated when this item is returned via API.

call_id: optional string

The unique ID of the function tool call generated by the model.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

name: optional string

The name of the tool that produced the output.

namespace: optional string

The namespace of the tool that produced the output.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

FileSearchCall object { id, queries, status, 2 more }

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

id: string

The unique ID of the file search tool call.

queries: array of string

The queries used to search for files.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the file search tool call. One of in_progress, searching, incomplete or failed,

type: "file_search_call"

The type of the file search tool call. Always file_search_call.

results: optional array of object { attributes, file_id, filename, 2 more } or null

The results of the file search tool call.

attributes: optional map[string or number or boolean] or null

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.

file_id: optional string

The unique ID of the file.

filename: optional string

score: optional number

The relevance score of the file - a value between 0 and 1.

text: optional string

The text that was retrieved from the file.

WebSearchCall object { id, action, status, type }

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

id: string

The unique ID of the web search tool call.

action: object { type, queries, query, sources } or object { type, url } or object { pattern, type, url }

An object describing the specific action taken in this web search call. Includes details on how the model used the web (search, open_page, find_in_page).

One of the following:

Search object { type, queries, query, sources }

Action type “search” - Performs a web search query.

queries: optional array of string

Deprecatedquery: optional string

sources: optional array of object { type, url }

The sources used in the search.

type: "url"

The type of source. Always url.

OpenPage object { type, url }

Action type “open_page” - Opens a specific URL from search results.

url: optional string or null

The URL opened by the model.

FindInPage object { pattern, type, url }

Action type “find_in_page”: Searches for a pattern within a loaded page.

pattern: string

The pattern or text to search for within the page.

url: string

The URL of the page searched for the pattern.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the web search tool call.

type: "web_search_call"

The type of the web search tool call. Always web_search_call.

ImageGenerationCall object { id, result, status, type }

An image generation request made by the model.

id: string

The unique ID of the image generation call.

result: string or null

The generated image encoded in base64.

status: "in_progress" or "completed" or "generating" or "failed"

The status of the image generation call.

type: "image_generation_call"

The type of the image generation call. Always image_generation_call.

ComputerCall object { id, call_id, pending_safety_checks, 4 more }

id: string

The unique ID of the computer call.

call_id: string

An identifier used when responding to the tool call with output.

pending_safety_checks: array of object { id, code, message }

The pending safety checks for the computer call.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "computer_call"

The type of the computer call. Always computer_call.

actions: optional ComputerActionList { Click, DoubleClick, Drag, 6 more }

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

ComputerCallOutput object { id, call_id, output, 4 more }

id: string

The unique ID of the computer call tool output.

call_id: string

The ID of the computer tool call that produced the output.

A computer screenshot image used with the computer use tool.

status: "completed" or "incomplete" or "failed" or "in_progress"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "computer_call_output"

The type of the computer tool call output. Always computer_call_output.

acknowledged_safety_checks: optional array of object { id, code, message }

The safety checks reported by the API that have been acknowledged by the developer.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

created_by: optional string

The identifier of the actor that created the item.

Reasoning object { id, summary, type, 3 more }

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.

id: string

The unique identifier of the reasoning content.

Reasoning summary content.

text: string

A summary of the reasoning output from the model so far.

type: "summary_text"

The type of the object. Always summary_text.

type: "reasoning"

The type of the object. Always reasoning.

content: optional array of object { text, type }

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

encrypted_content: optional string or null

The encrypted content of the reasoning item. This is populated by default for reasoning items returned by POST /v1/responses and WebSocket response.create requests.

When streaming, use the completed reasoning item and its encrypted_content from the response.output_item.done event in subsequent requests. The encrypted_content in response.output_item.added may be incomplete. This is especially important when store is false or when using Zero Data Retention.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

Compaction object { id, encrypted_content, type, created_by }

id: string

The unique ID of the compaction item.

encrypted_content: string

The encrypted content that was produced by compaction.

type: "compaction"

The type of the item. Always compaction.

created_by: optional string

The identifier of the actor that created the item.

CodeInterpreterCall object { id, code, container_id, 3 more }

id: string

The unique ID of the code interpreter tool call.

code: string or null

The code to run, or null if not available.

container_id: string

The ID of the container used to run the code.

outputs: array of object { logs, type } or object { type, url } or null

The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.

One of the following:

Logs object { logs, type }

The logs output from the code interpreter.

logs: string

The logs output from the code interpreter.

type: "logs"

The type of the output. Always logs.

Image object { type, url }

The image output from the code interpreter.

type: "image"

The type of the output. Always image.

url: string

The URL of the image output from the code interpreter.

status: "in_progress" or "completed" or "incomplete" or 2 more

The status of the code interpreter tool call. Valid values are in_progress, completed, incomplete, interpreting, and failed.

type: "code_interpreter_call"

The type of the code interpreter tool call. Always code_interpreter_call.

LocalShellCall object { id, action, call_id, 2 more }

A tool call to run a command on the local shell.

id: string

The unique ID of the local shell call.

action: object { command, env, type, 3 more }

Execute a shell command on the server.

env: map[string]

Environment variables to set for the command.

type: "exec"

The type of the local shell action. Always exec.

timeout_ms: optional number or null

Optional timeout in milliseconds for the command.

user: optional string or null

Optional user to run the command as.

working_directory: optional string or null

Optional working directory to run the command in.

call_id: string

The unique ID of the local shell tool call generated by the model.

status: "in_progress" or "completed" or "incomplete"

The status of the local shell call.

type: "local_shell_call"

The type of the local shell call. Always local_shell_call.

LocalShellCallOutput object { id, output, type, status }

The output of a local shell tool call.

id: string

The unique ID of the local shell tool call generated by the model.

output: string

A JSON string of the output of the local shell tool call.

type: "local_shell_call_output"

The type of the local shell tool call output. Always local_shell_call_output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete.

ShellCall object { id, action, call_id, 5 more }

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

id: string

The unique ID of the shell tool call. Populated when this item is returned via API.

action: object { commands, max_output_length, timeout_ms }

The shell commands and limits that describe how to run the tool call.

commands: array of string

max_output_length: number or null

Optional maximum number of characters to return from each command.

timeout_ms: number or null

Optional timeout in milliseconds for the commands.

call_id: string

The unique ID of the shell tool call generated by the model.

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

One of the following:

ResponseLocalEnvironment object { type }

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

type: "local"

The environment type. Always local.

ResponseContainerReference object { container_id, type }

Represents a container created with /v1/containers.

type: "container_reference"

The environment type. Always container_reference.

status: "in_progress" or "completed" or "incomplete"

The status of the shell call. One of in_progress, completed, or incomplete.

type: "shell_call"

The type of the item. Always shell_call.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call.

ShellCallOutput object { id, call_id, max_output_length, 5 more }

The output of a shell tool call that was emitted.

id: string

The unique ID of the shell call output. Populated when this item is returned via API.

call_id: string

The unique ID of the shell tool call generated by the model.

max_output_length: number or null

The maximum length of the shell command output. This is generated by the model and should be passed back with the raw output.

output: array of object { outcome, stderr, stdout, created_by }

An array of shell call output contents

outcome: object { type } or object { exit_code, type }

Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

Exit code from the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

The standard error output that was captured.

stdout: string

The standard output that was captured.

created_by: optional string

The identifier of the actor that created the item.

status: "in_progress" or "completed" or "incomplete"

The status of the shell call output. One of in_progress, completed, or incomplete.

type: "shell_call_output"

The type of the shell call output. Always shell_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The identifier of the actor that created the item.

ApplyPatchCall object { id, call_id, operation, 4 more }

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

id: string

The unique ID of the apply patch tool call. Populated when this item is returned via API.

call_id: string

The unique ID of the apply patch tool call generated by the model.

operation: object { diff, path, type } or object { path, type } or object { diff, path, type }

One of the create_file, delete_file, or update_file operations applied via apply_patch.

One of the following:

CreateFile object { diff, path, type }

Instruction describing how to create a file via the apply_patch tool.

path: string

Path of the file to create.

type: "create_file"

Create a new file with the provided diff.

DeleteFile object { path, type }

Instruction describing how to delete a file via the apply_patch tool.

path: string

Path of the file to delete.

type: "delete_file"

Delete the specified file.

UpdateFile object { diff, path, type }

Instruction describing how to update a file via the apply_patch tool.

path: string

Path of the file to update.

type: "update_file"

Update an existing file with the provided diff.

status: "in_progress" or "completed"

The status of the apply patch tool call. One of in_progress or completed.

type: "apply_patch_call"

The type of the item. Always apply_patch_call.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call.

ApplyPatchCallOutput object { id, call_id, status, 4 more }

The output emitted by an apply patch tool call.

id: string

The unique ID of the apply patch tool call output. Populated when this item is returned via API.

call_id: string

The unique ID of the apply patch tool call generated by the model.

status: "completed" or "failed"

The status of the apply patch tool call output. One of completed or failed.

type: "apply_patch_call_output"

The type of the item. Always apply_patch_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call output.

output: optional string or null

Optional textual output returned by the apply patch tool.

McpListTools object { id, server_label, tools, 2 more }

A list of tools available on an MCP server.

id: string

The unique ID of the list.

server_label: string

The label of the MCP server.

type: "mcp_list_tools"

The type of the item. Always mcp_list_tools.

error: optional string or null

Error message if the server could not list tools.

McpApprovalRequest object { id, arguments, name, 2 more }

A request for human approval of a tool invocation.

id: string

The unique ID of the approval request.

arguments: string

A JSON string of arguments for the tool.

name: string

The name of the tool to run.

server_label: string

The label of the MCP server making the request.

type: "mcp_approval_request"

The type of the item. Always mcp_approval_request.

McpApprovalResponse object { id, approval_request_id, approve, 2 more }

A response to an MCP approval request.

id: string

The unique ID of the approval response

approval_request_id: string

The ID of the approval request being answered.

approve: boolean

Whether the request was approved.

type: "mcp_approval_response"

The type of the item. Always mcp_approval_response.

reason: optional string or null

Optional reason for the decision.

McpCall object { id, arguments, name, 6 more }

An invocation of a tool on an MCP server.

id: string

The unique ID of the tool call.

arguments: string

A JSON string of the arguments passed to the tool.

name: string

The name of the tool that was run.

server_label: string

The label of the MCP server running the tool.

type: "mcp_call"

The type of the item. Always mcp_call.

approval_request_id: optional string or null

Unique identifier for the MCP tool call approval request. Include this value in a subsequent mcp_approval_response input to approve or reject the corresponding tool call.

The error from the tool call, if any.

output: optional string or null

The output from the tool call.

status: optional "in_progress" or "completed" or "incomplete" or 2 more

The status of the tool call. One of in_progress, completed, incomplete, calling, or failed.

CustomToolCall object { call_id, input, name, 5 more }

A call to a custom tool created by the model.

call_id: string

An identifier used to map this custom tool call to a tool call output.

input: string

The input for the custom tool call generated by the model.

name: string

The name of the custom tool being called.

type: "custom_tool_call"

The type of the custom tool call. Always custom_tool_call.

id: optional string

The unique ID of the custom tool call in the OpenAI platform.

async: optional boolean

Whether the custom tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the custom tool being called.

CustomToolCallOutput object { call_id, output, type, 2 more }

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

call_id: string

The call ID, used to map this custom tool call output to a custom tool call.

The output from the custom tool call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the custom tool call.

Text, image, or file output of the custom tool call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "custom_tool_call_output"

The type of the custom tool call output. Always custom_tool_call_output.

id: optional string

The unique ID of the custom tool call output in the OpenAI platform.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

usage: ResponseUsage { input_tokens, input_tokens_details, output_tokens, 2 more }

Token accounting for the compaction pass, including cached, reasoning, and total tokens.

ComputerAction = object { button, type, x, 2 more } or object { keys, type, x, y } or object { path, type, keys } or 6 more

One of the following:

Click object { button, type, x, 2 more }

button: "left" or "right" or "wheel" or 2 more

Indicates which mouse button was pressed during the click. One of left, right, wheel, back, or forward.

type: "click"

Specifies the event type. For a click action, this property is always click.

x: number

The x-coordinate where the click occurred.

y: number

The y-coordinate where the click occurred.

keys: optional array of string or null

The keys being held while clicking.

DoubleClick object { keys, type, x, y }

keys: array of string or null

The keys being held while double-clicking.

type: "double_click"

Specifies the event type. For a double click action, this property is always set to double_click.

x: number

The x-coordinate where the double click occurred.

y: number

The y-coordinate where the double click occurred.

Drag object { path, type, keys }

path: array of object { x, y }

An array of coordinates representing the path of the drag action. Coordinates will appear as an array of objects, eg

[
  { x: 100, y: 200 },
  { x: 200, y: 300 }
]

type: "drag"

Specifies the event type. For a drag action, this property is always set to drag.

keys: optional array of string or null

The keys being held while dragging the mouse.

Keypress object { keys, type }

A collection of keypresses the model would like to perform.

keys: array of string

The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key.

type: "keypress"

Specifies the event type. For a keypress action, this property is always set to keypress.

Move object { type, x, y, keys }

type: "move"

Specifies the event type. For a move action, this property is always set to move.

x: number

The x-coordinate to move to.

y: number

The y-coordinate to move to.

keys: optional array of string or null

The keys being held while moving the mouse.

Screenshot object { type }

type: "screenshot"

Specifies the event type. For a screenshot action, this property is always set to screenshot.

Scroll object { scroll_x, scroll_y, type, 3 more }

type: "scroll"

Specifies the event type. For a scroll action, this property is always set to scroll.

x: number

The x-coordinate where the scroll occurred.

y: number

The y-coordinate where the scroll occurred.

keys: optional array of string or null

The keys being held while scrolling.

Type object { text, type }

An action to type in text.

type: "type"

Specifies the event type. For a type action, this property is always set to type.

type: "wait"

Specifies the event type. For a wait action, this property is always set to wait.

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

One of the following:

Click object { button, type, x, 2 more }

button: "left" or "right" or "wheel" or 2 more

Indicates which mouse button was pressed during the click. One of left, right, wheel, back, or forward.

type: "click"

Specifies the event type. For a click action, this property is always click.

x: number

The x-coordinate where the click occurred.

y: number

The y-coordinate where the click occurred.

keys: optional array of string or null

The keys being held while clicking.

DoubleClick object { keys, type, x, y }

keys: array of string or null

The keys being held while double-clicking.

type: "double_click"

Specifies the event type. For a double click action, this property is always set to double_click.

x: number

The x-coordinate where the double click occurred.

y: number

The y-coordinate where the double click occurred.

Drag object { path, type, keys }

path: array of object { x, y }

An array of coordinates representing the path of the drag action. Coordinates will appear as an array of objects, eg

[
  { x: 100, y: 200 },
  { x: 200, y: 300 }
]

type: "drag"

Specifies the event type. For a drag action, this property is always set to drag.

keys: optional array of string or null

The keys being held while dragging the mouse.

Keypress object { keys, type }

A collection of keypresses the model would like to perform.

keys: array of string

The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key.

type: "keypress"

Specifies the event type. For a keypress action, this property is always set to keypress.

Move object { type, x, y, keys }

type: "move"

Specifies the event type. For a move action, this property is always set to move.

x: number

The x-coordinate to move to.

y: number

The y-coordinate to move to.

keys: optional array of string or null

The keys being held while moving the mouse.

Screenshot object { type }

type: "screenshot"

Specifies the event type. For a screenshot action, this property is always set to screenshot.

Scroll object { scroll_x, scroll_y, type, 3 more }

type: "scroll"

Specifies the event type. For a scroll action, this property is always set to scroll.

x: number

The x-coordinate where the scroll occurred.

y: number

The y-coordinate where the scroll occurred.

keys: optional array of string or null

The keys being held while scrolling.

Type object { text, type }

An action to type in text.

type: "type"

Specifies the event type. For a type action, this property is always set to type.

type: "wait"

Specifies the event type. For a wait action, this property is always set to wait.

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyDomainSecret object { domain, name, value }

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

EasyInputMessage object { content, role, phase, type }

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.

One of the following:

TextInput = string

A text input to the model.

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

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

role: "user" or "assistant" or "system" or "developer"

The role of the message input. One of user, assistant, system, or developer.

phase: optional "commentary" or "final_answer" or null

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.

type: optional "message"

The type of the message input. Always message.

ImageDetail = "low" or "high" or "auto" or "original"

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

InlineSkillSource object { data, media_type, type }

data: string

Base64-encoded skill zip bundle.

minLength1

maxLength70254592

type: "base64"

The type of the inline skill source. Must be base64.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

LocalSkill object { description, name, path }

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

Response object { id, created_at, error, 33 more }

id: string

Unique identifier for this Response.

created_at: number

Unix timestamp (in seconds) of when this Response was created.

error: ResponseError { code, message, misalignment } or null

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

incomplete_details: object { reason } or null

Details about why the response is incomplete.

reason: optional "max_output_tokens" or "max_messages" or "content_filter" or "steered"

The reason why the response is incomplete. steered means the response stopped at a safe output boundary after a WebSocket response.steer event. The server can then create a successor response automatically with the queued input.

instructions: string or array of EasyInputMessage { content, role, phase, type } or object { content, role, status, type } or ResponseOutputMessage { id, content, role, 3 more } or 30 more or null

A system (or developer) message inserted into the model’s context.

When using along with previous_response_id, the instructions from a previous response will not be carried over to the next response. This makes it simple to swap out system (or developer) messages in new responses.

One of the following:

string

A text input to the model, equivalent to a text input with the developer role.

InputItemList = array of EasyInputMessage { content, role, phase, type } or object { content, role, status, type } or ResponseOutputMessage { id, content, role, 3 more } or 30 more

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

One of the following:

EasyInputMessage object { content, role, phase, type }

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.

One of the following:

TextInput = string

A text input to the model.

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

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

role: "user" or "assistant" or "system" or "developer"

The role of the message input. One of user, assistant, system, or developer.

phase: optional "commentary" or "final_answer" or null

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.

type: optional "message"

The type of the message input. Always message.

Message object { content, role, status, type }

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.

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

role: "user" or "system" or "developer"

The role of the message input. One of user, system, or developer.

status: optional "in_progress" or "completed" or "incomplete"

The status of item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: optional "message"

The type of the message input. Always set to message.

ResponseOutputMessage object { id, content, role, 3 more }

An output message from the model.

id: string

The unique ID of the output message.

The content of the output message.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

role: "assistant"

The role of the output message. Always assistant.

status: "in_progress" or "completed" or "incomplete"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "message"

The type of the output message. Always message.

phase: optional "commentary" or "final_answer" or null

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.

FileSearchCall object { id, queries, status, 2 more }

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

id: string

The unique ID of the file search tool call.

queries: array of string

The queries used to search for files.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the file search tool call. One of in_progress, searching, incomplete or failed,

type: "file_search_call"

The type of the file search tool call. Always file_search_call.

results: optional array of object { attributes, file_id, filename, 2 more } or null

The results of the file search tool call.

attributes: optional map[string or number or boolean] or null

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.

file_id: optional string

The unique ID of the file.

filename: optional string

score: optional number

The relevance score of the file - a value between 0 and 1.

text: optional string

The text that was retrieved from the file.

ComputerCall object { id, call_id, pending_safety_checks, 4 more }

id: string

The unique ID of the computer call.

call_id: string

An identifier used when responding to the tool call with output.

pending_safety_checks: array of object { id, code, message }

The pending safety checks for the computer call.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "computer_call"

The type of the computer call. Always computer_call.

actions: optional ComputerActionList { Click, DoubleClick, Drag, 6 more }

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

ComputerCallOutput object { call_id, output, type, 3 more }

The output of a computer tool call.

call_id: string

The ID of the computer tool call that produced the output.

A computer screenshot image used with the computer use tool.

type: "computer_call_output"

The type of the computer tool call output. Always computer_call_output.

id: optional string or null

The ID of the computer tool call output.

acknowledged_safety_checks: optional array of object { id, code, message } or null

The safety checks reported by the API that have been acknowledged by the developer.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

WebSearchCall object { id, action, status, type }

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

id: string

The unique ID of the web search tool call.

action: object { type, queries, query, sources } or object { type, url } or object { pattern, type, url }

An object describing the specific action taken in this web search call. Includes details on how the model used the web (search, open_page, find_in_page).

One of the following:

Search object { type, queries, query, sources }

Action type “search” - Performs a web search query.

queries: optional array of string

Deprecatedquery: optional string

sources: optional array of object { type, url }

The sources used in the search.

type: "url"

The type of source. Always url.

OpenPage object { type, url }

Action type “open_page” - Opens a specific URL from search results.

url: optional string or null

The URL opened by the model.

FindInPage object { pattern, type, url }

Action type “find_in_page”: Searches for a pattern within a loaded page.

pattern: string

The pattern or text to search for within the page.

url: string

The URL of the page searched for the pattern.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the web search tool call.

type: "web_search_call"

The type of the web search tool call. Always web_search_call.

FunctionCall object { arguments, call_id, name, 6 more }

arguments: string

A JSON string of the arguments to pass to the function.

call_id: string

The unique ID of the function tool call generated by the model.

name: string

The name of the function to run.

type: "function_call"

The type of the function tool call. Always function_call.

id: optional string

The unique ID of the function tool call.

async: optional boolean

Whether the function tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the function to run.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

FunctionCallOutput object { output, type, id, 5 more }

The output of a function tool call.

Text, image, or file output of the function tool call.

One of the following:

string

A JSON string of the output of the function tool call.

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

One of the following:

ResponseInputTextContent object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImageContent object { type, detail, file_id, 2 more }

type: "input_image"

The type of the input item. Always input_image.

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

maxLength20971520

formaturi

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFileContent object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string or null

The base64-encoded data of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string or null

The URL of the file to be sent to the model.

filename: optional string or null

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "function_call_output"

The type of the function tool call output. Always function_call_output.

id: optional string or null

The unique ID of the function tool call output. Populated when this item is returned via API.

call_id: optional string or null

The unique ID of the function tool call generated by the model.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

name: optional string or null

The name of the tool that produced the output.

namespace: optional string or null

The namespace of the tool that produced the output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

ToolSearchCall object { arguments, type, id, 3 more }

arguments: unknown

The arguments supplied to the tool search call.

type: "tool_search_call"

The item type. Always tool_search_call.

id: optional string or null

The unique ID of this tool search call.

call_id: optional string or null

The unique ID of the tool search call generated by the model.

execution: optional "server" or "client"

Whether tool search was executed by the server or by the client.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the tool search call.

ToolSearchOutput object { tools, type, id, 3 more }

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "tool_search_output"

The item type. Always tool_search_output.

id: optional string or null

The unique ID of this tool search output.

call_id: optional string or null

The unique ID of the tool search call generated by the model.

execution: optional "server" or "client"

Whether tool search was executed by the server or by the client.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the tool search output.

AdditionalTools object { role, tools, type, id }

role: "developer"

The role that provided the additional tools. Only developer is supported.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "additional_tools"

The item type. Always additional_tools.

id: optional string or null

The unique ID of this additional tools item.

ConfigurationUpdate object { type, id, reasoning }

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: "configuration_update"

The item type. Always configuration_update.

id: optional string or null

The unique ID of the configuration update item.

reasoning: optional object { effort }

Updates to reasoning configuration. Only effort is supported.

The reasoning effort to use for subsequent responses until another configuration update replaces it.

Reasoning object { id, summary, type, 3 more }

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.

id: string

The unique identifier of the reasoning content.

Reasoning summary content.

text: string

A summary of the reasoning output from the model so far.

type: "summary_text"

The type of the object. Always summary_text.

type: "reasoning"

The type of the object. Always reasoning.

content: optional array of object { text, type }

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

encrypted_content: optional string or null

The encrypted content of the reasoning item. This is populated by default for reasoning items returned by POST /v1/responses and WebSocket response.create requests.

When streaming, use the completed reasoning item and its encrypted_content from the response.output_item.done event in subsequent requests. The encrypted_content in response.output_item.added may be incomplete. This is especially important when store is false or when using Zero Data Retention.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

Compaction object { encrypted_content, type, id }

encrypted_content: string

The encrypted content of the compaction summary.

type: "compaction"

The type of the item. Always compaction.

id: optional string or null

The ID of the compaction item.

ImageGenerationCall object { id, result, status, type }

An image generation request made by the model.

id: string

The unique ID of the image generation call.

result: string or null

The generated image encoded in base64.

status: "in_progress" or "completed" or "generating" or "failed"

The status of the image generation call.

type: "image_generation_call"

The type of the image generation call. Always image_generation_call.

CodeInterpreterCall object { id, code, container_id, 3 more }

id: string

The unique ID of the code interpreter tool call.

code: string or null

The code to run, or null if not available.

container_id: string

The ID of the container used to run the code.

outputs: array of object { logs, type } or object { type, url } or null

The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.

One of the following:

Logs object { logs, type }

The logs output from the code interpreter.

logs: string

The logs output from the code interpreter.

type: "logs"

The type of the output. Always logs.

Image object { type, url }

The image output from the code interpreter.

type: "image"

The type of the output. Always image.

url: string

The URL of the image output from the code interpreter.

status: "in_progress" or "completed" or "incomplete" or 2 more

The status of the code interpreter tool call. Valid values are in_progress, completed, incomplete, interpreting, and failed.

type: "code_interpreter_call"

The type of the code interpreter tool call. Always code_interpreter_call.

LocalShellCall object { id, action, call_id, 2 more }

A tool call to run a command on the local shell.

id: string

The unique ID of the local shell call.

action: object { command, env, type, 3 more }

Execute a shell command on the server.

env: map[string]

Environment variables to set for the command.

type: "exec"

The type of the local shell action. Always exec.

timeout_ms: optional number or null

Optional timeout in milliseconds for the command.

user: optional string or null

Optional user to run the command as.

working_directory: optional string or null

Optional working directory to run the command in.

call_id: string

The unique ID of the local shell tool call generated by the model.

status: "in_progress" or "completed" or "incomplete"

The status of the local shell call.

type: "local_shell_call"

The type of the local shell call. Always local_shell_call.

LocalShellCallOutput object { id, output, type, status }

The output of a local shell tool call.

id: string

The unique ID of the local shell tool call generated by the model.

output: string

A JSON string of the output of the local shell tool call.

type: "local_shell_call_output"

The type of the local shell tool call output. Always local_shell_call_output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete.

ShellCall object { action, call_id, type, 4 more }

A tool representing a request to execute one or more shell commands.

action: object { commands, max_output_length, timeout_ms }

The shell commands and limits that describe how to run the tool call.

commands: array of string

Ordered shell commands for the execution environment to run.

max_output_length: optional number or null

Maximum number of UTF-8 characters to capture from combined stdout and stderr output.

timeout_ms: optional number or null

Maximum wall-clock time in milliseconds to allow the shell commands to run.

call_id: string

The unique ID of the shell tool call generated by the model.

type: "shell_call"

The type of the item. Always shell_call.

id: optional string or null

The unique ID of the shell tool call. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

The environment to execute the shell commands in.

One of the following:

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the shell call. One of in_progress, completed, or incomplete.

ShellCallOutput object { call_id, output, type, 4 more }

The streamed output items emitted by a shell tool call.

call_id: string

The unique ID of the shell tool call generated by the model.

Captured chunks of stdout and stderr output, along with their associated outcomes.

outcome: object { type } or object { exit_code, type }

The exit or timeout outcome associated with this shell call.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

The exit code returned by the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

Captured stderr output for the shell call.

stdout: string

Captured stdout output for the shell call.

type: "shell_call_output"

The type of the item. Always shell_call_output.

id: optional string or null

The unique ID of the shell tool call output. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

max_output_length: optional number or null

The maximum number of UTF-8 characters captured for this shell call’s combined output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the shell call output.

ApplyPatchCall object { call_id, operation, status, 3 more }

A tool call representing a request to create, delete, or update files using diff patches.

call_id: string

The unique ID of the apply patch tool call generated by the model.

operation: object { diff, path, type } or object { path, type } or object { diff, path, type }

The specific create, delete, or update instruction for the apply_patch tool call.

One of the following:

CreateFile object { diff, path, type }

Instruction for creating a new file via the apply_patch tool.

diff: string

Unified diff content to apply when creating the file.

path: string

Path of the file to create relative to the workspace root.

type: "create_file"

The operation type. Always create_file.

DeleteFile object { path, type }

Instruction for deleting an existing file via the apply_patch tool.

path: string

Path of the file to delete relative to the workspace root.

type: "delete_file"

The operation type. Always delete_file.

UpdateFile object { diff, path, type }

Instruction for updating an existing file via the apply_patch tool.

diff: string

Unified diff content to apply to the existing file.

path: string

Path of the file to update relative to the workspace root.

type: "update_file"

The operation type. Always update_file.

status: "in_progress" or "completed"

The status of the apply patch tool call. One of in_progress or completed.

type: "apply_patch_call"

The type of the item. Always apply_patch_call.

id: optional string or null

The unique ID of the apply patch tool call. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

ApplyPatchCallOutput object { call_id, status, type, 3 more }

The streamed output emitted by an apply patch tool call.

call_id: string

The unique ID of the apply patch tool call generated by the model.

status: "completed" or "failed"

The status of the apply patch tool call output. One of completed or failed.

type: "apply_patch_call_output"

The type of the item. Always apply_patch_call_output.

id: optional string or null

The unique ID of the apply patch tool call output. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

output: optional string or null

Optional human-readable log text from the apply patch tool (e.g., patch results or errors).

McpListTools object { id, server_label, tools, 2 more }

A list of tools available on an MCP server.

id: string

The unique ID of the list.

server_label: string

The label of the MCP server.

type: "mcp_list_tools"

The type of the item. Always mcp_list_tools.

error: optional string or null

Error message if the server could not list tools.

McpApprovalRequest object { id, arguments, name, 2 more }

A request for human approval of a tool invocation.

id: string

The unique ID of the approval request.

arguments: string

A JSON string of arguments for the tool.

name: string

The name of the tool to run.

server_label: string

The label of the MCP server making the request.

type: "mcp_approval_request"

The type of the item. Always mcp_approval_request.

McpApprovalResponse object { approval_request_id, approve, type, 2 more }

A response to an MCP approval request.

approval_request_id: string

The ID of the approval request being answered.

approve: boolean

Whether the request was approved.

type: "mcp_approval_response"

The type of the item. Always mcp_approval_response.

id: optional string or null

The unique ID of the approval response

reason: optional string or null

Optional reason for the decision.

McpCall object { id, arguments, name, 6 more }

An invocation of a tool on an MCP server.

id: string

The unique ID of the tool call.

arguments: string

A JSON string of the arguments passed to the tool.

name: string

The name of the tool that was run.

server_label: string

The label of the MCP server running the tool.

type: "mcp_call"

The type of the item. Always mcp_call.

approval_request_id: optional string or null

Unique identifier for the MCP tool call approval request. Include this value in a subsequent mcp_approval_response input to approve or reject the corresponding tool call.

The error from the tool call, if any.

output: optional string or null

The output from the tool call.

status: optional "in_progress" or "completed" or "incomplete" or 2 more

The status of the tool call. One of in_progress, completed, incomplete, calling, or failed.

CustomToolCallOutput object { call_id, output, type, 2 more }

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

call_id: string

The call ID, used to map this custom tool call output to a custom tool call.

The output from the custom tool call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the custom tool call.

Text, image, or file output of the custom tool call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "custom_tool_call_output"

The type of the custom tool call output. Always custom_tool_call_output.

id: optional string

The unique ID of the custom tool call output in the OpenAI platform.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

CustomToolCall object { call_id, input, name, 5 more }

A call to a custom tool created by the model.

call_id: string

An identifier used to map this custom tool call to a tool call output.

input: string

The input for the custom tool call generated by the model.

name: string

The name of the custom tool being called.

type: "custom_tool_call"

The type of the custom tool call. Always custom_tool_call.

id: optional string

The unique ID of the custom tool call in the OpenAI platform.

async: optional boolean

Whether the custom tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the custom tool being called.

CompactionTrigger object { type, id }

Compacts the current context. Must be the final input item.

type: "compaction_trigger"

The type of the item. Always compaction_trigger.

id: optional string or null

The unique ID of this compaction trigger.

ItemReference object { id, type }

An internal identifier for an item to reference.

id: string

The ID of the item to reference.

type: optional "item_reference" or null

The type of item to reference. Always item_reference.

Program object { id, call_id, code, 2 more }

id: string

The unique ID of this program item.

call_id: string

The stable call ID of the program item.

code: string

The JavaScript source executed by programmatic tool calling.

fingerprint: string

Opaque program replay fingerprint that must be round-tripped.

type: "program"

The item type. Always program.

ProgramOutput object { id, call_id, result, 2 more }

id: string

The unique ID of this program output item.

call_id: string

The call ID of the program item.

result: string

The result produced by the program item.

status: "completed" or "incomplete"

The terminal status of the program output.

type: "program_output"

The item type. Always program_output.

Model ID used to generate the response, like gpt-6-astra. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the model guide to browse and compare available models.

object: "response"

The object type of this resource - always set to response.

An array of content items generated by the model.

  • The length and order of items in the output array is dependent on the model’s response.
  • Rather than accessing the first item in the output array and assuming it’s an assistant message with the content generated by the model, you might consider using the output_text property where supported in SDKs.

One of the following:

ResponseOutputMessage object { id, content, role, 3 more }

An output message from the model.

id: string

The unique ID of the output message.

The content of the output message.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

role: "assistant"

The role of the output message. Always assistant.

status: "in_progress" or "completed" or "incomplete"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "message"

The type of the output message. Always message.

phase: optional "commentary" or "final_answer" or null

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.

FileSearchCall object { id, queries, status, 2 more }

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

id: string

The unique ID of the file search tool call.

queries: array of string

The queries used to search for files.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the file search tool call. One of in_progress, searching, incomplete or failed,

type: "file_search_call"

The type of the file search tool call. Always file_search_call.

results: optional array of object { attributes, file_id, filename, 2 more } or null

The results of the file search tool call.

attributes: optional map[string or number or boolean] or null

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.

file_id: optional string

The unique ID of the file.

filename: optional string

score: optional number

The relevance score of the file - a value between 0 and 1.

text: optional string

The text that was retrieved from the file.

FunctionCall object { arguments, call_id, name, 6 more }

arguments: string

A JSON string of the arguments to pass to the function.

call_id: string

The unique ID of the function tool call generated by the model.

name: string

The name of the function to run.

type: "function_call"

The type of the function tool call. Always function_call.

id: optional string

The unique ID of the function tool call.

async: optional boolean

Whether the function tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the function to run.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

FunctionCallOutput object { id, output, status, 6 more }

id: string

The unique ID of the function call tool output.

The output from the function call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the function call.

Text, image, or file output of the function call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "function_call_output"

The type of the function tool call output. Always function_call_output.

call_id: optional string

The unique ID of the function tool call generated by the model.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

created_by: optional string

The identifier of the actor that created the item.

name: optional string

The name of the tool that produced the output.

namespace: optional string

The namespace of the tool that produced the output.

WebSearchCall object { id, action, status, type }

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

id: string

The unique ID of the web search tool call.

action: object { type, queries, query, sources } or object { type, url } or object { pattern, type, url }

An object describing the specific action taken in this web search call. Includes details on how the model used the web (search, open_page, find_in_page).

One of the following:

Search object { type, queries, query, sources }

Action type “search” - Performs a web search query.

queries: optional array of string

Deprecatedquery: optional string

sources: optional array of object { type, url }

The sources used in the search.

type: "url"

The type of source. Always url.

OpenPage object { type, url }

Action type “open_page” - Opens a specific URL from search results.

url: optional string or null

The URL opened by the model.

FindInPage object { pattern, type, url }

Action type “find_in_page”: Searches for a pattern within a loaded page.

pattern: string

The pattern or text to search for within the page.

url: string

The URL of the page searched for the pattern.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the web search tool call.

type: "web_search_call"

The type of the web search tool call. Always web_search_call.

ComputerCall object { id, call_id, pending_safety_checks, 4 more }

id: string

The unique ID of the computer call.

call_id: string

An identifier used when responding to the tool call with output.

pending_safety_checks: array of object { id, code, message }

The pending safety checks for the computer call.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "computer_call"

The type of the computer call. Always computer_call.

actions: optional ComputerActionList { Click, DoubleClick, Drag, 6 more }

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

ComputerCallOutput object { id, call_id, output, 4 more }

id: string

The unique ID of the computer call tool output.

call_id: string

The ID of the computer tool call that produced the output.

A computer screenshot image used with the computer use tool.

status: "completed" or "incomplete" or "failed" or "in_progress"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "computer_call_output"

The type of the computer tool call output. Always computer_call_output.

acknowledged_safety_checks: optional array of object { id, code, message }

The safety checks reported by the API that have been acknowledged by the developer.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

created_by: optional string

The identifier of the actor that created the item.

Reasoning object { id, summary, type, 3 more }

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.

id: string

The unique identifier of the reasoning content.

Reasoning summary content.

text: string

A summary of the reasoning output from the model so far.

type: "summary_text"

The type of the object. Always summary_text.

type: "reasoning"

The type of the object. Always reasoning.

content: optional array of object { text, type }

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

encrypted_content: optional string or null

The encrypted content of the reasoning item. This is populated by default for reasoning items returned by POST /v1/responses and WebSocket response.create requests.

When streaming, use the completed reasoning item and its encrypted_content from the response.output_item.done event in subsequent requests. The encrypted_content in response.output_item.added may be incomplete. This is especially important when store is false or when using Zero Data Retention.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

Program object { id, call_id, code, 2 more }

id: string

The unique ID of the program item.

call_id: string

The stable call ID of the program item.

code: string

The JavaScript source executed by programmatic tool calling.

fingerprint: string

Opaque program replay fingerprint that must be round-tripped.

type: "program"

The type of the item. Always program.

ProgramOutput object { id, call_id, result, 2 more }

id: string

The unique ID of the program output item.

call_id: string

The call ID of the program item.

result: string

The result produced by the program item.

status: "completed" or "incomplete"

The terminal status of the program output item.

type: "program_output"

The type of the item. Always program_output.

ToolSearchCall object { id, arguments, call_id, 4 more }

id: string

The unique ID of the tool search call item.

arguments: unknown

Arguments used for the tool search call.

call_id: string or null

The unique ID of the tool search call generated by the model.

execution: "server" or "client"

Whether tool search was executed by the server or by the client.

status: "in_progress" or "completed" or "incomplete"

The status of the tool search call item that was recorded.

type: "tool_search_call"

The type of the item. Always tool_search_call.

created_by: optional string

The identifier of the actor that created the item.

ToolSearchOutput object { id, call_id, execution, 4 more }

id: string

The unique ID of the tool search output item.

call_id: string or null

The unique ID of the tool search call generated by the model.

execution: "server" or "client"

Whether tool search was executed by the server or by the client.

status: "in_progress" or "completed" or "incomplete"

The status of the tool search output item that was recorded.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "tool_search_output"

The type of the item. Always tool_search_output.

created_by: optional string

The identifier of the actor that created the item.

AdditionalTools object { id, role, tools, type }

id: string

The unique ID of the additional tools item.

role: "unknown" or "user" or "assistant" or 5 more

The role that provided the additional tools.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "additional_tools"

The type of the item. Always additional_tools.

Compaction object { id, encrypted_content, type, created_by }

id: string

The unique ID of the compaction item.

encrypted_content: string

The encrypted content that was produced by compaction.

type: "compaction"

The type of the item. Always compaction.

created_by: optional string

The identifier of the actor that created the item.

ImageGenerationCall object { id, result, status, type }

An image generation request made by the model.

id: string

The unique ID of the image generation call.

result: string or null

The generated image encoded in base64.

status: "in_progress" or "completed" or "generating" or "failed"

The status of the image generation call.

type: "image_generation_call"

The type of the image generation call. Always image_generation_call.

CodeInterpreterCall object { id, code, container_id, 3 more }

id: string

The unique ID of the code interpreter tool call.

code: string or null

The code to run, or null if not available.

container_id: string

The ID of the container used to run the code.

outputs: array of object { logs, type } or object { type, url } or null

The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.

One of the following:

Logs object { logs, type }

The logs output from the code interpreter.

logs: string

The logs output from the code interpreter.

type: "logs"

The type of the output. Always logs.

Image object { type, url }

The image output from the code interpreter.

type: "image"

The type of the output. Always image.

url: string

The URL of the image output from the code interpreter.

status: "in_progress" or "completed" or "incomplete" or 2 more

The status of the code interpreter tool call. Valid values are in_progress, completed, incomplete, interpreting, and failed.

type: "code_interpreter_call"

The type of the code interpreter tool call. Always code_interpreter_call.

LocalShellCall object { id, action, call_id, 2 more }

A tool call to run a command on the local shell.

id: string

The unique ID of the local shell call.

action: object { command, env, type, 3 more }

Execute a shell command on the server.

env: map[string]

Environment variables to set for the command.

type: "exec"

The type of the local shell action. Always exec.

timeout_ms: optional number or null

Optional timeout in milliseconds for the command.

user: optional string or null

Optional user to run the command as.

working_directory: optional string or null

Optional working directory to run the command in.

call_id: string

The unique ID of the local shell tool call generated by the model.

status: "in_progress" or "completed" or "incomplete"

The status of the local shell call.

type: "local_shell_call"

The type of the local shell call. Always local_shell_call.

LocalShellCallOutput object { id, output, type, status }

The output of a local shell tool call.

id: string

The unique ID of the local shell tool call generated by the model.

output: string

A JSON string of the output of the local shell tool call.

type: "local_shell_call_output"

The type of the local shell tool call output. Always local_shell_call_output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete.

ShellCall object { id, action, call_id, 5 more }

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

id: string

The unique ID of the shell tool call. Populated when this item is returned via API.

action: object { commands, max_output_length, timeout_ms }

The shell commands and limits that describe how to run the tool call.

commands: array of string

max_output_length: number or null

Optional maximum number of characters to return from each command.

timeout_ms: number or null

Optional timeout in milliseconds for the commands.

call_id: string

The unique ID of the shell tool call generated by the model.

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

One of the following:

ResponseLocalEnvironment object { type }

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

type: "local"

The environment type. Always local.

ResponseContainerReference object { container_id, type }

Represents a container created with /v1/containers.

type: "container_reference"

The environment type. Always container_reference.

status: "in_progress" or "completed" or "incomplete"

The status of the shell call. One of in_progress, completed, or incomplete.

type: "shell_call"

The type of the item. Always shell_call.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call.

ShellCallOutput object { id, call_id, max_output_length, 5 more }

The output of a shell tool call that was emitted.

id: string

The unique ID of the shell call output. Populated when this item is returned via API.

call_id: string

The unique ID of the shell tool call generated by the model.

max_output_length: number or null

The maximum length of the shell command output. This is generated by the model and should be passed back with the raw output.

output: array of object { outcome, stderr, stdout, created_by }

An array of shell call output contents

outcome: object { type } or object { exit_code, type }

Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

Exit code from the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

The standard error output that was captured.

stdout: string

The standard output that was captured.

created_by: optional string

The identifier of the actor that created the item.

status: "in_progress" or "completed" or "incomplete"

The status of the shell call output. One of in_progress, completed, or incomplete.

type: "shell_call_output"

The type of the shell call output. Always shell_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The identifier of the actor that created the item.

ApplyPatchCall object { id, call_id, operation, 4 more }

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

id: string

The unique ID of the apply patch tool call. Populated when this item is returned via API.

call_id: string

The unique ID of the apply patch tool call generated by the model.

operation: object { diff, path, type } or object { path, type } or object { diff, path, type }

One of the create_file, delete_file, or update_file operations applied via apply_patch.

One of the following:

CreateFile object { diff, path, type }

Instruction describing how to create a file via the apply_patch tool.

path: string

Path of the file to create.

type: "create_file"

Create a new file with the provided diff.

DeleteFile object { path, type }

Instruction describing how to delete a file via the apply_patch tool.

path: string

Path of the file to delete.

type: "delete_file"

Delete the specified file.

UpdateFile object { diff, path, type }

Instruction describing how to update a file via the apply_patch tool.

path: string

Path of the file to update.

type: "update_file"

Update an existing file with the provided diff.

status: "in_progress" or "completed"

The status of the apply patch tool call. One of in_progress or completed.

type: "apply_patch_call"

The type of the item. Always apply_patch_call.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call.

ApplyPatchCallOutput object { id, call_id, status, 4 more }

The output emitted by an apply patch tool call.

id: string

The unique ID of the apply patch tool call output. Populated when this item is returned via API.

call_id: string

The unique ID of the apply patch tool call generated by the model.

status: "completed" or "failed"

The status of the apply patch tool call output. One of completed or failed.

type: "apply_patch_call_output"

The type of the item. Always apply_patch_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call output.

output: optional string or null

Optional textual output returned by the apply patch tool.

McpCall object { id, arguments, name, 6 more }

An invocation of a tool on an MCP server.

id: string

The unique ID of the tool call.

arguments: string

A JSON string of the arguments passed to the tool.

name: string

The name of the tool that was run.

server_label: string

The label of the MCP server running the tool.

type: "mcp_call"

The type of the item. Always mcp_call.

approval_request_id: optional string or null

Unique identifier for the MCP tool call approval request. Include this value in a subsequent mcp_approval_response input to approve or reject the corresponding tool call.

The error from the tool call, if any.

output: optional string or null

The output from the tool call.

status: optional "in_progress" or "completed" or "incomplete" or 2 more

The status of the tool call. One of in_progress, completed, incomplete, calling, or failed.

McpListTools object { id, server_label, tools, 2 more }

A list of tools available on an MCP server.

id: string

The unique ID of the list.

server_label: string

The label of the MCP server.

type: "mcp_list_tools"

The type of the item. Always mcp_list_tools.

error: optional string or null

Error message if the server could not list tools.

McpApprovalRequest object { id, arguments, name, 2 more }

A request for human approval of a tool invocation.

id: string

The unique ID of the approval request.

arguments: string

A JSON string of arguments for the tool.

name: string

The name of the tool to run.

server_label: string

The label of the MCP server making the request.

type: "mcp_approval_request"

The type of the item. Always mcp_approval_request.

McpApprovalResponse object { id, approval_request_id, approve, 2 more }

A response to an MCP approval request.

id: string

The unique ID of the approval response

approval_request_id: string

The ID of the approval request being answered.

approve: boolean

Whether the request was approved.

type: "mcp_approval_response"

The type of the item. Always mcp_approval_response.

reason: optional string or null

Optional reason for the decision.

CustomToolCall object { call_id, input, name, 5 more }

A call to a custom tool created by the model.

call_id: string

An identifier used to map this custom tool call to a tool call output.

input: string

The input for the custom tool call generated by the model.

name: string

The name of the custom tool being called.

type: "custom_tool_call"

The type of the custom tool call. Always custom_tool_call.

id: optional string

The unique ID of the custom tool call in the OpenAI platform.

async: optional boolean

Whether the custom tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the custom tool being called.

CustomToolCallOutput object { id, call_id, output, 4 more }

id: string

The unique ID of the custom tool call output item.

call_id: string

The call ID, used to map this custom tool call output to a custom tool call.

The output from the custom tool call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the custom tool call.

Text, image, or file output of the custom tool call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "custom_tool_call_output"

The type of the custom tool call output. Always custom_tool_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

created_by: optional string

The identifier of the actor that created the item.

temperature: number or null

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

top_p: number or null

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.

We generally recommend altering this or temperature but not both.

background: optional boolean or null

Whether to run the model response in the background. Learn more.

completed_at: optional number or null

Unix timestamp (in seconds) of when this Response was completed. Only present when the status is completed.

conversation: optional object { id } or null

The conversation that this response belonged to. Input items and output items from this response were automatically added to this conversation.

id: string

The unique ID of the conversation that this response was associated with.

max_output_tokens: optional number or null

An upper bound for the number of tokens that can be generated for a response, including visible output tokens and reasoning tokens.

moderation: optional object { input, output } or null

Moderation results for the response input and output, if moderated completions were requested.

input: object { categories, category_applied_input_types, category_scores, 3 more } or object { code, message, type }

Moderation for the response input.

One of the following:

ModerationResult object { categories, category_applied_input_types, category_scores, 3 more }

A moderation result produced for the response input or output.

categories: map[boolean]

A dictionary of moderation categories to booleans, True if the input is flagged under this category.

category_applied_input_types: map[array of "text" or "image"]

Which modalities of input are reflected by the score for each category.

category_scores: map[number]

A dictionary of moderation categories to scores.

flagged: boolean

A boolean indicating whether the content was flagged by any category.

model: string

The moderation model that produced this result.

type: "moderation_result"

The object type, which was always moderation_result for successful moderation results.

Error object { code, message, type }

An error produced while attempting moderation for the response input or output.

type: "error"

The object type, which was always error for moderation failures.

output: object { categories, category_applied_input_types, category_scores, 3 more } or object { code, message, type }

Moderation for the response output.

One of the following:

ModerationResult object { categories, category_applied_input_types, category_scores, 3 more }

A moderation result produced for the response input or output.

categories: map[boolean]

A dictionary of moderation categories to booleans, True if the input is flagged under this category.

category_applied_input_types: map[array of "text" or "image"]

Which modalities of input are reflected by the score for each category.

category_scores: map[number]

A dictionary of moderation categories to scores.

flagged: boolean

A boolean indicating whether the content was flagged by any category.

model: string

The moderation model that produced this result.

type: "moderation_result"

The object type, which was always moderation_result for successful moderation results.

Error object { code, message, type }

An error produced while attempting moderation for the response input or output.

type: "error"

The object type, which was always error for moderation failures.

output_text: optional string or null

SDK-only convenience property that contains the aggregated text output from all output_text items in the output array, if any are present. Supported in the Python and JavaScript SDKs.

previous_response_id: optional string or null

The unique ID of the previous response to the model. Use this to create multi-turn conversations. Learn more about conversation state. Cannot be used in conjunction with conversation.

prompt: optional ResponsePrompt { id, variables, version } or null

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

prompt_cache_diagnostics: optional object { cache_missed_tokens, reason, type, comparison_reusable_tokens } or object { type } or object { type } or object { type }

Prompt cache diagnostics requested for this response.

One of the following:

CacheMiss object { cache_missed_tokens, reason, type, comparison_reusable_tokens }

cache_missed_tokens: number

The estimated number of input tokens affected after the first detected divergence.

reason: "model_changed" or "prompt_cache_key_changed" or "tools_changed" or 6 more

The reason prompt cache reuse did not occur.

One of the following:

"prompt_cache_key_changed"

"reasoning_effort_changed"

comparison_reusable_tokens: optional number

The raw token count of the reusable prefix in the compared response.

ComparisonResponseNotFound object { type }

type: "comparison_response_not_found"

Unavailable object { type }

prompt_cache_key: optional string or null

Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the user field. Learn more.

prompt_cache_options: optional object { mode, ttl, comparison_response_id }

The prompt-caching options that were applied to the response. Supported for gpt-5.6 and later models.

mode: "implicit" or "explicit"

Whether implicit prompt-cache breakpoints were enabled.

ttl: "30m"

The minimum lifetime applied to each cache breakpoint.

comparison_response_id: optional string or null

The response ID supplied as the prompt cache diagnostics comparison.

Deprecatedprompt_cache_retention: optional "in_memory" or "24h" or null

Deprecated. Use prompt_cache_options.ttl instead.

The retention policy for the prompt cache. Set to 24h to enable extended prompt caching, which keeps cached prefixes active for longer, up to a maximum of 24 hours. Learn more. This field expresses a maximum retention policy, while prompt_cache_options.ttl expresses a minimum cache lifetime. The two fields are independent and do not interact. For gpt-5.5, gpt-5.5-pro, and future models, only 24h is supported.

For older models that support both in_memory and 24h, the default depends on your organization’s data retention policy:

  • Organizations without ZDR enabled default to 24h.
  • Organizations with ZDR enabled default to in_memory when prompt_cache_retention is not specified.

reasoning: optional Reasoning { context, effort, generate_summary, 2 more } or null

safety_identifier: optional string or null

A stable identifier used to help detect users of your application that may be violating OpenAI’s usage policies. The IDs should be a string that uniquely identifies each user, with a maximum length of 64 characters. We recommend hashing their username or email address, in order to avoid sending us any identifying information. Learn more.

Specifies the processing type used for serving the request.

  • If set to ‘auto’, then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use ‘default’.
  • If set to ‘default’, then the request will be processed with the standard pricing and performance for the selected model.
  • If set to ‘flex’, then the request will be processed with the Flex Processing service tier.
  • To opt-in to Fast mode at the request level, include the service_tier=fast or service_tier=priority parameter for Responses or Chat Completions. The response will show service_tier=priority regardless of if you specify service_tier=fast or priority in your request.
  • If set to ‘ultrafast’, then the request will be processed with the access-controlled Ultrafast Processing service tier. This tier is currently available for gpt-5.6-sol; a response served through it will show service_tier=ultrafast.
  • When not set, the default behavior is ‘auto’.

When the service_tier parameter is set, the response body will include the service_tier value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter.

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

top_logprobs: optional number or null

An integer between 0 and 20 specifying the maximum number of most likely tokens to return at each token position, each with an associated log probability. In some cases, the number of returned tokens may be fewer than requested.

truncation: optional "auto" or "disabled" or null

The truncation strategy to use for the model response.

  • auto: If the input to this Response exceeds the model’s context window size, the model will truncate the response to fit the context window by dropping items from the beginning of the conversation.
  • disabled (default): If the input size will exceed the context window size for a model, the request will fail with a 400 error.

usage: optional ResponseUsage { input_tokens, input_tokens_details, output_tokens, 2 more }

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

Deprecateduser: optional string

This field is being replaced by safety_identifier and prompt_cache_key. Use prompt_cache_key instead to maintain caching optimizations. A stable identifier for your end-users. Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. Learn more.

ResponseAudioDeltaEvent object { delta, sequence_number, type }

Emitted when there is a partial audio response.

delta: string

A chunk of Base64 encoded response audio bytes.

sequence_number: number

A sequence number for this chunk of the stream response.

type: "response.audio.delta"

The type of the event. Always response.audio.delta.

ResponseAudioDoneEvent object { sequence_number, type }

Emitted when the audio response is complete.

sequence_number: number

The sequence number of the delta.

type: "response.audio.done"

The type of the event. Always response.audio.done.

ResponseAudioTranscriptDeltaEvent object { delta, sequence_number, type }

Emitted when there is a partial transcript of audio.

delta: string

The partial transcript of the audio response.

sequence_number: number

The sequence number of this event.

type: "response.audio.transcript.delta"

The type of the event. Always response.audio.transcript.delta.

ResponseAudioTranscriptDoneEvent object { sequence_number, type }

Emitted when the full audio transcript is completed.

sequence_number: number

The sequence number of this event.

type: "response.audio.transcript.done"

The type of the event. Always response.audio.transcript.done.

ResponseCodeInterpreterCallCodeDeltaEvent object { delta, item_id, output_index, 2 more }

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

delta: string

The partial code snippet being streamed by the code interpreter.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code is being streamed.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call_code.delta"

The type of the event. Always response.code_interpreter_call_code.delta.

ResponseCodeInterpreterCallCodeDoneEvent object { code, item_id, output_index, 2 more }

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

code: string

The final code snippet output by the code interpreter.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code is finalized.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call_code.done"

The type of the event. Always response.code_interpreter_call_code.done.

ResponseCodeInterpreterCallCompletedEvent object { item_id, output_index, sequence_number, type }

Emitted when the code interpreter call is completed.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code interpreter call is completed.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call.completed"

The type of the event. Always response.code_interpreter_call.completed.

ResponseCodeInterpreterCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when a code interpreter call is in progress.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code interpreter call is in progress.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call.in_progress"

The type of the event. Always response.code_interpreter_call.in_progress.

ResponseCodeInterpreterCallInterpretingEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code interpreter is interpreting code.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call.interpreting"

The type of the event. Always response.code_interpreter_call.interpreting.

ResponseCompletedEvent object { response, sequence_number, type }

Emitted when the model response is complete.

response: Response { id, created_at, error, 33 more }

Properties of the completed response.

sequence_number: number

The sequence number for this event.

type: "response.completed"

The type of the event. Always response.completed.

ResponseContainerReference object { container_id, type }

Represents a container created with /v1/containers.

type: "container_reference"

The environment type. Always container_reference.

Multi-modal input and output contents.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ReasoningText object { text, type }

Reasoning text from the model.

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

ResponseContentPartAddedEvent object { content_index, item_id, output_index, 3 more }

Emitted when a new content part is added.

content_index: number

The index of the content part that was added.

item_id: string

The ID of the output item that the content part was added to.

output_index: number

The index of the output item that the content part was added to.

The content part that was added.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ReasoningText object { text, type }

Reasoning text from the model.

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

sequence_number: number

The sequence number of this event.

type: "response.content_part.added"

The type of the event. Always response.content_part.added.

ResponseContentPartDoneEvent object { content_index, item_id, output_index, 3 more }

Emitted when a content part is done.

content_index: number

The index of the content part that is done.

item_id: string

The ID of the output item that the content part was added to.

output_index: number

The index of the output item that the content part was added to.

The content part that is done.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ReasoningText object { text, type }

Reasoning text from the model.

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

sequence_number: number

The sequence number of this event.

type: "response.content_part.done"

The type of the event. Always response.content_part.done.

ResponseConversationParam object { id }

The conversation that this response belongs to.

id: string

The unique ID of the conversation.

ResponseCreatedEvent object { response, sequence_number, type }

An event that is emitted when a response is created.

response: Response { id, created_at, error, 33 more }

The response that was created.

sequence_number: number

The sequence number for this event.

type: "response.created"

The type of the event. Always response.created.

ResponseError object { code, message, misalignment }

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

code: "server_error" or "rate_limit_exceeded" or "invalid_prompt" or 18 more

The error code for the response.

One of the following:

"data_residency_mismatch"

"misalignment_policy_violation"

"image_content_policy_violation"

"unsupported_image_media_type"

"failed_to_download_image"

message: string

A human-readable description of the error.

misalignment: optional object { detailed_explanation, error_type, steer }

detailed_explanation: optional string

The public explanation for this block.

error_type: optional string or "potentially_unintended_data_transfer" or "potentially_unintended_data_access" or "potentially_unintended_destructive_activity" or "other"

An optional classification; clients must accept additional values.

One of the following:

SafetyAlertErrorType = "potentially_unintended_data_transfer" or "potentially_unintended_data_access" or "potentially_unintended_destructive_activity" or "other"

An optional classification; clients must accept additional values.

One of the following:

"potentially_unintended_data_transfer"

"potentially_unintended_data_access"

"potentially_unintended_destructive_activity"

steer: optional object { message }

An optional public continuation instruction.

message: string

The public continuation instruction.

ResponseErrorEvent object { code, message, param, 2 more }

Emitted when an error occurs.

sequence_number: number

The sequence number of this event.

type: "error"

The type of the event. Always error.

ResponseFailedEvent object { response, sequence_number, type }

An event that is emitted when a response fails.

response: Response { id, created_at, error, 33 more }

The response that failed.

sequence_number: number

The sequence number of this event.

type: "response.failed"

The type of the event. Always response.failed.

ResponseFileSearchCallCompletedEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The ID of the output item that the file search call is initiated.

output_index: number

The index of the output item that the file search call is initiated.

sequence_number: number

The sequence number of this event.

type: "response.file_search_call.completed"

The type of the event. Always response.file_search_call.completed.

ResponseFileSearchCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when a file search call is initiated.

item_id: string

The ID of the output item that the file search call is initiated.

output_index: number

The index of the output item that the file search call is initiated.

sequence_number: number

The sequence number of this event.

type: "response.file_search_call.in_progress"

The type of the event. Always response.file_search_call.in_progress.

ResponseFileSearchCallSearchingEvent object { item_id, output_index, sequence_number, type }

Emitted when a file search is currently searching.

item_id: string

The ID of the output item that the file search call is initiated.

output_index: number

The index of the output item that the file search call is searching.

sequence_number: number

The sequence number of this event.

type: "response.file_search_call.searching"

The type of the event. Always response.file_search_call.searching.

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.

One of the following:

ResponseFormatText object { type }

Default response format. Used to generate text responses.

type: "text"

The type of response format being defined. Always text.

ResponseFormatTextJSONSchemaConfig object { name, schema, type, 2 more }

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

name: string

The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.

schema: map[unknown]

The schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas here.

type: "json_schema"

The type of response format being defined. Always json_schema.

description: optional string

A description of what the response format is for, used by the model to determine how to respond in the format.

strict: optional boolean or null

Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the schema field. Only a subset of JSON Schema is supported when strict is true. To learn more, read the Structured Outputs guide.

ResponseFormatTextJSONSchemaConfig object { name, schema, type, 2 more }

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

name: string

The name of the response format. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.

schema: map[unknown]

The schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas here.

type: "json_schema"

The type of response format being defined. Always json_schema.

description: optional string

A description of what the response format is for, used by the model to determine how to respond in the format.

strict: optional boolean or null

Whether to enable strict schema adherence when generating the output. If set to true, the model will always follow the exact schema defined in the schema field. Only a subset of JSON Schema is supported when strict is true. To learn more, read the Structured Outputs guide.

ResponseFunctionCallArgumentsDeltaEvent object { delta, item_id, output_index, 2 more }

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

delta: string

The function-call arguments delta that is added.

item_id: string

The ID of the output item that the function-call arguments delta is added to.

output_index: number

The index of the output item that the function-call arguments delta is added to.

sequence_number: number

The sequence number of this event.

type: "response.function_call_arguments.delta"

The type of the event. Always response.function_call_arguments.delta.

ResponseFunctionCallArgumentsDoneEvent object { arguments, item_id, output_index, 2 more }

Emitted when function-call arguments are finalized.

arguments: string

The function-call arguments.

output_index: number

The index of the output item.

sequence_number: number

The sequence number of this event.

type: "response.function_call_arguments.done"

ResponseFunctionShellCallOutputContent object { outcome, stderr, stdout }

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

outcome: object { type } or object { exit_code, type }

The exit or timeout outcome associated with this shell call.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

The exit code returned by the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

Captured stderr output for the shell call.

stdout: string

Captured stdout output for the shell call.

ResponseImageGenCallCompletedEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.image_generation_call.completed"

The type of the event. Always ‘response.image_generation_call.completed’.

ResponseImageGenCallGeneratingEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of the image generation item being processed.

type: "response.image_generation_call.generating"

The type of the event. Always ‘response.image_generation_call.generating’.

ResponseImageGenCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when an image generation tool call is in progress.

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of the image generation item being processed.

type: "response.image_generation_call.in_progress"

The type of the event. Always ‘response.image_generation_call.in_progress’.

ResponseImageGenCallPartialImageEvent object { item_id, output_index, partial_image_b64, 7 more }

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

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

partial_image_b64: string

Base64-encoded partial image data, suitable for rendering as an image.

partial_image_index: number

0-based index for the partial image (backend is 1-based, but this is 0-based for the user).

sequence_number: number

The sequence number of the image generation item being processed.

type: "response.image_generation_call.partial_image"

The type of the event. Always ‘response.image_generation_call.partial_image’.

background: optional string

The background setting that was used.

output_format: optional string

The output format that was used.

quality: optional string

The image quality that was used.

size: optional string

The image size that was used.

ResponseInProgressEvent object { response, sequence_number, type }

Emitted when the response is in progress.

response: Response { id, created_at, error, 33 more }

The response that is in progress.

sequence_number: number

The sequence number of this event.

type: "response.in_progress"

The type of the event. Always response.in_progress.

ResponseIncludable = "file_search_call.results" or "web_search_call.results" or "web_search_call.action.sources" or 5 more

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).

One of the following:

"file_search_call.results"

"web_search_call.results"

"web_search_call.action.sources"

"message.input_image.image_url"

"computer_call_output.output.image_url"

"code_interpreter_call.outputs"

"reasoning.encrypted_content"

"message.output_text.logprobs"

ResponseIncompleteEvent object { response, sequence_number, type }

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.

response: Response { id, created_at, error, 33 more }

The response that was incomplete.

sequence_number: number

The sequence number of this event.

type: "response.incomplete"

The type of the event. Always response.incomplete.

ResponseInputAudio object { input_audio, type }

An audio input to the model.

input_audio: object { data, format }

data: string

Base64-encoded audio data.

format: "mp3" or "wav"

The format of the audio data. Currently supported formats are mp3 and wav.

type: "input_audio"

The type of the input item. Always input_audio.

A text input to the model.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFileContent object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string or null

The base64-encoded data of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string or null

The URL of the file to be sent to the model.

filename: optional string or null

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImageContent object { type, detail, file_id, 2 more }

type: "input_image"

The type of the input item. Always input_image.

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

maxLength20971520

formaturi

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

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

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputMessageItem object { id, content, role, 2 more }

id: string

The unique ID of the message input.

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

role: "user" or "system" or "developer"

The role of the message input. One of user, system, or developer.

type: "message"

The type of the message input. Always set to message.

status: optional "in_progress" or "completed" or "incomplete"

The status of item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputTextContent object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseLocalEnvironment object { type }

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

type: "local"

The environment type. Always local.

ResponseMcpCallArgumentsDeltaEvent object { delta, item_id, output_index, 2 more }

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

delta: string

A JSON string containing the partial update to the arguments for the MCP tool call.

item_id: string

The unique identifier of the MCP tool call item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call_arguments.delta"

The type of the event. Always ‘response.mcp_call_arguments.delta’.

ResponseMcpCallArgumentsDoneEvent object { arguments, item_id, output_index, 2 more }

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

arguments: string

A JSON string containing the finalized arguments for the MCP tool call.

item_id: string

The unique identifier of the MCP tool call item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call_arguments.done"

The type of the event. Always ‘response.mcp_call_arguments.done’.

ResponseMcpCallCompletedEvent object { item_id, output_index, sequence_number, type }

Emitted when an MCP tool call has completed successfully.

item_id: string

The ID of the MCP tool call item that completed.

output_index: number

The index of the output item that completed.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call.completed"

The type of the event. Always ‘response.mcp_call.completed’.

ResponseMcpCallFailedEvent object { item_id, output_index, sequence_number, type }

Emitted when an MCP tool call has failed.

item_id: string

The ID of the MCP tool call item that failed.

output_index: number

The index of the output item that failed.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call.failed"

The type of the event. Always ‘response.mcp_call.failed’.

ResponseMcpCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when an MCP tool call is in progress.

item_id: string

The unique identifier of the MCP tool call item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call.in_progress"

The type of the event. Always ‘response.mcp_call.in_progress’.

ResponseOutputAudio object { data, transcript, type }

An audio output from the model.

data: string

Base64-encoded audio data from the model.

transcript: string

The transcript of the audio data from the model.

type: "output_audio"

The type of the output audio. Always output_audio.

ResponseOutputItem = ResponseOutputMessage { id, content, role, 3 more } or object { id, queries, status, 2 more } or object { arguments, call_id, name, 6 more } or 25 more

An output message from the model.

One of the following:

ResponseOutputMessage object { id, content, role, 3 more }

An output message from the model.

id: string

The unique ID of the output message.

The content of the output message.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

role: "assistant"

The role of the output message. Always assistant.

status: "in_progress" or "completed" or "incomplete"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "message"

The type of the output message. Always message.

phase: optional "commentary" or "final_answer" or null

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.

FileSearchCall object { id, queries, status, 2 more }

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

id: string

The unique ID of the file search tool call.

queries: array of string

The queries used to search for files.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the file search tool call. One of in_progress, searching, incomplete or failed,

type: "file_search_call"

The type of the file search tool call. Always file_search_call.

results: optional array of object { attributes, file_id, filename, 2 more } or null

The results of the file search tool call.

attributes: optional map[string or number or boolean] or null

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.

file_id: optional string

The unique ID of the file.

filename: optional string

score: optional number

The relevance score of the file - a value between 0 and 1.

text: optional string

The text that was retrieved from the file.

FunctionCall object { arguments, call_id, name, 6 more }

arguments: string

A JSON string of the arguments to pass to the function.

call_id: string

The unique ID of the function tool call generated by the model.

name: string

The name of the function to run.

type: "function_call"

The type of the function tool call. Always function_call.

id: optional string

The unique ID of the function tool call.

async: optional boolean

Whether the function tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the function to run.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

FunctionCallOutput object { id, output, status, 6 more }

id: string

The unique ID of the function call tool output.

The output from the function call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the function call.

Text, image, or file output of the function call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "function_call_output"

The type of the function tool call output. Always function_call_output.

call_id: optional string

The unique ID of the function tool call generated by the model.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

created_by: optional string

The identifier of the actor that created the item.

name: optional string

The name of the tool that produced the output.

namespace: optional string

The namespace of the tool that produced the output.

WebSearchCall object { id, action, status, type }

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

id: string

The unique ID of the web search tool call.

action: object { type, queries, query, sources } or object { type, url } or object { pattern, type, url }

An object describing the specific action taken in this web search call. Includes details on how the model used the web (search, open_page, find_in_page).

One of the following:

Search object { type, queries, query, sources }

Action type “search” - Performs a web search query.

queries: optional array of string

Deprecatedquery: optional string

sources: optional array of object { type, url }

The sources used in the search.

type: "url"

The type of source. Always url.

OpenPage object { type, url }

Action type “open_page” - Opens a specific URL from search results.

url: optional string or null

The URL opened by the model.

FindInPage object { pattern, type, url }

Action type “find_in_page”: Searches for a pattern within a loaded page.

pattern: string

The pattern or text to search for within the page.

url: string

The URL of the page searched for the pattern.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the web search tool call.

type: "web_search_call"

The type of the web search tool call. Always web_search_call.

ComputerCall object { id, call_id, pending_safety_checks, 4 more }

id: string

The unique ID of the computer call.

call_id: string

An identifier used when responding to the tool call with output.

pending_safety_checks: array of object { id, code, message }

The pending safety checks for the computer call.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "computer_call"

The type of the computer call. Always computer_call.

actions: optional ComputerActionList { Click, DoubleClick, Drag, 6 more }

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

ComputerCallOutput object { id, call_id, output, 4 more }

id: string

The unique ID of the computer call tool output.

call_id: string

The ID of the computer tool call that produced the output.

A computer screenshot image used with the computer use tool.

status: "completed" or "incomplete" or "failed" or "in_progress"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "computer_call_output"

The type of the computer tool call output. Always computer_call_output.

acknowledged_safety_checks: optional array of object { id, code, message }

The safety checks reported by the API that have been acknowledged by the developer.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

created_by: optional string

The identifier of the actor that created the item.

Reasoning object { id, summary, type, 3 more }

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.

id: string

The unique identifier of the reasoning content.

Reasoning summary content.

text: string

A summary of the reasoning output from the model so far.

type: "summary_text"

The type of the object. Always summary_text.

type: "reasoning"

The type of the object. Always reasoning.

content: optional array of object { text, type }

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

encrypted_content: optional string or null

The encrypted content of the reasoning item. This is populated by default for reasoning items returned by POST /v1/responses and WebSocket response.create requests.

When streaming, use the completed reasoning item and its encrypted_content from the response.output_item.done event in subsequent requests. The encrypted_content in response.output_item.added may be incomplete. This is especially important when store is false or when using Zero Data Retention.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

Program object { id, call_id, code, 2 more }

id: string

The unique ID of the program item.

call_id: string

The stable call ID of the program item.

code: string

The JavaScript source executed by programmatic tool calling.

fingerprint: string

Opaque program replay fingerprint that must be round-tripped.

type: "program"

The type of the item. Always program.

ProgramOutput object { id, call_id, result, 2 more }

id: string

The unique ID of the program output item.

call_id: string

The call ID of the program item.

result: string

The result produced by the program item.

status: "completed" or "incomplete"

The terminal status of the program output item.

type: "program_output"

The type of the item. Always program_output.

ToolSearchCall object { id, arguments, call_id, 4 more }

id: string

The unique ID of the tool search call item.

arguments: unknown

Arguments used for the tool search call.

call_id: string or null

The unique ID of the tool search call generated by the model.

execution: "server" or "client"

Whether tool search was executed by the server or by the client.

status: "in_progress" or "completed" or "incomplete"

The status of the tool search call item that was recorded.

type: "tool_search_call"

The type of the item. Always tool_search_call.

created_by: optional string

The identifier of the actor that created the item.

ToolSearchOutput object { id, call_id, execution, 4 more }

id: string

The unique ID of the tool search output item.

call_id: string or null

The unique ID of the tool search call generated by the model.

execution: "server" or "client"

Whether tool search was executed by the server or by the client.

status: "in_progress" or "completed" or "incomplete"

The status of the tool search output item that was recorded.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "tool_search_output"

The type of the item. Always tool_search_output.

created_by: optional string

The identifier of the actor that created the item.

AdditionalTools object { id, role, tools, type }

id: string

The unique ID of the additional tools item.

role: "unknown" or "user" or "assistant" or 5 more

The role that provided the additional tools.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "additional_tools"

The type of the item. Always additional_tools.

Compaction object { id, encrypted_content, type, created_by }

id: string

The unique ID of the compaction item.

encrypted_content: string

The encrypted content that was produced by compaction.

type: "compaction"

The type of the item. Always compaction.

created_by: optional string

The identifier of the actor that created the item.

ImageGenerationCall object { id, result, status, type }

An image generation request made by the model.

id: string

The unique ID of the image generation call.

result: string or null

The generated image encoded in base64.

status: "in_progress" or "completed" or "generating" or "failed"

The status of the image generation call.

type: "image_generation_call"

The type of the image generation call. Always image_generation_call.

CodeInterpreterCall object { id, code, container_id, 3 more }

id: string

The unique ID of the code interpreter tool call.

code: string or null

The code to run, or null if not available.

container_id: string

The ID of the container used to run the code.

outputs: array of object { logs, type } or object { type, url } or null

The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.

One of the following:

Logs object { logs, type }

The logs output from the code interpreter.

logs: string

The logs output from the code interpreter.

type: "logs"

The type of the output. Always logs.

Image object { type, url }

The image output from the code interpreter.

type: "image"

The type of the output. Always image.

url: string

The URL of the image output from the code interpreter.

status: "in_progress" or "completed" or "incomplete" or 2 more

The status of the code interpreter tool call. Valid values are in_progress, completed, incomplete, interpreting, and failed.

type: "code_interpreter_call"

The type of the code interpreter tool call. Always code_interpreter_call.

LocalShellCall object { id, action, call_id, 2 more }

A tool call to run a command on the local shell.

id: string

The unique ID of the local shell call.

action: object { command, env, type, 3 more }

Execute a shell command on the server.

env: map[string]

Environment variables to set for the command.

type: "exec"

The type of the local shell action. Always exec.

timeout_ms: optional number or null

Optional timeout in milliseconds for the command.

user: optional string or null

Optional user to run the command as.

working_directory: optional string or null

Optional working directory to run the command in.

call_id: string

The unique ID of the local shell tool call generated by the model.

status: "in_progress" or "completed" or "incomplete"

The status of the local shell call.

type: "local_shell_call"

The type of the local shell call. Always local_shell_call.

LocalShellCallOutput object { id, output, type, status }

The output of a local shell tool call.

id: string

The unique ID of the local shell tool call generated by the model.

output: string

A JSON string of the output of the local shell tool call.

type: "local_shell_call_output"

The type of the local shell tool call output. Always local_shell_call_output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete.

ShellCall object { id, action, call_id, 5 more }

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

id: string

The unique ID of the shell tool call. Populated when this item is returned via API.

action: object { commands, max_output_length, timeout_ms }

The shell commands and limits that describe how to run the tool call.

commands: array of string

max_output_length: number or null

Optional maximum number of characters to return from each command.

timeout_ms: number or null

Optional timeout in milliseconds for the commands.

call_id: string

The unique ID of the shell tool call generated by the model.

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

One of the following:

ResponseLocalEnvironment object { type }

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

type: "local"

The environment type. Always local.

ResponseContainerReference object { container_id, type }

Represents a container created with /v1/containers.

type: "container_reference"

The environment type. Always container_reference.

status: "in_progress" or "completed" or "incomplete"

The status of the shell call. One of in_progress, completed, or incomplete.

type: "shell_call"

The type of the item. Always shell_call.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call.

ShellCallOutput object { id, call_id, max_output_length, 5 more }

The output of a shell tool call that was emitted.

id: string

The unique ID of the shell call output. Populated when this item is returned via API.

call_id: string

The unique ID of the shell tool call generated by the model.

max_output_length: number or null

The maximum length of the shell command output. This is generated by the model and should be passed back with the raw output.

output: array of object { outcome, stderr, stdout, created_by }

An array of shell call output contents

outcome: object { type } or object { exit_code, type }

Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

Exit code from the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

The standard error output that was captured.

stdout: string

The standard output that was captured.

created_by: optional string

The identifier of the actor that created the item.

status: "in_progress" or "completed" or "incomplete"

The status of the shell call output. One of in_progress, completed, or incomplete.

type: "shell_call_output"

The type of the shell call output. Always shell_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The identifier of the actor that created the item.

ApplyPatchCall object { id, call_id, operation, 4 more }

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

id: string

The unique ID of the apply patch tool call. Populated when this item is returned via API.

call_id: string

The unique ID of the apply patch tool call generated by the model.

operation: object { diff, path, type } or object { path, type } or object { diff, path, type }

One of the create_file, delete_file, or update_file operations applied via apply_patch.

One of the following:

CreateFile object { diff, path, type }

Instruction describing how to create a file via the apply_patch tool.

path: string

Path of the file to create.

type: "create_file"

Create a new file with the provided diff.

DeleteFile object { path, type }

Instruction describing how to delete a file via the apply_patch tool.

path: string

Path of the file to delete.

type: "delete_file"

Delete the specified file.

UpdateFile object { diff, path, type }

Instruction describing how to update a file via the apply_patch tool.

path: string

Path of the file to update.

type: "update_file"

Update an existing file with the provided diff.

status: "in_progress" or "completed"

The status of the apply patch tool call. One of in_progress or completed.

type: "apply_patch_call"

The type of the item. Always apply_patch_call.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call.

ApplyPatchCallOutput object { id, call_id, status, 4 more }

The output emitted by an apply patch tool call.

id: string

The unique ID of the apply patch tool call output. Populated when this item is returned via API.

call_id: string

The unique ID of the apply patch tool call generated by the model.

status: "completed" or "failed"

The status of the apply patch tool call output. One of completed or failed.

type: "apply_patch_call_output"

The type of the item. Always apply_patch_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

created_by: optional string

The ID of the entity that created this tool call output.

output: optional string or null

Optional textual output returned by the apply patch tool.

McpCall object { id, arguments, name, 6 more }

An invocation of a tool on an MCP server.

id: string

The unique ID of the tool call.

arguments: string

A JSON string of the arguments passed to the tool.

name: string

The name of the tool that was run.

server_label: string

The label of the MCP server running the tool.

type: "mcp_call"

The type of the item. Always mcp_call.

approval_request_id: optional string or null

Unique identifier for the MCP tool call approval request. Include this value in a subsequent mcp_approval_response input to approve or reject the corresponding tool call.

The error from the tool call, if any.

output: optional string or null

The output from the tool call.

status: optional "in_progress" or "completed" or "incomplete" or 2 more

The status of the tool call. One of in_progress, completed, incomplete, calling, or failed.

McpListTools object { id, server_label, tools, 2 more }

A list of tools available on an MCP server.

id: string

The unique ID of the list.

server_label: string

The label of the MCP server.

type: "mcp_list_tools"

The type of the item. Always mcp_list_tools.

error: optional string or null

Error message if the server could not list tools.

McpApprovalRequest object { id, arguments, name, 2 more }

A request for human approval of a tool invocation.

id: string

The unique ID of the approval request.

arguments: string

A JSON string of arguments for the tool.

name: string

The name of the tool to run.

server_label: string

The label of the MCP server making the request.

type: "mcp_approval_request"

The type of the item. Always mcp_approval_request.

McpApprovalResponse object { id, approval_request_id, approve, 2 more }

A response to an MCP approval request.

id: string

The unique ID of the approval response

approval_request_id: string

The ID of the approval request being answered.

approve: boolean

Whether the request was approved.

type: "mcp_approval_response"

The type of the item. Always mcp_approval_response.

reason: optional string or null

Optional reason for the decision.

CustomToolCall object { call_id, input, name, 5 more }

A call to a custom tool created by the model.

call_id: string

An identifier used to map this custom tool call to a tool call output.

input: string

The input for the custom tool call generated by the model.

name: string

The name of the custom tool being called.

type: "custom_tool_call"

The type of the custom tool call. Always custom_tool_call.

id: optional string

The unique ID of the custom tool call in the OpenAI platform.

async: optional boolean

Whether the custom tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the custom tool being called.

CustomToolCallOutput object { id, call_id, output, 4 more }

id: string

The unique ID of the custom tool call output item.

call_id: string

The call ID, used to map this custom tool call output to a custom tool call.

The output from the custom tool call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the custom tool call.

Text, image, or file output of the custom tool call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "custom_tool_call_output"

The type of the custom tool call output. Always custom_tool_call_output.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

created_by: optional string

The identifier of the actor that created the item.

ResponseOutputItemAddedEvent object { item, output_index, sequence_number, type }

Emitted when a new output item is added.

The output item that was added. For reasoning items, encrypted_content may be incomplete while the item is in progress. Use the reasoning item from the corresponding response.output_item.done event when passing it as input to a subsequent request.

output_index: number

The index of the output item that was added.

sequence_number: number

The sequence number of this event.

type: "response.output_item.added"

The type of the event. Always response.output_item.added.

ResponseOutputItemDoneEvent object { item, output_index, sequence_number, type }

Emitted when an output item is marked done.

The output item that was marked done.

output_index: number

The index of the output item that was marked done.

sequence_number: number

The sequence number of this event.

type: "response.output_item.done"

The type of the event. Always response.output_item.done.

ResponseOutputMessage object { id, content, role, 3 more }

An output message from the model.

id: string

The unique ID of the output message.

The content of the output message.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

role: "assistant"

The role of the output message. Always assistant.

status: "in_progress" or "completed" or "incomplete"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "message"

The type of the output message. Always message.

phase: optional "commentary" or "final_answer" or null

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.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputTextAnnotationAddedEvent object { annotation, annotation_index, content_index, 4 more }

Emitted when an annotation is added to output text content.

annotation: object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type } or null

An annotation that applies to a span of output text.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

annotation_index: number

The index of the annotation within the content part.

content_index: number

The index of the content part within the output item.

item_id: string

The unique identifier of the item to which the annotation is being added.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.output_text.annotation.added"

The type of the event. Always ‘response.output_text.annotation.added’.

ResponsePrompt object { id, variables, version }

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

id: string

The unique identifier of the prompt template to use.

variables: optional map[string or ResponseInputText { text, type, prompt_cache_breakpoint } or ResponseInputImage { detail, type, file_id, 2 more } or ResponseInputFile { type, detail, file_data, 4 more } ] or null

Optional map of values to substitute in for variables in your prompt. The substitution values can either be strings, or other Response input types like images or files.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

version: optional string or null

Optional version of the prompt template.

ResponseQueuedEvent object { response, sequence_number, type }

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

response: Response { id, created_at, error, 33 more }

The full response object that is queued.

sequence_number: number

The sequence number for this event.

type: "response.queued"

The type of the event. Always ‘response.queued’.

ResponseReasoningSummaryPartAddedEvent object { item_id, output_index, part, 3 more }

Emitted when a new reasoning summary part is added.

item_id: string

The ID of the item this summary part is associated with.

output_index: number

The index of the output item this summary part is associated with.

part: object { text, type }

The summary part that was added.

text: string

The text of the summary part.

type: "summary_text"

The type of the summary part. Always summary_text.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

type: "response.reasoning_summary_part.added"

The type of the event. Always response.reasoning_summary_part.added.

ResponseReasoningSummaryPartDoneEvent object { item_id, output_index, part, 4 more }

Emitted when a reasoning summary part is completed.

item_id: string

The ID of the item this summary part is associated with.

output_index: number

The index of the output item this summary part is associated with.

part: object { text, type }

The completed summary part.

text: string

The text of the summary part.

type: "summary_text"

The type of the summary part. Always summary_text.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

type: "response.reasoning_summary_part.done"

The type of the event. Always response.reasoning_summary_part.done.

status: optional "incomplete"

The completion status of the summary part. Omitted when the part completed normally and set to incomplete when generation was interrupted.

ResponseReasoningSummaryTextDeltaEvent object { delta, item_id, output_index, 3 more }

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

delta: string

The text delta that was added to the summary.

item_id: string

The ID of the item this summary text delta is associated with.

output_index: number

The index of the output item this summary text delta is associated with.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

type: "response.reasoning_summary_text.delta"

The type of the event. Always response.reasoning_summary_text.delta.

ResponseReasoningSummaryTextDoneEvent object { item_id, output_index, sequence_number, 3 more }

Emitted when a reasoning summary text is completed.

item_id: string

The ID of the item this summary text is associated with.

output_index: number

The index of the output item this summary text is associated with.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

text: string

The full text of the completed reasoning summary.

type: "response.reasoning_summary_text.done"

The type of the event. Always response.reasoning_summary_text.done.

ResponseReasoningTextDeltaEvent object { content_index, delta, item_id, 3 more }

Emitted when a delta is added to a reasoning text.

content_index: number

The index of the reasoning content part this delta is associated with.

delta: string

The text delta that was added to the reasoning content.

item_id: string

The ID of the item this reasoning text delta is associated with.

output_index: number

The index of the output item this reasoning text delta is associated with.

sequence_number: number

The sequence number of this event.

type: "response.reasoning_text.delta"

The type of the event. Always response.reasoning_text.delta.

ResponseReasoningTextDoneEvent object { content_index, item_id, output_index, 3 more }

Emitted when a reasoning text is completed.

content_index: number

The index of the reasoning content part.

item_id: string

The ID of the item this reasoning text is associated with.

output_index: number

The index of the output item this reasoning text is associated with.

sequence_number: number

The sequence number of this event.

text: string

The full text of the completed reasoning content.

type: "response.reasoning_text.done"

The type of the event. Always response.reasoning_text.done.

ResponseRefusalDeltaEvent object { content_index, delta, item_id, 3 more }

Emitted when there is a partial refusal text.

content_index: number

The index of the content part that the refusal text is added to.

delta: string

The refusal text that is added.

item_id: string

The ID of the output item that the refusal text is added to.

output_index: number

The index of the output item that the refusal text is added to.

sequence_number: number

The sequence number of this event.

type: "response.refusal.delta"

The type of the event. Always response.refusal.delta.

ResponseRefusalDoneEvent object { content_index, item_id, output_index, 3 more }

Emitted when refusal text is finalized.

content_index: number

The index of the content part that the refusal text is finalized.

item_id: string

The ID of the output item that the refusal text is finalized.

output_index: number

The index of the output item that the refusal text is finalized.

refusal: string

The refusal text that is finalized.

sequence_number: number

The sequence number of this event.

type: "response.refusal.done"

The type of the event. Always response.refusal.done.

ResponseShellCallCommandAddedEvent object { command, command_index, output_index, 2 more }

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

command: string

The shell command that was added.

command_index: number

The index of the shell command that was added.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_command.added"

The type of the event, always response.shell_call_command.added.

ResponseShellCallCommandDeltaEvent object { command_index, delta, output_index, 3 more }

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

command_index: number

The index of the shell command that was updated.

delta: string

The shell command delta that was appended.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_command.delta"

The type of the event, always response.shell_call_command.delta.

obfuscation: optional string

An obfuscation string that was added to pad the event payload.

ResponseShellCallCommandDoneEvent object { command, command_index, output_index, 2 more }

A streaming event that indicated a shell command was completed.

command: string

The final shell command that was emitted.

command_index: number

The index of the shell command that was completed.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_command.done"

The type of the event, always response.shell_call_command.done.

ResponseShellCallOutputContentDeltaEvent object { command_index, delta, item_id, 3 more }

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

command_index: number

The index of the shell command that produced output.

delta: object { stderr, stdout }

The stdout/stderr delta that was emitted.

stderr: optional string

The stderr delta that was emitted.

stdout: optional string

The stdout delta that was emitted.

item_id: string

The ID of the output item that was updated.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_output_content.delta"

The type of the event, always response.shell_call_output_content.delta.

ResponseShellCallOutputContentDoneEvent object { command_index, item_id, output, 3 more }

A streaming event that indicated shell call output was completed.

command_index: number

The index of the shell command that produced output.

item_id: string

The ID of the output item that was updated.

output: array of object { outcome, stderr, stdout, created_by }

The output contents emitted for the shell command.

outcome: object { type } or object { exit_code, type }

Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

Exit code from the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

The standard error output that was captured.

stdout: string

The standard output that was captured.

created_by: optional string

The identifier of the actor that created the item.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_output_content.done"

The type of the event, always response.shell_call_output_content.done.

ResponseStatus = "completed" or "failed" or "in_progress" or 3 more

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

ResponseSteerAcceptedEvent object { sequence_number, steer, type, stream_id }

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.

sequence_number: number

The sequence number for this event.

steer: object { id, previous_response_id }

The accepted steering submission.

id: string

The ID assigned to the steering submission.

previous_response_id: string

The ID of the response being steered.

type: "response.steer.accepted"

The event discriminator. Always response.steer.accepted.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the target response’s response.create event supplied a stream_id.

ResponseSteerErrorCode = "response_not_found" or "invalid_input" or "steering_not_supported" or 4 more or string

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.

One of the following:

"response_not_found" or "invalid_input" or "steering_not_supported" or 4 more

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.

One of the following:

"too_many_pending_steers"

"response_already_completed"

"successor_creation_failed"

ResponseSteerEvent object { input, previous_response_id, type }

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.

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.

previous_response_id: string

The ID of the response to steer on this WebSocket connection.

type: "response.steer"

The event discriminator. Always response.steer.

ResponseSteerFailedEvent object { error, sequence_number, steer, 2 more }

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.

error: object { code, message, type }

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.

message: string

A human-readable description of the error.

type: "invalid_request_error"

The error type. Always invalid_request_error.

sequence_number: number

The sequence number for this event.

steer: object { input, previous_response_id, id }

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.

previous_response_id: string

The ID of the response that was targeted for steering.

id: optional string

The ID assigned to the steering submission, if one was allocated.

type: "response.steer.failed"

The event discriminator. Always response.steer.failed.

stream_id: optional string

The WebSocket lane that emitted this event, when the target response is available and its response.create event supplied a stream_id.

ResponseSteerInput = string or array of object { content, role, type, 2 more } or object { output, type, id, 5 more }

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.

One of the following:

TextInput = string

A text input, equivalent to a message with the user role.

ResponseSteerInputItemList = array of object { content, role, type, 2 more } or object { output, type, id, 5 more }

A non-empty list of message inputs to queue for the response.

One of the following:

Message object { content, role, type, 2 more }

The message content, as an array of content parts.

One of the following:

One of the following:

ResponseInputTextContent object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImageContent object { type, detail, file_id, 2 more }

type: "input_image"

The type of the input item. Always input_image.

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

maxLength20971520

formaturi

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFileContent object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string or null

The base64-encoded data of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string or null

The URL of the file to be sent to the model.

filename: optional string or null

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

string

The message content, as a single string.

role: "user"

The message role. Always user.

type: "message"

The item type. Always message.

id: optional string or null

The unique ID of this message item.

status: optional string or null

The status of the message item.

FunctionCallOutput object { output, type, id, 5 more }

The output of a function tool call.

Text, image, or file output of the function tool call.

One of the following:

string

A JSON string of the output of the function tool call.

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

One of the following:

ResponseInputTextContent object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImageContent object { type, detail, file_id, 2 more }

type: "input_image"

The type of the input item. Always input_image.

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

maxLength20971520

formaturi

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFileContent object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string or null

The base64-encoded data of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string or null

The URL of the file to be sent to the model.

filename: optional string or null

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "function_call_output"

The type of the function tool call output. Always function_call_output.

id: optional string or null

The unique ID of the function tool call output. Populated when this item is returned via API.

call_id: optional string or null

The unique ID of the function tool call generated by the model.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

name: optional string or null

The name of the tool that produced the output.

namespace: optional string or null

The namespace of the tool that produced the output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

ResponseSteerPendingEvent object { reason, required_input, sequence_number, 3 more }

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.

One of the following:

FunctionCallOutput object { call_id, name, type }

Supply output using the function tool call output input schema.

type: "function_call_output"

CustomToolCallOutput object { call_id, type }

Supply output using the custom tool call output input schema. The original custom tool call supplies the tool’s name.

type: "custom_tool_call_output"

ComputerCallOutput object { call_id, type }

Supply output using the computer tool call output input schema, including any required acknowledged_safety_checks.

type: "computer_call_output"

ShellCallOutput object { call_id, type }

Supply output using the shell tool call output input schema. Each output entry includes stdout, stderr, and outcome.

type: "shell_call_output"

ApplyPatchCallOutput object { call_id, type }

Supply status and optional output using the apply patch tool call output input schema.

type: "apply_patch_call_output"

ToolSearchOutput object { call_id, execution, type }

Supply tools using the tool search output input schema, retaining execution: "client".

type: "tool_search_output"

McpApprovalResponse object { approval_request_id, type }

Supply approve using the MCP approval response input schema. An optional reason can be supplied when denying the request. The original approval request identifies the tool and server.

approval_request_id: string

type: "mcp_approval_response"

sequence_number: number

The sequence number for this event.

steer: object { id, previous_response_id }

The steering submission that remains queued.

id: string

The ID assigned to the steering submission.

previous_response_id: string

The ID of the response being steered.

type: "response.steer.pending"

The event discriminator. Always response.steer.pending.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the target response’s response.create event supplied a stream_id.

ResponseSteerPendingReason = "waiting_for_required_input" or string

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.

One of the following:

"waiting_for_required_input"

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.

ResponseSteerRequiredInput = object { call_id, name, type } or object { call_id, type } or object { call_id, type } or 4 more

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.

One of the following:

FunctionCallOutput object { call_id, name, type }

Supply output using the function tool call output input schema.

type: "function_call_output"

CustomToolCallOutput object { call_id, type }

Supply output using the custom tool call output input schema. The original custom tool call supplies the tool’s name.

type: "custom_tool_call_output"

ComputerCallOutput object { call_id, type }

Supply output using the computer tool call output input schema, including any required acknowledged_safety_checks.

type: "computer_call_output"

ShellCallOutput object { call_id, type }

Supply output using the shell tool call output input schema. Each output entry includes stdout, stderr, and outcome.

type: "shell_call_output"

ApplyPatchCallOutput object { call_id, type }

Supply status and optional output using the apply patch tool call output input schema.

type: "apply_patch_call_output"

ToolSearchOutput object { call_id, execution, type }

Supply tools using the tool search output input schema, retaining execution: "client".

type: "tool_search_output"

McpApprovalResponse object { approval_request_id, type }

Supply approve using the MCP approval response input schema. An optional reason can be supplied when denying the request. The original approval request identifies the tool and server.

approval_request_id: string

type: "mcp_approval_response"

Event emitted while a response is streamed.

One of the following:

ResponseAudioDeltaEvent object { delta, sequence_number, type }

Emitted when there is a partial audio response.

delta: string

A chunk of Base64 encoded response audio bytes.

sequence_number: number

A sequence number for this chunk of the stream response.

type: "response.audio.delta"

The type of the event. Always response.audio.delta.

ResponseAudioDoneEvent object { sequence_number, type }

Emitted when the audio response is complete.

sequence_number: number

The sequence number of the delta.

type: "response.audio.done"

The type of the event. Always response.audio.done.

ResponseAudioTranscriptDeltaEvent object { delta, sequence_number, type }

Emitted when there is a partial transcript of audio.

delta: string

The partial transcript of the audio response.

sequence_number: number

The sequence number of this event.

type: "response.audio.transcript.delta"

The type of the event. Always response.audio.transcript.delta.

ResponseAudioTranscriptDoneEvent object { sequence_number, type }

Emitted when the full audio transcript is completed.

sequence_number: number

The sequence number of this event.

type: "response.audio.transcript.done"

The type of the event. Always response.audio.transcript.done.

ResponseCodeInterpreterCallCodeDeltaEvent object { delta, item_id, output_index, 2 more }

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

delta: string

The partial code snippet being streamed by the code interpreter.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code is being streamed.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call_code.delta"

The type of the event. Always response.code_interpreter_call_code.delta.

ResponseCodeInterpreterCallCodeDoneEvent object { code, item_id, output_index, 2 more }

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

code: string

The final code snippet output by the code interpreter.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code is finalized.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call_code.done"

The type of the event. Always response.code_interpreter_call_code.done.

ResponseCodeInterpreterCallCompletedEvent object { item_id, output_index, sequence_number, type }

Emitted when the code interpreter call is completed.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code interpreter call is completed.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call.completed"

The type of the event. Always response.code_interpreter_call.completed.

ResponseCodeInterpreterCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when a code interpreter call is in progress.

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code interpreter call is in progress.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call.in_progress"

The type of the event. Always response.code_interpreter_call.in_progress.

ResponseCodeInterpreterCallInterpretingEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The unique identifier of the code interpreter tool call item.

output_index: number

The index of the output item in the response for which the code interpreter is interpreting code.

sequence_number: number

The sequence number of this event, used to order streaming events.

type: "response.code_interpreter_call.interpreting"

The type of the event. Always response.code_interpreter_call.interpreting.

ResponseCompletedEvent object { response, sequence_number, type }

Emitted when the model response is complete.

response: Response { id, created_at, error, 33 more }

Properties of the completed response.

sequence_number: number

The sequence number for this event.

type: "response.completed"

The type of the event. Always response.completed.

ResponseContentPartAddedEvent object { content_index, item_id, output_index, 3 more }

Emitted when a new content part is added.

content_index: number

The index of the content part that was added.

item_id: string

The ID of the output item that the content part was added to.

output_index: number

The index of the output item that the content part was added to.

The content part that was added.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ReasoningText object { text, type }

Reasoning text from the model.

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

sequence_number: number

The sequence number of this event.

type: "response.content_part.added"

The type of the event. Always response.content_part.added.

ResponseContentPartDoneEvent object { content_index, item_id, output_index, 3 more }

Emitted when a content part is done.

content_index: number

The index of the content part that is done.

item_id: string

The ID of the output item that the content part was added to.

output_index: number

The index of the output item that the content part was added to.

The content part that is done.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

ReasoningText object { text, type }

Reasoning text from the model.

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

sequence_number: number

The sequence number of this event.

type: "response.content_part.done"

The type of the event. Always response.content_part.done.

ResponseCreatedEvent object { response, sequence_number, type }

An event that is emitted when a response is created.

response: Response { id, created_at, error, 33 more }

The response that was created.

sequence_number: number

The sequence number for this event.

type: "response.created"

The type of the event. Always response.created.

ResponseErrorEvent object { code, message, param, 2 more }

Emitted when an error occurs.

sequence_number: number

The sequence number of this event.

type: "error"

The type of the event. Always error.

ResponseFileSearchCallCompletedEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The ID of the output item that the file search call is initiated.

output_index: number

The index of the output item that the file search call is initiated.

sequence_number: number

The sequence number of this event.

type: "response.file_search_call.completed"

The type of the event. Always response.file_search_call.completed.

ResponseFileSearchCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when a file search call is initiated.

item_id: string

The ID of the output item that the file search call is initiated.

output_index: number

The index of the output item that the file search call is initiated.

sequence_number: number

The sequence number of this event.

type: "response.file_search_call.in_progress"

The type of the event. Always response.file_search_call.in_progress.

ResponseFileSearchCallSearchingEvent object { item_id, output_index, sequence_number, type }

Emitted when a file search is currently searching.

item_id: string

The ID of the output item that the file search call is initiated.

output_index: number

The index of the output item that the file search call is searching.

sequence_number: number

The sequence number of this event.

type: "response.file_search_call.searching"

The type of the event. Always response.file_search_call.searching.

ResponseFunctionCallArgumentsDeltaEvent object { delta, item_id, output_index, 2 more }

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

delta: string

The function-call arguments delta that is added.

item_id: string

The ID of the output item that the function-call arguments delta is added to.

output_index: number

The index of the output item that the function-call arguments delta is added to.

sequence_number: number

The sequence number of this event.

type: "response.function_call_arguments.delta"

The type of the event. Always response.function_call_arguments.delta.

ResponseFunctionCallArgumentsDoneEvent object { arguments, item_id, output_index, 2 more }

Emitted when function-call arguments are finalized.

arguments: string

The function-call arguments.

output_index: number

The index of the output item.

sequence_number: number

The sequence number of this event.

type: "response.function_call_arguments.done"

ResponseShellCallCommandAddedEvent object { command, command_index, output_index, 2 more }

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

command: string

The shell command that was added.

command_index: number

The index of the shell command that was added.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_command.added"

The type of the event, always response.shell_call_command.added.

ResponseShellCallCommandDeltaEvent object { command_index, delta, output_index, 3 more }

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

command_index: number

The index of the shell command that was updated.

delta: string

The shell command delta that was appended.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_command.delta"

The type of the event, always response.shell_call_command.delta.

obfuscation: optional string

An obfuscation string that was added to pad the event payload.

ResponseShellCallCommandDoneEvent object { command, command_index, output_index, 2 more }

A streaming event that indicated a shell command was completed.

command: string

The final shell command that was emitted.

command_index: number

The index of the shell command that was completed.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_command.done"

The type of the event, always response.shell_call_command.done.

ResponseShellCallOutputContentDeltaEvent object { command_index, delta, item_id, 3 more }

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

command_index: number

The index of the shell command that produced output.

delta: object { stderr, stdout }

The stdout/stderr delta that was emitted.

stderr: optional string

The stderr delta that was emitted.

stdout: optional string

The stdout delta that was emitted.

item_id: string

The ID of the output item that was updated.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_output_content.delta"

The type of the event, always response.shell_call_output_content.delta.

ResponseShellCallOutputContentDoneEvent object { command_index, item_id, output, 3 more }

A streaming event that indicated shell call output was completed.

command_index: number

The index of the shell command that produced output.

item_id: string

The ID of the output item that was updated.

output: array of object { outcome, stderr, stdout, created_by }

The output contents emitted for the shell command.

outcome: object { type } or object { exit_code, type }

Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

Exit code from the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

The standard error output that was captured.

stdout: string

The standard output that was captured.

created_by: optional string

The identifier of the actor that created the item.

output_index: number

The index of the output item that was updated.

sequence_number: number

The sequence number of the event that was emitted.

type: "response.shell_call_output_content.done"

The type of the event, always response.shell_call_output_content.done.

ResponseInProgressEvent object { response, sequence_number, type }

Emitted when the response is in progress.

response: Response { id, created_at, error, 33 more }

The response that is in progress.

sequence_number: number

The sequence number of this event.

type: "response.in_progress"

The type of the event. Always response.in_progress.

ResponseFailedEvent object { response, sequence_number, type }

An event that is emitted when a response fails.

response: Response { id, created_at, error, 33 more }

The response that failed.

sequence_number: number

The sequence number of this event.

type: "response.failed"

The type of the event. Always response.failed.

ResponseIncompleteEvent object { response, sequence_number, type }

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.

response: Response { id, created_at, error, 33 more }

The response that was incomplete.

sequence_number: number

The sequence number of this event.

type: "response.incomplete"

The type of the event. Always response.incomplete.

ResponseOutputItemAddedEvent object { item, output_index, sequence_number, type }

Emitted when a new output item is added.

The output item that was added. For reasoning items, encrypted_content may be incomplete while the item is in progress. Use the reasoning item from the corresponding response.output_item.done event when passing it as input to a subsequent request.

output_index: number

The index of the output item that was added.

sequence_number: number

The sequence number of this event.

type: "response.output_item.added"

The type of the event. Always response.output_item.added.

ResponseOutputItemDoneEvent object { item, output_index, sequence_number, type }

Emitted when an output item is marked done.

The output item that was marked done.

output_index: number

The index of the output item that was marked done.

sequence_number: number

The sequence number of this event.

type: "response.output_item.done"

The type of the event. Always response.output_item.done.

ResponseReasoningSummaryPartAddedEvent object { item_id, output_index, part, 3 more }

Emitted when a new reasoning summary part is added.

item_id: string

The ID of the item this summary part is associated with.

output_index: number

The index of the output item this summary part is associated with.

part: object { text, type }

The summary part that was added.

text: string

The text of the summary part.

type: "summary_text"

The type of the summary part. Always summary_text.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

type: "response.reasoning_summary_part.added"

The type of the event. Always response.reasoning_summary_part.added.

ResponseReasoningSummaryPartDoneEvent object { item_id, output_index, part, 4 more }

Emitted when a reasoning summary part is completed.

item_id: string

The ID of the item this summary part is associated with.

output_index: number

The index of the output item this summary part is associated with.

part: object { text, type }

The completed summary part.

text: string

The text of the summary part.

type: "summary_text"

The type of the summary part. Always summary_text.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

type: "response.reasoning_summary_part.done"

The type of the event. Always response.reasoning_summary_part.done.

status: optional "incomplete"

The completion status of the summary part. Omitted when the part completed normally and set to incomplete when generation was interrupted.

ResponseReasoningSummaryTextDeltaEvent object { delta, item_id, output_index, 3 more }

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

delta: string

The text delta that was added to the summary.

item_id: string

The ID of the item this summary text delta is associated with.

output_index: number

The index of the output item this summary text delta is associated with.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

type: "response.reasoning_summary_text.delta"

The type of the event. Always response.reasoning_summary_text.delta.

ResponseReasoningSummaryTextDoneEvent object { item_id, output_index, sequence_number, 3 more }

Emitted when a reasoning summary text is completed.

item_id: string

The ID of the item this summary text is associated with.

output_index: number

The index of the output item this summary text is associated with.

sequence_number: number

The sequence number of this event.

summary_index: number

The index of the summary part within the reasoning summary.

text: string

The full text of the completed reasoning summary.

type: "response.reasoning_summary_text.done"

The type of the event. Always response.reasoning_summary_text.done.

ResponseReasoningTextDeltaEvent object { content_index, delta, item_id, 3 more }

Emitted when a delta is added to a reasoning text.

content_index: number

The index of the reasoning content part this delta is associated with.

delta: string

The text delta that was added to the reasoning content.

item_id: string

The ID of the item this reasoning text delta is associated with.

output_index: number

The index of the output item this reasoning text delta is associated with.

sequence_number: number

The sequence number of this event.

type: "response.reasoning_text.delta"

The type of the event. Always response.reasoning_text.delta.

ResponseReasoningTextDoneEvent object { content_index, item_id, output_index, 3 more }

Emitted when a reasoning text is completed.

content_index: number

The index of the reasoning content part.

item_id: string

The ID of the item this reasoning text is associated with.

output_index: number

The index of the output item this reasoning text is associated with.

sequence_number: number

The sequence number of this event.

text: string

The full text of the completed reasoning content.

type: "response.reasoning_text.done"

The type of the event. Always response.reasoning_text.done.

ResponseRefusalDeltaEvent object { content_index, delta, item_id, 3 more }

Emitted when there is a partial refusal text.

content_index: number

The index of the content part that the refusal text is added to.

delta: string

The refusal text that is added.

item_id: string

The ID of the output item that the refusal text is added to.

output_index: number

The index of the output item that the refusal text is added to.

sequence_number: number

The sequence number of this event.

type: "response.refusal.delta"

The type of the event. Always response.refusal.delta.

ResponseRefusalDoneEvent object { content_index, item_id, output_index, 3 more }

Emitted when refusal text is finalized.

content_index: number

The index of the content part that the refusal text is finalized.

item_id: string

The ID of the output item that the refusal text is finalized.

output_index: number

The index of the output item that the refusal text is finalized.

refusal: string

The refusal text that is finalized.

sequence_number: number

The sequence number of this event.

type: "response.refusal.done"

The type of the event. Always response.refusal.done.

ResponseTextDeltaEvent object { content_index, delta, item_id, 4 more }

Emitted when there is an additional text delta.

content_index: number

The index of the content part that the text delta was added to.

delta: string

The text delta that was added.

item_id: string

The ID of the output item that the text delta was added to.

logprobs: array of object { token, logprob, top_logprobs }

The log probabilities of the tokens in the delta.

logprob: number

The log probability of this token.

top_logprobs: optional array of object { token, logprob }

The log probabilities of up to 20 of the most likely tokens.

logprob: optional number

The log probability of this token.

output_index: number

The index of the output item that the text delta was added to.

sequence_number: number

The sequence number for this event.

type: "response.output_text.delta"

The type of the event. Always response.output_text.delta.

ResponseTextDoneEvent object { content_index, item_id, logprobs, 4 more }

Emitted when text content is finalized.

content_index: number

The index of the content part that the text content is finalized.

item_id: string

The ID of the output item that the text content is finalized.

logprobs: array of object { token, logprob, top_logprobs }

The log probabilities of the tokens in the delta.

logprob: number

The log probability of this token.

top_logprobs: optional array of object { token, logprob }

The log probabilities of up to 20 of the most likely tokens.

logprob: optional number

The log probability of this token.

output_index: number

The index of the output item that the text content is finalized.

sequence_number: number

The sequence number for this event.

text: string

The text content that is finalized.

type: "response.output_text.done"

The type of the event. Always response.output_text.done.

ResponseWebSearchCallCompletedEvent object { item_id, output_index, sequence_number, type }

Emitted when a web search call is completed.

item_id: string

Unique ID for the output item associated with the web search call.

output_index: number

The index of the output item that the web search call is associated with.

sequence_number: number

The sequence number of the web search call being processed.

type: "response.web_search_call.completed"

The type of the event. Always response.web_search_call.completed.

ResponseWebSearchCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when a web search call is initiated.

item_id: string

Unique ID for the output item associated with the web search call.

output_index: number

The index of the output item that the web search call is associated with.

sequence_number: number

The sequence number of the web search call being processed.

type: "response.web_search_call.in_progress"

The type of the event. Always response.web_search_call.in_progress.

ResponseWebSearchCallSearchingEvent object { item_id, output_index, sequence_number, type }

Emitted when a web search call is executing.

item_id: string

Unique ID for the output item associated with the web search call.

output_index: number

The index of the output item that the web search call is associated with.

sequence_number: number

The sequence number of the web search call being processed.

type: "response.web_search_call.searching"

The type of the event. Always response.web_search_call.searching.

ResponseImageGenCallCompletedEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.image_generation_call.completed"

The type of the event. Always ‘response.image_generation_call.completed’.

ResponseImageGenCallGeneratingEvent object { item_id, output_index, sequence_number, type }

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

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of the image generation item being processed.

type: "response.image_generation_call.generating"

The type of the event. Always ‘response.image_generation_call.generating’.

ResponseImageGenCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when an image generation tool call is in progress.

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of the image generation item being processed.

type: "response.image_generation_call.in_progress"

The type of the event. Always ‘response.image_generation_call.in_progress’.

ResponseImageGenCallPartialImageEvent object { item_id, output_index, partial_image_b64, 7 more }

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

item_id: string

The unique identifier of the image generation item being processed.

output_index: number

The index of the output item in the response’s output array.

partial_image_b64: string

Base64-encoded partial image data, suitable for rendering as an image.

partial_image_index: number

0-based index for the partial image (backend is 1-based, but this is 0-based for the user).

sequence_number: number

The sequence number of the image generation item being processed.

type: "response.image_generation_call.partial_image"

The type of the event. Always ‘response.image_generation_call.partial_image’.

background: optional string

The background setting that was used.

output_format: optional string

The output format that was used.

quality: optional string

The image quality that was used.

size: optional string

The image size that was used.

ResponseMcpCallArgumentsDeltaEvent object { delta, item_id, output_index, 2 more }

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

delta: string

A JSON string containing the partial update to the arguments for the MCP tool call.

item_id: string

The unique identifier of the MCP tool call item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call_arguments.delta"

The type of the event. Always ‘response.mcp_call_arguments.delta’.

ResponseMcpCallArgumentsDoneEvent object { arguments, item_id, output_index, 2 more }

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

arguments: string

A JSON string containing the finalized arguments for the MCP tool call.

item_id: string

The unique identifier of the MCP tool call item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call_arguments.done"

The type of the event. Always ‘response.mcp_call_arguments.done’.

ResponseMcpCallCompletedEvent object { item_id, output_index, sequence_number, type }

Emitted when an MCP tool call has completed successfully.

item_id: string

The ID of the MCP tool call item that completed.

output_index: number

The index of the output item that completed.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call.completed"

The type of the event. Always ‘response.mcp_call.completed’.

ResponseMcpCallFailedEvent object { item_id, output_index, sequence_number, type }

Emitted when an MCP tool call has failed.

item_id: string

The ID of the MCP tool call item that failed.

output_index: number

The index of the output item that failed.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call.failed"

The type of the event. Always ‘response.mcp_call.failed’.

ResponseMcpCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when an MCP tool call is in progress.

item_id: string

The unique identifier of the MCP tool call item being processed.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.mcp_call.in_progress"

The type of the event. Always ‘response.mcp_call.in_progress’.

ResponseOutputTextAnnotationAddedEvent object { annotation, annotation_index, content_index, 4 more }

Emitted when an annotation is added to output text content.

annotation: object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type } or null

An annotation that applies to a span of output text.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

annotation_index: number

The index of the annotation within the content part.

content_index: number

The index of the content part within the output item.

item_id: string

The unique identifier of the item to which the annotation is being added.

output_index: number

The index of the output item in the response’s output array.

sequence_number: number

The sequence number of this event.

type: "response.output_text.annotation.added"

The type of the event. Always ‘response.output_text.annotation.added’.

ResponseQueuedEvent object { response, sequence_number, type }

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

response: Response { id, created_at, error, 33 more }

The full response object that is queued.

sequence_number: number

The sequence number for this event.

type: "response.queued"

The type of the event. Always ‘response.queued’.

ResponseTextConfig object { format, verbosity }

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.

verbosity: optional "low" or "medium" or "high" or null

Constrains the verbosity of the model’s response. Lower values will result in more concise responses, while higher values will result in more verbose responses. Currently supported values are low, medium, and high. The default is medium.

ResponseTextDeltaEvent object { content_index, delta, item_id, 4 more }

Emitted when there is an additional text delta.

content_index: number

The index of the content part that the text delta was added to.

delta: string

The text delta that was added.

item_id: string

The ID of the output item that the text delta was added to.

logprobs: array of object { token, logprob, top_logprobs }

The log probabilities of the tokens in the delta.

logprob: number

The log probability of this token.

top_logprobs: optional array of object { token, logprob }

The log probabilities of up to 20 of the most likely tokens.

logprob: optional number

The log probability of this token.

output_index: number

The index of the output item that the text delta was added to.

sequence_number: number

The sequence number for this event.

type: "response.output_text.delta"

The type of the event. Always response.output_text.delta.

ResponseTextDoneEvent object { content_index, item_id, logprobs, 4 more }

Emitted when text content is finalized.

content_index: number

The index of the content part that the text content is finalized.

item_id: string

The ID of the output item that the text content is finalized.

logprobs: array of object { token, logprob, top_logprobs }

The log probabilities of the tokens in the delta.

logprob: number

The log probability of this token.

top_logprobs: optional array of object { token, logprob }

The log probabilities of up to 20 of the most likely tokens.

logprob: optional number

The log probability of this token.

output_index: number

The index of the output item that the text content is finalized.

sequence_number: number

The sequence number for this event.

text: string

The text content that is finalized.

type: "response.output_text.done"

The type of the event. Always response.output_text.done.

ResponseUsage object { input_tokens, input_tokens_details, output_tokens, 2 more }

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

input_tokens: number

The number of input tokens.

input_tokens_details: object { cache_write_tokens, cached_tokens }

A detailed breakdown of the input tokens.

cache_write_tokens: number

The number of input tokens that were written to the cache.

output_tokens: number

The number of output tokens.

output_tokens_details: object { reasoning_tokens }

A detailed breakdown of the output tokens.

reasoning_tokens: number

The number of reasoning tokens.

total_tokens: number

The total number of tokens used.

ResponseWebSearchCallCompletedEvent object { item_id, output_index, sequence_number, type }

Emitted when a web search call is completed.

item_id: string

Unique ID for the output item associated with the web search call.

output_index: number

The index of the output item that the web search call is associated with.

sequence_number: number

The sequence number of the web search call being processed.

type: "response.web_search_call.completed"

The type of the event. Always response.web_search_call.completed.

ResponseWebSearchCallInProgressEvent object { item_id, output_index, sequence_number, type }

Emitted when a web search call is initiated.

item_id: string

Unique ID for the output item associated with the web search call.

output_index: number

The index of the output item that the web search call is associated with.

sequence_number: number

The sequence number of the web search call being processed.

type: "response.web_search_call.in_progress"

The type of the event. Always response.web_search_call.in_progress.

ResponseWebSearchCallSearchingEvent object { item_id, output_index, sequence_number, type }

Emitted when a web search call is executing.

item_id: string

Unique ID for the output item associated with the web search call.

output_index: number

The index of the output item that the web search call is associated with.

sequence_number: number

The sequence number of the web search call being processed.

type: "response.web_search_call.searching"

The type of the event. Always response.web_search_call.searching.

ResponsesClientEvent = object { type, background, context_management, 30 more } or ResponseSteerEvent { input, previous_response_id, type }

Client events accepted by the Responses WebSocket server.

One of the following:

ResponseCreate object { type, background, context_management, 30 more }

Client event for creating a response over a persistent WebSocket connection. This payload uses the same top-level fields as POST /v1/responses, plus WebSocket-only envelope metadata.

Notes:

  • stream is implicit over WebSocket and should not be sent.
  • background is not supported over WebSocket.
  • stream_id is WebSocket-only and is not part of POST /v1/responses.

type: "response.create"

The type of the client event. Always response.create.

background: optional boolean or null

Whether to run the model response in the background. Learn more.

context_management: optional array of object { type, compact_threshold } or null

Context management configuration for this request.

type: string

The context management entry type. Currently only ‘compaction’ is supported.

compact_threshold: optional number or null

Token threshold at which compaction should be triggered for this entry.

The conversation that this response belongs to. Items from this conversation are prepended to input_items for this response request. Input items and output items from this response are automatically added to this conversation after this response completes.

One of the following:

ConversationID = string

The unique ID of the conversation.

ResponseConversationParam object { id }

The conversation that this response belongs to.

id: string

The unique ID of the conversation.

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

  • 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).

One of the following:

"file_search_call.results"

"web_search_call.results"

"web_search_call.action.sources"

"message.input_image.image_url"

"computer_call_output.output.image_url"

"code_interpreter_call.outputs"

"reasoning.encrypted_content"

"message.output_text.logprobs"

input: optional string or array of EasyInputMessage { content, role, phase, type } or object { content, role, status, type } or ResponseOutputMessage { id, content, role, 3 more } or 30 more

One of the following:

TextInput = string

A text input to the model, equivalent to a text input with the user role.

InputItemList = array of EasyInputMessage { content, role, phase, type } or object { content, role, status, type } or ResponseOutputMessage { id, content, role, 3 more } or 30 more

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

One of the following:

EasyInputMessage object { content, role, phase, type }

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.

One of the following:

TextInput = string

A text input to the model.

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

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

role: "user" or "assistant" or "system" or "developer"

The role of the message input. One of user, assistant, system, or developer.

phase: optional "commentary" or "final_answer" or null

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.

type: optional "message"

The type of the message input. Always message.

Message object { content, role, status, type }

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.

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

role: "user" or "system" or "developer"

The role of the message input. One of user, system, or developer.

status: optional "in_progress" or "completed" or "incomplete"

The status of item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: optional "message"

The type of the message input. Always set to message.

ResponseOutputMessage object { id, content, role, 3 more }

An output message from the model.

id: string

The unique ID of the output message.

The content of the output message.

One of the following:

ResponseOutputText object { annotations, logprobs, text, type }

A text output from the model.

annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }

The annotations of the text output.

One of the following:

FileCitation object { file_id, filename, index, type }

filename: string

The filename of the file cited.

index: number

The index of the file in the list of files.

type: "file_citation"

The type of the file citation. Always file_citation.

URLCitation object { end_index, start_index, title, 2 more }

A citation for a web resource used to generate a model response.

end_index: number

The index of the last character of the URL citation in the message.

start_index: number

The index of the first character of the URL citation in the message.

title: string

The title of the web resource.

type: "url_citation"

The type of the URL citation. Always url_citation.

url: string

The URL of the web resource.

ContainerFileCitation object { container_id, end_index, file_id, 3 more }

A citation for a container file used to generate a model response.

container_id: string

The ID of the container file.

end_index: number

The index of the last character of the container file citation in the message.

filename: string

The filename of the container file cited.

start_index: number

The index of the first character of the container file citation in the message.

type: "container_file_citation"

The type of the container file citation. Always container_file_citation.

FilePath object { file_id, index, type }

index: number

The index of the file in the list of files.

type: "file_path"

The type of the file path. Always file_path.

logprobs: array of object { token, bytes, logprob, top_logprobs }

top_logprobs: array of object { token, bytes, logprob }

text: string

The text output from the model.

type: "output_text"

The type of the output text. Always output_text.

ResponseOutputRefusal object { refusal, type }

A refusal from the model.

refusal: string

The refusal explanation from the model.

type: "refusal"

The type of the refusal. Always refusal.

role: "assistant"

The role of the output message. Always assistant.

status: "in_progress" or "completed" or "incomplete"

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

type: "message"

The type of the output message. Always message.

phase: optional "commentary" or "final_answer" or null

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.

FileSearchCall object { id, queries, status, 2 more }

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

id: string

The unique ID of the file search tool call.

queries: array of string

The queries used to search for files.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the file search tool call. One of in_progress, searching, incomplete or failed,

type: "file_search_call"

The type of the file search tool call. Always file_search_call.

results: optional array of object { attributes, file_id, filename, 2 more } or null

The results of the file search tool call.

attributes: optional map[string or number or boolean] or null

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.

file_id: optional string

The unique ID of the file.

filename: optional string

score: optional number

The relevance score of the file - a value between 0 and 1.

text: optional string

The text that was retrieved from the file.

ComputerCall object { id, call_id, pending_safety_checks, 4 more }

id: string

The unique ID of the computer call.

call_id: string

An identifier used when responding to the tool call with output.

pending_safety_checks: array of object { id, code, message }

The pending safety checks for the computer call.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

type: "computer_call"

The type of the computer call. Always computer_call.

actions: optional ComputerActionList { Click, DoubleClick, Drag, 6 more }

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

ComputerCallOutput object { call_id, output, type, 3 more }

The output of a computer tool call.

call_id: string

The ID of the computer tool call that produced the output.

A computer screenshot image used with the computer use tool.

type: "computer_call_output"

The type of the computer tool call output. Always computer_call_output.

id: optional string or null

The ID of the computer tool call output.

acknowledged_safety_checks: optional array of object { id, code, message } or null

The safety checks reported by the API that have been acknowledged by the developer.

id: string

The ID of the pending safety check.

code: optional string or null

The type of the pending safety check.

message: optional string or null

Details about the pending safety check.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the message input. One of in_progress, completed, or incomplete. Populated when input items are returned via API.

WebSearchCall object { id, action, status, type }

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

id: string

The unique ID of the web search tool call.

action: object { type, queries, query, sources } or object { type, url } or object { pattern, type, url }

An object describing the specific action taken in this web search call. Includes details on how the model used the web (search, open_page, find_in_page).

One of the following:

Search object { type, queries, query, sources }

Action type “search” - Performs a web search query.

queries: optional array of string

Deprecatedquery: optional string

sources: optional array of object { type, url }

The sources used in the search.

type: "url"

The type of source. Always url.

OpenPage object { type, url }

Action type “open_page” - Opens a specific URL from search results.

url: optional string or null

The URL opened by the model.

FindInPage object { pattern, type, url }

Action type “find_in_page”: Searches for a pattern within a loaded page.

pattern: string

The pattern or text to search for within the page.

url: string

The URL of the page searched for the pattern.

status: "in_progress" or "searching" or "completed" or 2 more

The status of the web search tool call.

type: "web_search_call"

The type of the web search tool call. Always web_search_call.

FunctionCall object { arguments, call_id, name, 6 more }

arguments: string

A JSON string of the arguments to pass to the function.

call_id: string

The unique ID of the function tool call generated by the model.

name: string

The name of the function to run.

type: "function_call"

The type of the function tool call. Always function_call.

id: optional string

The unique ID of the function tool call.

async: optional boolean

Whether the function tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the function to run.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

FunctionCallOutput object { output, type, id, 5 more }

The output of a function tool call.

Text, image, or file output of the function tool call.

One of the following:

string

A JSON string of the output of the function tool call.

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

One of the following:

ResponseInputTextContent object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImageContent object { type, detail, file_id, 2 more }

type: "input_image"

The type of the input item. Always input_image.

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

maxLength20971520

formaturi

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFileContent object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string or null

The base64-encoded data of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string or null

The URL of the file to be sent to the model.

filename: optional string or null

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode } or null

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "function_call_output"

The type of the function tool call output. Always function_call_output.

id: optional string or null

The unique ID of the function tool call output. Populated when this item is returned via API.

call_id: optional string or null

The unique ID of the function tool call generated by the model.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

name: optional string or null

The name of the tool that produced the output.

namespace: optional string or null

The namespace of the tool that produced the output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

ToolSearchCall object { arguments, type, id, 3 more }

arguments: unknown

The arguments supplied to the tool search call.

type: "tool_search_call"

The item type. Always tool_search_call.

id: optional string or null

The unique ID of this tool search call.

call_id: optional string or null

The unique ID of the tool search call generated by the model.

execution: optional "server" or "client"

Whether tool search was executed by the server or by the client.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the tool search call.

ToolSearchOutput object { tools, type, id, 3 more }

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "tool_search_output"

The item type. Always tool_search_output.

id: optional string or null

The unique ID of this tool search output.

call_id: optional string or null

The unique ID of the tool search call generated by the model.

execution: optional "server" or "client"

Whether tool search was executed by the server or by the client.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the tool search output.

AdditionalTools object { role, tools, type, id }

role: "developer"

The role that provided the additional tools. Only developer is supported.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

type: "additional_tools"

The item type. Always additional_tools.

id: optional string or null

The unique ID of this additional tools item.

ConfigurationUpdate object { type, id, reasoning }

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: "configuration_update"

The item type. Always configuration_update.

id: optional string or null

The unique ID of the configuration update item.

reasoning: optional object { effort }

Updates to reasoning configuration. Only effort is supported.

The reasoning effort to use for subsequent responses until another configuration update replaces it.

Reasoning object { id, summary, type, 3 more }

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.

id: string

The unique identifier of the reasoning content.

Reasoning summary content.

text: string

A summary of the reasoning output from the model so far.

type: "summary_text"

The type of the object. Always summary_text.

type: "reasoning"

The type of the object. Always reasoning.

content: optional array of object { text, type }

text: string

The reasoning text from the model.

type: "reasoning_text"

The type of the reasoning text. Always reasoning_text.

encrypted_content: optional string or null

The encrypted content of the reasoning item. This is populated by default for reasoning items returned by POST /v1/responses and WebSocket response.create requests.

When streaming, use the completed reasoning item and its encrypted_content from the response.output_item.done event in subsequent requests. The encrypted_content in response.output_item.added may be incomplete. This is especially important when store is false or when using Zero Data Retention.

status: optional "in_progress" or "completed" or "incomplete"

The status of the item. One of in_progress, completed, or incomplete. Populated when items are returned via API.

Compaction object { encrypted_content, type, id }

encrypted_content: string

The encrypted content of the compaction summary.

type: "compaction"

The type of the item. Always compaction.

id: optional string or null

The ID of the compaction item.

ImageGenerationCall object { id, result, status, type }

An image generation request made by the model.

id: string

The unique ID of the image generation call.

result: string or null

The generated image encoded in base64.

status: "in_progress" or "completed" or "generating" or "failed"

The status of the image generation call.

type: "image_generation_call"

The type of the image generation call. Always image_generation_call.

CodeInterpreterCall object { id, code, container_id, 3 more }

id: string

The unique ID of the code interpreter tool call.

code: string or null

The code to run, or null if not available.

container_id: string

The ID of the container used to run the code.

outputs: array of object { logs, type } or object { type, url } or null

The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.

One of the following:

Logs object { logs, type }

The logs output from the code interpreter.

logs: string

The logs output from the code interpreter.

type: "logs"

The type of the output. Always logs.

Image object { type, url }

The image output from the code interpreter.

type: "image"

The type of the output. Always image.

url: string

The URL of the image output from the code interpreter.

status: "in_progress" or "completed" or "incomplete" or 2 more

The status of the code interpreter tool call. Valid values are in_progress, completed, incomplete, interpreting, and failed.

type: "code_interpreter_call"

The type of the code interpreter tool call. Always code_interpreter_call.

LocalShellCall object { id, action, call_id, 2 more }

A tool call to run a command on the local shell.

id: string

The unique ID of the local shell call.

action: object { command, env, type, 3 more }

Execute a shell command on the server.

env: map[string]

Environment variables to set for the command.

type: "exec"

The type of the local shell action. Always exec.

timeout_ms: optional number or null

Optional timeout in milliseconds for the command.

user: optional string or null

Optional user to run the command as.

working_directory: optional string or null

Optional working directory to run the command in.

call_id: string

The unique ID of the local shell tool call generated by the model.

status: "in_progress" or "completed" or "incomplete"

The status of the local shell call.

type: "local_shell_call"

The type of the local shell call. Always local_shell_call.

LocalShellCallOutput object { id, output, type, status }

The output of a local shell tool call.

id: string

The unique ID of the local shell tool call generated by the model.

output: string

A JSON string of the output of the local shell tool call.

type: "local_shell_call_output"

The type of the local shell tool call output. Always local_shell_call_output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the item. One of in_progress, completed, or incomplete.

ShellCall object { action, call_id, type, 4 more }

A tool representing a request to execute one or more shell commands.

action: object { commands, max_output_length, timeout_ms }

The shell commands and limits that describe how to run the tool call.

commands: array of string

Ordered shell commands for the execution environment to run.

max_output_length: optional number or null

Maximum number of UTF-8 characters to capture from combined stdout and stderr output.

timeout_ms: optional number or null

Maximum wall-clock time in milliseconds to allow the shell commands to run.

call_id: string

The unique ID of the shell tool call generated by the model.

type: "shell_call"

The type of the item. Always shell_call.

id: optional string or null

The unique ID of the shell tool call. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

The environment to execute the shell commands in.

One of the following:

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the shell call. One of in_progress, completed, or incomplete.

ShellCallOutput object { call_id, output, type, 4 more }

The streamed output items emitted by a shell tool call.

call_id: string

The unique ID of the shell tool call generated by the model.

Captured chunks of stdout and stderr output, along with their associated outcomes.

outcome: object { type } or object { exit_code, type }

The exit or timeout outcome associated with this shell call.

One of the following:

Timeout object { type }

Indicates that the shell call exceeded its configured time limit.

type: "timeout"

The outcome type. Always timeout.

Exit object { exit_code, type }

Indicates that the shell commands finished and returned an exit code.

exit_code: number

The exit code returned by the shell process.

type: "exit"

The outcome type. Always exit.

stderr: string

Captured stderr output for the shell call.

stdout: string

Captured stdout output for the shell call.

type: "shell_call_output"

The type of the item. Always shell_call_output.

id: optional string or null

The unique ID of the shell tool call output. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

max_output_length: optional number or null

The maximum number of UTF-8 characters captured for this shell call’s combined output.

status: optional "in_progress" or "completed" or "incomplete" or null

The status of the shell call output.

ApplyPatchCall object { call_id, operation, status, 3 more }

A tool call representing a request to create, delete, or update files using diff patches.

call_id: string

The unique ID of the apply patch tool call generated by the model.

operation: object { diff, path, type } or object { path, type } or object { diff, path, type }

The specific create, delete, or update instruction for the apply_patch tool call.

One of the following:

CreateFile object { diff, path, type }

Instruction for creating a new file via the apply_patch tool.

diff: string

Unified diff content to apply when creating the file.

path: string

Path of the file to create relative to the workspace root.

type: "create_file"

The operation type. Always create_file.

DeleteFile object { path, type }

Instruction for deleting an existing file via the apply_patch tool.

path: string

Path of the file to delete relative to the workspace root.

type: "delete_file"

The operation type. Always delete_file.

UpdateFile object { diff, path, type }

Instruction for updating an existing file via the apply_patch tool.

diff: string

Unified diff content to apply to the existing file.

path: string

Path of the file to update relative to the workspace root.

type: "update_file"

The operation type. Always update_file.

status: "in_progress" or "completed"

The status of the apply patch tool call. One of in_progress or completed.

type: "apply_patch_call"

The type of the item. Always apply_patch_call.

id: optional string or null

The unique ID of the apply patch tool call. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

ApplyPatchCallOutput object { call_id, status, type, 3 more }

The streamed output emitted by an apply patch tool call.

call_id: string

The unique ID of the apply patch tool call generated by the model.

status: "completed" or "failed"

The status of the apply patch tool call output. One of completed or failed.

type: "apply_patch_call_output"

The type of the item. Always apply_patch_call_output.

id: optional string or null

The unique ID of the apply patch tool call output. Populated when this item is returned via API.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

output: optional string or null

Optional human-readable log text from the apply patch tool (e.g., patch results or errors).

McpListTools object { id, server_label, tools, 2 more }

A list of tools available on an MCP server.

id: string

The unique ID of the list.

server_label: string

The label of the MCP server.

type: "mcp_list_tools"

The type of the item. Always mcp_list_tools.

error: optional string or null

Error message if the server could not list tools.

McpApprovalRequest object { id, arguments, name, 2 more }

A request for human approval of a tool invocation.

id: string

The unique ID of the approval request.

arguments: string

A JSON string of arguments for the tool.

name: string

The name of the tool to run.

server_label: string

The label of the MCP server making the request.

type: "mcp_approval_request"

The type of the item. Always mcp_approval_request.

McpApprovalResponse object { approval_request_id, approve, type, 2 more }

A response to an MCP approval request.

approval_request_id: string

The ID of the approval request being answered.

approve: boolean

Whether the request was approved.

type: "mcp_approval_response"

The type of the item. Always mcp_approval_response.

id: optional string or null

The unique ID of the approval response

reason: optional string or null

Optional reason for the decision.

McpCall object { id, arguments, name, 6 more }

An invocation of a tool on an MCP server.

id: string

The unique ID of the tool call.

arguments: string

A JSON string of the arguments passed to the tool.

name: string

The name of the tool that was run.

server_label: string

The label of the MCP server running the tool.

type: "mcp_call"

The type of the item. Always mcp_call.

approval_request_id: optional string or null

Unique identifier for the MCP tool call approval request. Include this value in a subsequent mcp_approval_response input to approve or reject the corresponding tool call.

The error from the tool call, if any.

output: optional string or null

The output from the tool call.

status: optional "in_progress" or "completed" or "incomplete" or 2 more

The status of the tool call. One of in_progress, completed, incomplete, calling, or failed.

CustomToolCallOutput object { call_id, output, type, 2 more }

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

call_id: string

The call ID, used to map this custom tool call output to a custom tool call.

The output from the custom tool call generated by your code. Can be a string or an list of output content.

One of the following:

StringOutput = string

A string of the output of the custom tool call.

Text, image, or file output of the custom tool call.

One of the following:

ResponseInputText object { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage object { detail, type, file_id, 2 more }

The detail level of the image to be sent to the model. One of high, low, auto, or original. Defaults to auto.

type: "input_image"

The type of the input item. Always input_image.

file_id: optional string or null

The ID of the file to be sent to the model.

image_url: optional string or null

The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile object { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail: optional "auto" or "low" or "high"

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.

file_data: optional string

The content of the file to be sent to the model.

file_id: optional string or null

The ID of the file to be sent to the model.

file_url: optional string

The URL of the file to be sent to the model.

filename: optional string

The name of the file to be sent to the model.

prompt_cache_breakpoint: optional object { mode }

Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request’s prompt_cache_options.ttl; the boundary is not rounded to a token block.

mode: "explicit"

The breakpoint mode. Always explicit.

type: "custom_tool_call_output"

The type of the custom tool call output. Always custom_tool_call_output.

id: optional string

The unique ID of the custom tool call output in the OpenAI platform.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

type: "direct"

The caller type. Always direct.

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

type: "program"

The caller type. Always program.

CustomToolCall object { call_id, input, name, 5 more }

A call to a custom tool created by the model.

call_id: string

An identifier used to map this custom tool call to a tool call output.

input: string

The input for the custom tool call generated by the model.

name: string

The name of the custom tool being called.

type: "custom_tool_call"

The type of the custom tool call. Always custom_tool_call.

id: optional string

The unique ID of the custom tool call in the OpenAI platform.

async: optional boolean

Whether the custom tool call runs asynchronously.

caller: optional object { type } or object { caller_id, type } or null

The execution context that produced this tool call.

One of the following:

Program object { caller_id, type }

caller_id: string

The call ID of the program item that produced this tool call.

namespace: optional string

The namespace of the custom tool being called.

CompactionTrigger object { type, id }

Compacts the current context. Must be the final input item.

type: "compaction_trigger"

The type of the item. Always compaction_trigger.

id: optional string or null

The unique ID of this compaction trigger.

ItemReference object { id, type }

An internal identifier for an item to reference.

id: string

The ID of the item to reference.

type: optional "item_reference" or null

The type of item to reference. Always item_reference.

Program object { id, call_id, code, 2 more }

id: string

The unique ID of this program item.

call_id: string

The stable call ID of the program item.

code: string

The JavaScript source executed by programmatic tool calling.

fingerprint: string

Opaque program replay fingerprint that must be round-tripped.

type: "program"

The item type. Always program.

ProgramOutput object { id, call_id, result, 2 more }

id: string

The unique ID of this program output item.

call_id: string

The call ID of the program item.

result: string

The result produced by the program item.

status: "completed" or "incomplete"

The terminal status of the program output.

type: "program_output"

The item type. Always program_output.

instructions: optional string or null

A system (or developer) message inserted into the model’s context.

When using along with previous_response_id, the instructions from a previous response will not be carried over to the next response. This makes it simple to swap out system (or developer) messages in new responses.

max_output_tokens: optional number or null

An upper bound for the number of tokens that can be generated for a response, including visible output tokens and reasoning tokens.

Model ID used to generate the response, like gpt-6-astra. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the model guide to browse and compare available models.

moderation: optional object { model, policy } or null

Configuration for running moderation on the input and output of this response.

model: string

The moderation model to use for moderated completions, e.g. ‘omni-moderation-latest’.

policy: optional object { input, output } or null

The policy to apply to moderated response input and output.

input: optional object { mode } or null

The moderation policy for the response input.

output: optional object { mode } or null

The moderation policy for the response output.

previous_response_id: optional string or null

The unique ID of the previous response to the model. Use this to create multi-turn conversations. Learn more about conversation state. Cannot be used in conjunction with conversation.

prompt: optional ResponsePrompt { id, variables, version } or null

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

prompt_cache_key: optional string or null

Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the user field. Learn more.

prompt_cache_options: optional object { comparison_response_id, mode, ttl }

Options for prompt caching. Supported for gpt-5.6 and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with prompt_cache_breakpoint. Each request can write up to four breakpoints. For cache matching, OpenAI considers up to the latest 80 breakpoints in the conversation, without a content-block lookback limit. Set mode to explicit to disable the implicit breakpoint. The ttl defaults to 30m, which is currently the only supported value. See the prompt caching guide for current details.

comparison_response_id: optional string or null

The ID of a response to compare when diagnosing prompt cache reuse. Supplying this field requests prompt cache diagnostics when the feature is enabled.

mode: optional "implicit" or "explicit"

Controls whether OpenAI automatically creates an implicit cache breakpoint. Defaults to implicit. With implicit, OpenAI creates one implicit breakpoint and writes up to the latest three explicit breakpoints in the request. With explicit, OpenAI does not create an implicit breakpoint and writes up to the latest four explicit breakpoints. If there are no explicit breakpoints, the request does not use prompt caching.

ttl: optional "30m"

The minimum lifetime applied to every implicit and explicit cache breakpoint written by the request. Defaults to 30m, which is currently the only supported value. The backend may retain cache entries for longer.

Deprecatedprompt_cache_retention: optional "in_memory" or "24h" or null

Deprecated. Use prompt_cache_options.ttl instead.

The retention policy for the prompt cache. Set to 24h to enable extended prompt caching, which keeps cached prefixes active for longer, up to a maximum of 24 hours. Learn more. This field expresses a maximum retention policy, while prompt_cache_options.ttl expresses a minimum cache lifetime. The two fields are independent and do not interact. For gpt-5.5, gpt-5.5-pro, and future models, only 24h is supported.

For older models that support both in_memory and 24h, the default depends on your organization’s data retention policy:

  • Organizations without ZDR enabled default to 24h.
  • Organizations with ZDR enabled default to in_memory when prompt_cache_retention is not specified.

reasoning: optional Reasoning { context, effort, generate_summary, 2 more } or null

safety_identifier: optional string or null

A stable identifier used to help detect users of your application that may be violating OpenAI’s usage policies. The IDs should be a string that uniquely identifies each user, with a maximum length of 64 characters. We recommend hashing their username or email address, in order to avoid sending us any identifying information. Learn more.

Specifies the processing type used for serving the request.

  • If set to ‘auto’, then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use ‘default’.
  • If set to ‘default’, then the request will be processed with the standard pricing and performance for the selected model.
  • If set to ‘flex’, then the request will be processed with the Flex Processing service tier.
  • To opt-in to Fast mode at the request level, include the service_tier=fast or service_tier=priority parameter for Responses or Chat Completions. The response will show service_tier=priority regardless of if you specify service_tier=fast or priority in your request.
  • If set to ‘ultrafast’, then the request will be processed with the access-controlled Ultrafast Processing service tier. This tier is currently available for gpt-5.6-sol; a response served through it will show service_tier=ultrafast.
  • When not set, the default behavior is ‘auto’.

When the service_tier parameter is set, the response body will include the service_tier value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter.

store: optional boolean or null

Whether to store the generated model response for later retrieval via API. Defaults to true when omitted. If set to true, response data will be stored for at least 30 days, subject to the data retention exceptions.

stream: optional boolean or null

stream_id: optional string

The WebSocket lane for this response. Requests with the same stream_id are processed FIFO, and events for the response echo the same stream_id.

stream_id controls routing; previous_response_id controls conversation lineage, so a new lane can fork from a response created on another lane.

stream_options: optional object { include_obfuscation } or null

Options for streaming responses. Only set this when you set stream: true.

include_obfuscation: optional boolean

When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an obfuscation field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set include_obfuscation to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API.

temperature: optional number or null

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both.

One of the following:

allowed_domains: optional array of string or null

Allowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.

Example: ["pubmed.ncbi.nlm.nih.gov"]

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

One of the following:

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

One of the following:

ContainerAuto object { type, file_ids, memory_limit, 2 more }

type: "container_auto"

Automatically creates a container for this request

file_ids: optional array of string

An optional list of uploaded files to make available to your code.

memory_limit: optional "1g" or "4g" or "16g" or "64g" or null

The memory limit for the container.

Network access policy for the container.

One of the following:

ContainerNetworkPolicyDisabled object { type }

type: "disabled"

Disable outbound network access. Always disabled.

ContainerNetworkPolicyAllowlist object { allowed_domains, type, domain_secrets }

allowed_domains: array of string

A list of allowed domains when type is allowlist.

type: "allowlist"

Allow outbound network access only to specified domains. Always allowlist.

Optional domain-scoped secrets for allowlisted domains.

domain: string

The domain associated with the secret.

name: string

The name of the secret to inject for the domain.

value: string

The secret value to inject for the domain.

minLength1

maxLength10485760

skills: optional array of SkillReference { skill_id, type, version } or InlineSkill { description, name, source, type }

An optional list of skills referenced by id or inline data.

One of the following:

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.

InlineSkill object { description, name, source, type }

description: string

The description of the skill.

type: "inline"

Defines an inline skill for this request.

LocalEnvironment object { type, skills }

type: "local"

Use a local computer environment.

skills: optional array of LocalSkill { description, name, path }

An optional list of skills.

description: string

The description of the skill.

path: string

The path to the directory containing the skill.

ContainerReference object { container_id, type }

container_id: string

The ID of the referenced container.

type: "container_reference"

References a container created with the /v1/containers endpoint

search_content_types: optional array of "text" or "image"

search_context_size: optional "low" or "medium" or "high"

High level guidance for the amount of context window space to use for the search. One of low, medium, or high. medium is the default.

top_logprobs: optional number or null

An integer between 0 and 20 specifying the maximum number of most likely tokens to return at each token position, each with an associated log probability. In some cases, the number of returned tokens may be fewer than requested.

top_p: optional number or null

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.

We generally recommend altering this or temperature but not both.

Deprecatedtruncation: optional "auto" or "disabled" or null

The truncation strategy to use for the model response.

  • auto: If the input to this Response exceeds the model’s context window size, the model will truncate the response to fit the context window by dropping items from the beginning of the conversation.
  • disabled (default): If the input size will exceed the context window size for a model, the request will fail with a 400 error.

Deprecateduser: optional string

This field is being replaced by safety_identifier and prompt_cache_key. Use prompt_cache_key instead to maintain caching optimizations. A stable identifier for your end-users. Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. Learn more.

ResponseSteerEvent object { input, previous_response_id, type }

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.

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.

previous_response_id: string

The ID of the response to steer on this WebSocket connection.

type: "response.steer"

The event discriminator. Always response.steer.

Server events emitted by the Responses WebSocket server.

One of the following:

Emitted when there is a partial audio response.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when the audio response is complete.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when there is a partial transcript of audio.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when the full audio transcript is completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when the code interpreter call is completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a code interpreter call is in progress.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when the model response is complete.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a new content part is added.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a content part is done.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

An event that is emitted when a response is created.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a file search call is initiated.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a file search is currently searching.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when function-call arguments are finalized.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

A streaming event that indicated a shell command was completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

A streaming event that indicated shell call output was completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when the response is in progress.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

An event that is emitted when a response fails.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a new output item is added.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when an output item is marked done.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a new reasoning summary part is added.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a reasoning summary part is completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a reasoning summary text is completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a delta is added to a reasoning text.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a reasoning text is completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when there is a partial refusal text.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

ResponseRefusalWsDone = ResponseRefusalDoneEvent { content_index, item_id, output_index, 3 more }

Emitted when refusal text is finalized.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when there is an additional text delta.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

ResponseTextWsDone = ResponseTextDoneEvent { content_index, item_id, logprobs, 4 more }

Emitted when text content is finalized.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a web search call is completed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a web search call is initiated.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when a web search call is executing.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when an image generation tool call is in progress.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when an MCP tool call has completed successfully.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when an MCP tool call has failed.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when an MCP tool call is in progress.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

Emitted when an annotation is added to output text content.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

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

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

ResponseWsError object { error, type, sequence_number, 2 more }

Emitted when an error occurs while processing a Responses WebSocket request.

error: object { code, message, param, 3 more }

code: string or null

The error code that was emitted, if any.

message: string

The human-readable error message that was emitted.

param: string or null

The parameter name that was associated with the error, if any.

type: string

The error type that was emitted.

misalignment: optional object { detailed_explanation, error_type, steer }

detailed_explanation: optional string

The public explanation for this block.

error_type: optional string or "potentially_unintended_data_transfer" or "potentially_unintended_data_access" or "potentially_unintended_destructive_activity" or "other"

An optional classification; clients must accept additional values.

One of the following:

SafetyAlertErrorType = "potentially_unintended_data_transfer" or "potentially_unintended_data_access" or "potentially_unintended_destructive_activity" or "other"

An optional classification; clients must accept additional values.

One of the following:

"potentially_unintended_data_transfer"

"potentially_unintended_data_access"

"potentially_unintended_destructive_activity"

steer: optional object { message }

An optional public continuation instruction.

message: string

The public continuation instruction.

type: "error"

The type of the event. Always error.

sequence_number: optional number

The sequence number of an error emitted by the response stream.

status: optional number

The HTTP status code associated with a WebSocket protocol error.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the originating response.create event supplied a stream_id.

ResponseSteerAcceptedEvent object { sequence_number, steer, type, stream_id }

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.

sequence_number: number

The sequence number for this event.

steer: object { id, previous_response_id }

The accepted steering submission.

id: string

The ID assigned to the steering submission.

previous_response_id: string

The ID of the response being steered.

type: "response.steer.accepted"

The event discriminator. Always response.steer.accepted.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the target response’s response.create event supplied a stream_id.

ResponseSteerPendingEvent object { reason, required_input, sequence_number, 3 more }

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.

One of the following:

FunctionCallOutput object { call_id, name, type }

Supply output using the function tool call output input schema.

type: "function_call_output"

CustomToolCallOutput object { call_id, type }

Supply output using the custom tool call output input schema. The original custom tool call supplies the tool’s name.

type: "custom_tool_call_output"

ComputerCallOutput object { call_id, type }

Supply output using the computer tool call output input schema, including any required acknowledged_safety_checks.

type: "computer_call_output"

ShellCallOutput object { call_id, type }

Supply output using the shell tool call output input schema. Each output entry includes stdout, stderr, and outcome.

type: "shell_call_output"

ApplyPatchCallOutput object { call_id, type }

Supply status and optional output using the apply patch tool call output input schema.

type: "apply_patch_call_output"

ToolSearchOutput object { call_id, execution, type }

Supply tools using the tool search output input schema, retaining execution: "client".

type: "tool_search_output"

McpApprovalResponse object { approval_request_id, type }

Supply approve using the MCP approval response input schema. An optional reason can be supplied when denying the request. The original approval request identifies the tool and server.

approval_request_id: string

type: "mcp_approval_response"

sequence_number: number

The sequence number for this event.

steer: object { id, previous_response_id }

The steering submission that remains queued.

id: string

The ID assigned to the steering submission.

previous_response_id: string

The ID of the response being steered.

type: "response.steer.pending"

The event discriminator. Always response.steer.pending.

stream_id: optional string

The WebSocket lane that emitted this event. This field is present when the target response’s response.create event supplied a stream_id.

ResponseSteerFailedEvent object { error, sequence_number, steer, 2 more }

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.

error: object { code, message, type }

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.

message: string

A human-readable description of the error.

type: "invalid_request_error"

The error type. Always invalid_request_error.

sequence_number: number

The sequence number for this event.

steer: object { input, previous_response_id, id }

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.

previous_response_id: string

The ID of the response that was targeted for steering.

id: optional string

The ID assigned to the steering submission, if one was allocated.

type: "response.steer.failed"

The event discriminator. Always response.steer.failed.

stream_id: optional string

The WebSocket lane that emitted this event, when the target response is available and its response.create event supplied a stream_id.

ServiceTier = "auto" or "default" or "flex" or 4 more

Specifies the processing type used for serving the request.

  • If set to ‘auto’, then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use ‘default’.
  • If set to ‘default’, then the request will be processed with the standard pricing and performance for the selected model.
  • If set to ‘flex’, then the request will be processed with the Flex Processing service tier.
  • To opt-in to Fast mode at the request level, include the service_tier=fast or service_tier=priority parameter for Responses or Chat Completions. The response will show service_tier=priority regardless of if you specify service_tier=fast or priority in your request.
  • If set to ‘ultrafast’, then the request will be processed with the access-controlled Ultrafast Processing service tier. This tier is currently available for gpt-5.6-sol; a response served through it will show service_tier=ultrafast.
  • When not set, the default behavior is ‘auto’.

When the service_tier parameter is set, the response body will include the service_tier value based on the processing mode actually used to serve the request. This response value may be different from the value set in the parameter.

SkillReference object { skill_id, type, version }

skill_id: string

The ID of the referenced skill.

type: "skill_reference"

References a skill created with the /v1/skills endpoint.

version: optional string

Optional skill version. Use a positive integer or ‘latest’. Omit for default.