GET

/v1/schemas/openai/chat/responses/input_tokens

kind inputactivity chathash 43eead7d…extracted Nov 5, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

upstream-spec

Source trace
898eefefea6b5dc52da42f5628a64a0ffba65d850282e1cb59ab459f7e356f92
{
  "fetchedAt": 1793851833,
  "extractorVersion": "1",
  "verifiedAt": null
}

Request body

12 properties · 0 required · 199 $defs
propertytypedescriptionconstraints
modelstringModel ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the [model guide](https://developers.openai.com/api/docs/models) to browse …nullable
inputstring | InputItem[]Text, image, or file inputs to the model, used to generate a responsenullable
previous_response_idstringThe unique ID of the previous response to the model. Use this to create multi-turn conversations. Learn more about [conversation state](https://developers.openai.com/api/docs/guides/conversation-state). Cannot be used in conjunction with `conversation`.nullable
toolsTool[]An array of tools the model may call while generating a response. You can specify which tool to use by setting the `tool_choice` parameter.nullable
textResponseTextParamConfiguration options for a text response from the model. Can be plain text or structured JSON data. Learn more: - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text) - [Structured Outputs](https://developers.openai.com/api/docs/guide…nullable
reasoningReasoning**gpt-5 and o-series models only** Configuration options for [reasoning models](https://developers.openai.com/api/docs/guides/reasoning).nullable
truncationenumThe 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. - `…auto | disabled · deprecated
instructionsstringA system (or developer) message inserted into the model's context. When used 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) mess…nullable
personalitystring | enumA model-owned style preset to apply to this request. Omit this parameter to use the model's default style. Supported values may expand over time. Values must be at most 64 characters.
conversationstring | Conversation objectThe 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.nullable
tool_choiceenum | Allowed tools | Hosted tool | …Controls which tool the model should use, if any.nullable
parallel_tool_callsbooleanWhether to allow the model to run tool calls in parallel.nullable

Types

199 $defs

AdditionalToolsItemParamobject

idstringThe unique ID of this additional tools item.nullable
type*enumThe item type. Always `additional_tools`.additional_tools · default: "additional_tools"
role*enumThe role that provided the additional tools. Only `developer` is supported.developer · default: "developer"
tools*Tool[]A list of additional tools made available at this item.

AnnotationFile citation | URL citation | Container file citation | …

An annotation that applies to a span of output text.

ApplyPatchCallOutputStatusParamenum

Outcome values reported for apply_patch tool call outputs.

completed | failed

ApplyPatchCallStatusParamenum

Status values reported for apply_patch tool calls.

in_progress | completed

ApplyPatchCreateFileOperationParamobject

Instruction for creating a new file via the apply_patch tool.

type*enumThe operation type. Always `create_file`.create_file · default: "create_file"
path*stringPath of the file to create relative to the workspace root.length ≥ 1
diff*stringUnified diff content to apply when creating the file.length ≤ 10485760

ApplyPatchDeleteFileOperationParamobject

Instruction for deleting an existing file via the apply_patch tool.

type*enumThe operation type. Always `delete_file`.delete_file · default: "delete_file"
path*stringPath of the file to delete relative to the workspace root.length ≥ 1

ApplyPatchOperationParamApply patch create file operation | Apply patch delete file operation | Apply patch update file operation

One of the create_file, delete_file, or update_file operations supplied to the apply_patch tool.

ApplyPatchToolCallItemParamobject

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

type*enumThe type of the item. Always `apply_patch_call`.apply_patch_call · default: "apply_patch_call"
idstringThe unique ID of the apply patch tool call. Populated when this item is returned via API.nullable
call_id*stringThe unique ID of the apply patch tool call generated by the model.length ≥ 1 · length ≤ 64
callerobject | objectThe execution context that produced this tool call.nullable
status*enumThe status of the apply patch tool call. One of `in_progress` or `completed`.in_progress | completed
operation*Apply patch create file operation | Apply patch delete file operation | Apply patch update file operationThe specific create, delete, or update instruction for the apply_patch tool call.

ApplyPatchToolCallOutputItemParamobject

The streamed output emitted by an apply patch tool call.

type*enumThe type of the item. Always `apply_patch_call_output`.apply_patch_call_output · default: "apply_patch_call_output"
idstringThe unique ID of the apply patch tool call output. Populated when this item is returned via API.nullable
call_id*stringThe unique ID of the apply patch tool call generated by the model.length ≥ 1 · length ≤ 64
callerobject | objectThe execution context that produced this tool call.nullable
status*enumThe status of the apply patch tool call output. One of `completed` or `failed`.completed | failed
outputstringOptional human-readable log text from the apply patch tool (e.g., patch results or errors).length ≤ 10485760 · nullable

ApplyPatchToolParamobject

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

type*enumThe type of the tool. Always `apply_patch`.apply_patch · default: "apply_patch"
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable

ApplyPatchUpdateFileOperationParamobject

Instruction for updating an existing file via the apply_patch tool.

type*enumThe operation type. Always `update_file`.update_file · default: "update_file"
path*stringPath of the file to update relative to the workspace root.length ≥ 1
diff*stringUnified diff content to apply to the existing file.length ≤ 10485760

ApproximateLocationobject

type*enumThe type of location approximation. Always `approximate`.approximate · default: "approximate"
countrystringThe two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user, e.g. `US`.nullable
regionstringFree text input for the region of the user, e.g. `California`.nullable
citystringFree text input for the city of the user, e.g. `San Francisco`.nullable
timezonestringThe [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g. `America/Los_Angeles`.nullable

CallableToolAllowedCallerenum

direct | programmatic

ClickButtonTypeenum

left | right | wheel | back | forward

ClickParamobject

A click action.

type*enumSpecifies the event type. For a click action, this property is always `click`.click · default: "click"
button*enumIndicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`.left | right | wheel | back | forward
x*integerThe x-coordinate where the click occurred.
y*integerThe y-coordinate where the click occurred.
keysstring[]The keys being held while clicking.nullable

CodeInterpreterContainerAutoobject

Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on.

type*enumAlways `auto`.auto · default: "auto"
file_idsstring[]An optional list of uploaded files to make available to your code.items ≤ 50
memory_limitenumThe memory limit for the code interpreter container.1g | 4g | 16g | 64g · nullable
network_policyobject | objectNetwork access policy for the container.

CodeInterpreterOutputImageobject

The image output from the code interpreter.

type*enumThe type of the output. Always `image`.image · default: "image"
url*stringThe URL of the image output from the code interpreter.format: uri

CodeInterpreterOutputLogsobject

The logs output from the code interpreter.

type*enumThe type of the output. Always `logs`.logs · default: "logs"
logs*stringThe logs output from the code interpreter.

CodeInterpreterToolobject

A tool that runs Python code to help generate a response to a prompt.

type*enumThe type of the code interpreter tool. Always `code_interpreter`.code_interpreter
container*string | CodeInterpreterToolAutoThe code interpreter container. Can be a container ID or an object that specifies uploaded file IDs to make available to your code, along with an optional `memory_limit` setting.
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable

CodeInterpreterToolCallobject

A tool call to run code.

type*enumThe type of the code interpreter tool call. Always `code_interpreter_call`.code_interpreter_call · default: "code_interpreter_call"
id*stringThe unique ID of the code interpreter tool call.
status*enumThe status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`.in_progress | completed | incomplete | interpreting | failed
container_id*stringThe ID of the container used to run the code.
code*stringThe code to run, or null if not available.nullable
outputs*CodeInterpreterOutputLogs | CodeInterpreterOutputImage[]The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.nullable

CompactionSummaryItemParamobject

A compaction item generated by the [`v1/responses/compact` API](https://developers.openai.com/api/reference/resources/responses/methods/compact).

idstringThe ID of the compaction item.nullable
type*enumThe type of the item. Always `compaction`.compaction · default: "compaction"
encrypted_content*stringThe encrypted content of the compaction summary.length ≤ 104857600

CompactionTriggerItemParamobject

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

idstringThe unique ID of this compaction trigger.nullable
type*enumThe type of the item. Always `compaction_trigger`.compaction_trigger · default: "compaction_trigger"

ComparisonFilterobject

A filter used to compare a specified attribute key to a given value using a defined comparison operation.

type*enumSpecifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`. - `eq`: equals - `ne`: not equal - `gt`: greater than - `gte`: greater than or equal - `lt`: less than - `lte`: less than or equal - `in`: in - `nin`: not ineq | ne | gt | gte | lt | lte · +2 more · default: "eq"
key*stringThe key to compare against the value.
value*string | number | boolean | …The value to compare against the attribute key; supports string, number, or boolean types.

ComparisonFilterValueItemsstring | number

CompoundFilterobject

Combine multiple filters using `and` or `or`.

type*enumType of operation: `and` or `or`.and | or
filters*ComparisonFilter | any[]Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`.

ComputerActionClick | DoubleClick | Drag | …

ComputerActionListComputerAction[]

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

ComputerCallOutputItemParamobject

The output of a computer tool call.

idstringThe ID of the computer tool call output.nullable
call_id*stringThe ID of the computer tool call that produced the output.length ≥ 1 · length ≤ 64
type*enumThe type of the computer tool call output. Always `computer_call_output`.computer_call_output · default: "computer_call_output"
output*ComputerScreenshotImageA computer screenshot image used with the computer use tool.
acknowledged_safety_checksComputerCallSafetyCheckParam[]The safety checks reported by the API that have been acknowledged by the developer.nullable
statusenumThe status of the message input. One of `in_progress`, `completed`, or `incomplete`. Populated when input items are returned via API.in_progress | completed | incomplete · nullable

ComputerCallSafetyCheckParamobject

A pending safety check for the computer call.

id*stringThe ID of the pending safety check.
codestringThe type of the pending safety check.nullable
messagestringDetails about the pending safety check.nullable

ComputerEnvironmentenum

windows | mac | linux | ubuntu | browser

ComputerScreenshotImageobject

A computer screenshot image used with the computer use tool.

type*enumSpecifies the event type. For a computer screenshot, this property is always set to `computer_screenshot`.computer_screenshot · default: "computer_screenshot"
image_urlstringThe URL of the screenshot image.format: uri
file_idstringThe identifier of an uploaded file that contains the screenshot.

ComputerToolobject

A tool that controls a virtual computer. Learn more about the [computer tool](https://developers.openai.com/api/docs/guides/tools-computer-use).

type*enumThe type of the computer tool. Always `computer`.computer · default: "computer"

ComputerToolCallobject

A tool call to a computer use tool. See the [computer use guide](https://developers.openai.com/api/docs/guides/tools-computer-use) for more information.

type*enumThe type of the computer call. Always `computer_call`.computer_call · default: "computer_call"
id*stringThe unique ID of the computer call.
call_id*stringAn identifier used when responding to the tool call with output.
actionClick | DoubleClick | Drag | …
actionsComputerAction[]Flattened batched actions for `computer_use`. Each action includes an `type` discriminator and action-specific fields.
pending_safety_checks*ComputerCallSafetyCheckParam[]The pending safety checks for the computer call.
status*enumThe status of the item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API.in_progress | completed | incomplete

ComputerUsePreviewToolobject

A tool that controls a virtual computer. Learn more about the [computer tool](https://developers.openai.com/api/docs/guides/tools-computer-use).

type*enumThe type of the computer use tool. Always `computer_use_preview`.computer_use_preview · default: "computer_use_preview"
environment*enumThe type of computer environment to control.windows | mac | linux | ubuntu | browser
display_width*integerThe width of the computer display.
display_height*integerThe height of the computer display.

ContainerAutoParamobject

type*enumAutomatically creates a container for this requestcontainer_auto · default: "container_auto"
file_idsstring[]An optional list of uploaded files to make available to your code.items ≤ 50
memory_limitenumThe memory limit for the container.1g | 4g | 16g | 64g · nullable
network_policyobject | objectNetwork access policy for the container.
skillsSkillReferenceParam | InlineSkillParam[]An optional list of skills referenced by id or inline data.items ≤ 200

ContainerFileCitationBodyobject

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

type*enumThe type of the container file citation. Always `container_file_citation`.container_file_citation · default: "container_file_citation"
container_id*stringThe ID of the container file.
file_id*stringThe ID of the file.
start_index*integerThe index of the first character of the container file citation in the message.
end_index*integerThe index of the last character of the container file citation in the message.
filename*stringThe filename of the container file cited.

ContainerMemoryLimitenum

1g | 4g | 16g | 64g

ContainerNetworkPolicyAllowlistParamobject

type*enumAllow outbound network access only to specified domains. Always `allowlist`.allowlist · default: "allowlist"
allowed_domains*string[]A list of allowed domains when type is `allowlist`.items ≥ 1
domain_secretsContainerNetworkPolicyDomainSecretParam[]Optional domain-scoped secrets for allowlisted domains.items ≥ 1

ContainerNetworkPolicyDisabledParamobject

type*enumDisable outbound network access. Always `disabled`.disabled · default: "disabled"

ContainerNetworkPolicyDomainSecretParamobject

domain*stringThe domain associated with the secret.length ≥ 1
name*stringThe name of the secret to inject for the domain.length ≥ 1
value*stringThe secret value to inject for the domain.length ≥ 1 · length ≤ 10485760

ContainerReferenceParamobject

type*enumReferences a container created with the /v1/containers endpointcontainer_reference · default: "container_reference"
container_id*stringThe ID of the referenced container.

ConversationParamstring | Conversation object

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.

ConversationParam-2object

The conversation that this response belongs to.

id*stringThe unique ID of the conversation.

CoordParamobject

An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.

x*integerThe x-coordinate.
y*integerThe y-coordinate.

CustomGrammarFormatParamobject

A grammar defined by the user.

type*enumGrammar format. Always `grammar`.grammar · default: "grammar"
syntax*enumThe syntax of the grammar definition. One of `lark` or `regex`.lark | regex
definition*stringThe grammar definition.

CustomTextFormatParamobject

Unconstrained free-form text.

type*enumUnconstrained text format. Always `text`.text · default: "text"

CustomToolCallobject

A call to a custom tool created by the model.

type*enumThe type of the custom tool call. Always `custom_tool_call`.custom_tool_call
idstringThe unique ID of the custom tool call in the OpenAI platform.
call_id*stringAn identifier used to map this custom tool call to a tool call output.
callerobject | objectThe execution context that produced this tool call.nullable
namespacestringThe namespace of the custom tool being called.
name*stringThe name of the custom tool being called.
input*stringThe input for the custom tool call generated by the model.
asyncbooleanWhether the custom tool call runs asynchronously.

CustomToolCallOutputobject

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

type*enumThe type of the custom tool call output. Always `custom_tool_call_output`.custom_tool_call_output
idstringThe unique ID of the custom tool call output in the OpenAI platform.
call_id*stringThe call ID, used to map this custom tool call output to a custom tool call.
callerobject | objectThe execution context that produced this tool call.nullable
output*string | FunctionAndCustomToolCallOutput[]The output from the custom tool call generated by your code. Can be a string or an list of output content.

CustomToolParamobject

A custom tool that processes input using a specified format. Learn more about [custom tools](https://developers.openai.com/api/docs/guides/function-calling#custom-tools)

type*enumThe type of the custom tool. Always `custom`.custom · default: "custom"
name*stringThe name of the custom tool, used to identify it in tool calls.
asyncbooleanWhether the tool response can be returned asynchronously versus immediately returned on next response creation.
descriptionstringOptional description of the custom tool, used to provide more context.
formatText format | Grammar formatThe input format for the custom tool. Default is unconstrained text.
defer_loadingbooleanWhether this tool should be deferred and discovered via tool search.
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable

DetailEnumenum

low | high | auto | original

DirectToolCallCallerobject

type*enumdirect · default: "direct"

DirectToolCallCallerParamobject

type*enumThe caller type. Always `direct`.direct · default: "direct"

DoubleClickActionobject

A double click action.

type*enumSpecifies the event type. For a double click action, this property is always set to `double_click`.double_click · default: "double_click"
x*integerThe x-coordinate where the double click occurred.
y*integerThe y-coordinate where the double click occurred.
keys*string[]The keys being held while double-clicking.nullable

DragParamobject

A drag action.

type*enumSpecifies the event type. For a drag action, this property is always set to `drag`.drag · default: "drag"
path*CoordParam[]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 } ] ```
keysstring[]The keys being held while dragging the mouse.nullable

EasyInputMessageobject

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 …

role*enumThe role of the message input. One of `user`, `assistant`, `system`, or `developer`.user | assistant | system | developer
content*string | InputContent[]Text, image, or audio input to the model, used to generate a response. Can also contain previous assistant responses.
phaseenumLabels 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 deg…commentary | final_answer · nullable
typeenumThe type of the message input. Always `message`.message

EmptyModelParamobject

FileCitationBodyobject

A citation to a file.

type*enumThe type of the file citation. Always `file_citation`.file_citation · default: "file_citation"
file_id*stringThe ID of the file.
index*integerThe index in the output text at which to insert the file citation.
filename*stringThe filename of the file cited.

FileDetailEnumenum

auto | low | high

FileInputDetailenum

auto | low | high

FilePathobject

A path to a file.

type*enumThe type of the file path. Always `file_path`.file_path
file_id*stringThe ID of the file.
index*integerThe index of the file in the list of files.

FileSearchToolobject

A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://developers.openai.com/api/docs/guides/tools-file-search).

type*enumThe type of the file search tool. Always `file_search`.file_search · default: "file_search"
vector_store_ids*string[]The IDs of the vector stores to search.
max_num_resultsintegerThe maximum number of results to return. This number should be between 1 and 50 inclusive.
ranking_optionsRankingOptionsRanking options for search.
filtersComparison Filter | Compound FilterA filter to apply.nullable

FileSearchToolCallobject

The results of a file search tool call. See the [file search guide](https://developers.openai.com/api/docs/guides/tools-file-search) for more information.

id*stringThe unique ID of the file search tool call.
type*enumThe type of the file search tool call. Always `file_search_call`.file_search_call
status*enumThe status of the file search tool call. One of `in_progress`, `searching`, `incomplete` or `failed`,in_progress | searching | completed | incomplete | failed
queries*string[]The queries used to search for files.
resultsobject[]The results of the file search tool call.nullable

FiltersComparison Filter | Compound Filter

FunctionAndCustomToolCallOutputInput text | Input image | Input file

FunctionCallItemStatusenum

in_progress | completed | incomplete

FunctionCallOutputItemParamobject

The output of a function tool call.

idstringThe unique ID of the function tool call output. Populated when this item is returned via API.nullable
call_idstringThe unique ID of the function tool call generated by the model.length ≥ 1 · length ≤ 64 · nullable
type*enumThe type of the function tool call output. Always `function_call_output`.function_call_output · default: "function_call_output"
output*string | InputTextContentParam | InputImageContentParamAutoParam | InputFileContentParam[]Text, image, or file output of the function tool call.
namestringThe name of the tool that produced the output.length ≥ 1 · length ≤ 128 · nullable
namespacestringThe namespace of the tool that produced the output.length ≥ 1 · length ≤ 64 · nullable
callerobject | objectThe execution context that produced this tool call.nullable
statusenumThe status of the item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API.in_progress | completed | incomplete · nullable

FunctionShellActionParamobject

Commands and limits describing how to run the shell tool call.

commands*string[]Ordered shell commands for the execution environment to run.
timeout_msintegerMaximum wall-clock time in milliseconds to allow the shell commands to run.nullable
max_output_lengthintegerMaximum number of UTF-8 characters to capture from combined stdout and stderr output.nullable

FunctionShellCallItemParamobject

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

idstringThe unique ID of the shell tool call. Populated when this item is returned via API.nullable
call_id*stringThe unique ID of the shell tool call generated by the model.length ≥ 1 · length ≤ 64
callerobject | objectThe execution context that produced this tool call.nullable
type*enumThe type of the item. Always `shell_call`.shell_call · default: "shell_call"
action*FunctionShellActionParamThe shell commands and limits that describe how to run the tool call.
statusenumThe status of the shell call. One of `in_progress`, `completed`, or `incomplete`.in_progress | completed | incomplete · nullable
environmentobject | objectThe environment to execute the shell commands in.nullable

FunctionShellCallItemStatusenum

Status values reported for shell tool calls.

in_progress | completed | incomplete

FunctionShellCallOutputContentParamobject

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

stdout*stringCaptured stdout output for the shell call.length ≤ 10485760
stderr*stringCaptured stderr output for the shell call.length ≤ 10485760
outcome*Shell call timeout outcome | Shell call exit outcomeThe exit or timeout outcome associated with this shell call.

FunctionShellCallOutputExitOutcomeParamobject

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

type*enumThe outcome type. Always `exit`.exit · default: "exit"
exit_code*integerThe exit code returned by the shell process.

FunctionShellCallOutputItemParamobject

The streamed output items emitted by a shell tool call.

idstringThe unique ID of the shell tool call output. Populated when this item is returned via API.nullable
call_id*stringThe unique ID of the shell tool call generated by the model.length ≥ 1 · length ≤ 64
callerobject | objectThe execution context that produced this tool call.nullable
type*enumThe type of the item. Always `shell_call_output`.shell_call_output · default: "shell_call_output"
output*FunctionShellCallOutputContentParam[]Captured chunks of stdout and stderr output, along with their associated outcomes.
statusenumThe status of the shell call output.in_progress | completed | incomplete · nullable
max_output_lengthintegerThe maximum number of UTF-8 characters captured for this shell call's combined output.nullable

FunctionShellCallOutputOutcomeParamShell call timeout outcome | Shell call exit outcome

The exit or timeout outcome associated with this shell call.

FunctionShellCallOutputTimeoutOutcomeParamobject

Indicates that the shell call exceeded its configured time limit.

type*enumThe outcome type. Always `timeout`.timeout · default: "timeout"

FunctionShellToolParamobject

A tool that allows the model to execute shell commands.

type*enumThe type of the shell tool. Always `shell`.shell · default: "shell"
environmentobject | object | objectnullable
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable

FunctionToolobject

Defines a function in your own code the model can choose to call. Learn more about [function calling](https://developers.openai.com/api/docs/guides/function-calling).

type*enumThe type of the function tool. Always `function`.function · default: "function"
name*stringThe name of the function to call.
asyncboolean
descriptionstringA description of the function. Used by the model to determine whether or not to call the function.nullable
parameters*objectA JSON schema object describing the parameters of the function.nullable
output_schemaobjectA JSON schema object describing the JSON value encoded in string outputs for this function.nullable
strict*booleanWhether strict parameter validation is enforced for this function tool.nullable
defer_loadingbooleanWhether this function is deferred and loaded via tool search.
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).nullable

FunctionToolCallobject

A tool call to run a function. See the [function calling guide](https://developers.openai.com/api/docs/guides/function-calling) for more information.

idstringThe unique ID of the function tool call.
type*enumThe type of the function tool call. Always `function_call`.function_call
call_id*stringThe unique ID of the function tool call generated by the model.
callerobject | objectThe execution context that produced this tool call.nullable
namespacestringThe namespace of the function to run.
name*stringThe name of the function to run.
arguments*stringA JSON string of the arguments to pass to the function.
statusenumThe status of the item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API.in_progress | completed | incomplete
asyncbooleanWhether the function tool call runs asynchronously.

FunctionToolParamobject

name*stringlength ≥ 1 · length ≤ 128
descriptionstringnullable
parametersEmptyModelParamnullable
strictbooleanWhether to enforce strict parameter validation. If omitted, Responses attempts to use strict validation when the schema is compatible, and falls back to non-strict validation otherwise.nullable
type*enumfunction · default: "function"
asyncbooleanWhether the tool response can be returned asynchronously versus immediately returned on next response creation.
output_schemaobjectA JSON Schema describing the JSON value encoded in string outputs for this function tool. This does not describe content-array outputs.nullable
defer_loadingbooleanWhether this function should be deferred and discovered via tool search.
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable

GrammarSyntax1enum

lark | regex

HTTPErrorobject

type*enumhttp_error · default: "http_error"
code*integer
message*string

HybridSearchOptionsobject

embedding_weight*numberThe weight of the embedding in the reciprocal ranking fusion.
text_weight*numberThe weight of the text in the reciprocal ranking fusion.

ImageBackgroundenum

transparent | opaque | auto

ImageDetailenum

low | high | auto | original

ImageGenActionEnumenum

generate | edit | auto

ImageGenToolobject

A tool that generates images using the GPT image models.

type*enumThe type of the image generation tool. Always `image_generation`.image_generation
modelstring | enum
complexityenumComputation spent planning the image, independently of rendering quality. Overrides the outer response's `reasoning.effort` for image generation. When omitted, inherits a supported outer reasoning effort or uses the image model's configured default. For SVG ou…low | medium | high
qualityenumThe quality of the generated image. The GPT image models support `low`, `medium`, and `high`. `gpt-image-2.5-sunburst` and `gpt-image-2.5-flare`, including their `2026-09-08` snapshots, also support `xhigh` and `max`. Default: `auto`.low | medium | high | xhigh | max | auto · default: "auto"
sizestring | enumThe size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary resolutions are supported as `WIDTHxHEIGHT` str…default: "auto"
output_formatenumThe output format of the generated image. One of `png`, `webp`, `jpeg`, `gif`, or `svg`. Default: `png`. GIF and SVG output require a model that supports the selected format. GIF output does not support partial image streaming (`partial_images` greater than `0…png | webp | jpeg | gif | svg · default: "png"
frame_countintegerNumber of GIF frames. Requires `output_format` to be `gif`. Default: 9.2 ≤ n ≤ 16 · default: 9
frame_duration_msintegerDuration of each GIF frame in milliseconds, rounded to 10 ms. Requires `output_format` to be `gif`. Default: 200.20 ≤ n ≤ 2000 · default: 200
svgSvgParamSVG author model settings. Requires `output_format` to be `svg`. When SVG model selection is enabled, omitting this object uses the outer response model. Otherwise, the default SVG author is used and explicit model overrides are unavailable.
output_compressionintegerCompression level for the output image. Default: 100.0 ≤ n ≤ 100 · default: 100
moderationenumModeration level for the generated image. Default: `auto`.auto | low · default: "auto"
backgroundenumAllows to set transparency for the background of the generated image(s). Must be one of `transparent`, `opaque`, or `auto` (default value). When `auto` is used, the model will automatically determine the best background for the image.transparent | opaque | auto · default: "auto"
input_fidelityenumControl how much effort the model will exert to match the style and features, especially facial features, of input images. Supports `high` and `low` on `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit this parameter. Defaults to…high | low · nullable
input_image_maskobjectOptional mask for inpainting. Contains `image_url` (string, optional) and `file_id` (string, optional).
partial_imagesintegerNumber of partial images to generate in streaming mode, from 0 (default value) to 3.0 ≤ n ≤ 3 · default: 0
actionenumWhether to generate a new image or edit an existing image. Default: `auto`.generate | edit | auto

ImageGenToolCallobject

An image generation request made by the model.

type*enumThe type of the image generation call. Always `image_generation_call`.image_generation_call
id*stringThe unique ID of the image generation call.
status*enumThe status of the image generation call.in_progress | completed | generating | failed
result*stringThe generated image encoded in base64.nullable
errorImageGenToolCallErrorDetails of a moderation failure, when available.
sizestring | enumThe image dimensions as a `WIDTHxHEIGHT` string, for example `1536x864`.nullable
qualityenumThe quality of the image generated by the image generation tool call. One of `low`, `medium`, `high`, `xhigh`, `max`, or `auto`.low | medium | high | xhigh | max | auto · nullable
actionenumThe action used for image generation.generate | edit | auto · nullable
backgroundenumThe background setting used for generation.transparent | opaque | auto · nullable
output_formatenumThe output format used for generation.png | webp | jpeg | gif | svg · nullable
svg_usageSvgUsage
revised_promptstringThe prompt that was used after any model prompt rewriting.nullable

ImageGenToolCallErrorobject

code*stringThe error code.nullable
type*stringThe error type.
message*stringA description of the error.
param*stringThe related request parameter.nullable
moderation_detailsImageGenToolCallModerationDetailsPublic details for a `moderation_blocked` error, when available.

ImageGenToolCallModerationDetailsobject

moderation_stage*enumThe stage where moderation blocked the image generation call.input | output | unknown
categories*string[]Public moderation categories. New category values may be added over time.

ImageOutputFormatenum

png | webp | jpeg | gif | svg

InlineSkillParamobject

type*enumDefines an inline skill for this request.inline · default: "inline"
name*stringThe name of the skill.
description*stringThe description of the skill.
source*InlineSkillSourceParamInline skill payload

InlineSkillSourceParamobject

Inline skill payload

type*enumThe type of the inline skill source. Must be `base64`.base64 · default: "base64"
media_type*enumThe media type of the inline skill payload. Must be `application/zip`.application/zip · default: "application/zip"
data*stringBase64-encoded skill zip bundle.length ≥ 1 · length ≤ 70254592

InputContentInput text | Input image | Input file

InputFidelityenum

Control how much effort the model will exert to match the style and features, especially facial features, of input images. Supports `high` and `low` on `gpt-image-1.5`; `gpt-image-1-mini` supports only `low`. For `gpt-image-2`, omit this parameter. Defaults to…

high | low

InputFileContentobject

A file input to the model.

type*enumThe type of the input item. Always `input_file`.input_file · default: "input_file"
file_idstringThe ID of the file to be sent to the model.nullable
filenamestringThe name of the file to be sent to the model.
file_datastringThe content of the file to be sent to the model.
prompt_cache_breakpointPromptCacheBreakpointConfigMarks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.
file_urlstringThe URL of the file to be sent to the model.format: uri
detailenumThe 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…auto | low | high

InputFileContentParamobject

A file input to the model.

type*enumThe type of the input item. Always `input_file`.input_file · default: "input_file"
file_idstringThe ID of the file to be sent to the model.nullable
filenamestringThe name of the file to be sent to the model.nullable
file_datastringThe base64-encoded data of the file to be sent to the model.length ≤ 73400320 · nullable
file_urlstringThe URL of the file to be sent to the model.format: uri · nullable
detailenumThe 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…auto | low | high
prompt_cache_breakpointPromptCacheBreakpointParamMarks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.nullable

InputImageContentobject

An image input to the model. Learn about [image inputs](https://developers.openai.com/api/docs/guides/images-vision).

type*enumThe type of the input item. Always `input_image`.input_image · default: "input_image"
image_urlstringThe URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.format: uri · nullable
file_idstringThe ID of the file to be sent to the model.nullable
detail*enumThe detail level of the image to be sent to the model. One of `high`, `low`, `auto`, or `original`. Defaults to `auto`.low | high | auto | original
prompt_cache_breakpointPromptCacheBreakpointConfigMarks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.

InputImageContentParamAutoParamobject

An image input to the model. Learn about [image inputs](https://developers.openai.com/api/docs/guides/images-vision)

type*enumThe type of the input item. Always `input_image`.input_image · default: "input_image"
image_urlstringThe URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.length ≤ 20971520 · format: uri · nullable
file_idstringThe ID of the file to be sent to the model.nullable
detailenumThe detail level of the image to be sent to the model. One of `high`, `low`, `auto`, or `original`. Defaults to `auto`.low | high | auto | original · nullable
prompt_cache_breakpointPromptCacheBreakpointParamMarks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.nullable

InputItemInput message | InputMessage | OutputMessage | FileSearchToolCall | Compaction trigger | …

InputMessageobject

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.

typeenumThe type of the message input. Always set to `message`.message
role*enumThe role of the message input. One of `user`, `system`, or `developer`.user | system | developer
statusenumThe status of item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API.in_progress | completed | incomplete
content*InputContent[]A list of one or many input items to the model, containing different content types.

InputMessageContentListInputContent[]

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

InputTextContentobject

A text input to the model.

type*enumThe type of the input item. Always `input_text`.input_text · default: "input_text"
text*stringThe text input to the model.
prompt_cache_breakpointPromptCacheBreakpointConfigMarks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.

InputTextContentParamobject

A text input to the model.

type*enumThe type of the input item. Always `input_text`.input_text · default: "input_text"
text*stringThe text input to the model.length ≤ 10485760
prompt_cache_breakpointPromptCacheBreakpointParamMarks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.nullable

ItemInput message | Output message | File search tool call | …

Content item used to generate a response.

ItemReferenceParamobject

An internal identifier for an item to reference.

typeenumThe type of item to reference. Always `item_reference`.item_reference · default: "item_reference" · nullable
id*stringThe ID of the item to reference.

KeyPressActionobject

A collection of keypresses the model would like to perform.

type*enumSpecifies the event type. For a keypress action, this property is always set to `keypress`.keypress · default: "keypress"
keys*string[]The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key.

LegacyComputerActionClick | DoubleClick | Drag | …

LocalEnvironmentParamobject

type*enumUse a local computer environment.local · default: "local"
skillsLocalSkillParam[]An optional list of skills.items ≤ 200

LocalShellExecActionobject

Execute a shell command on the server.

type*enumThe type of the local shell action. Always `exec`.exec · default: "exec"
command*string[]The command to run.
timeout_msintegerOptional timeout in milliseconds for the command.nullable
working_directorystringOptional working directory to run the command in.nullable
env*objectEnvironment variables to set for the command.
userstringOptional user to run the command as.nullable

LocalShellToolCallobject

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

type*enumThe type of the local shell call. Always `local_shell_call`.local_shell_call
id*stringThe unique ID of the local shell call.
call_id*stringThe unique ID of the local shell tool call generated by the model.
action*LocalShellExecActionExecute a shell command on the server.
status*enumThe status of the local shell call.in_progress | completed | incomplete

LocalShellToolCallOutputobject

The output of a local shell tool call.

type*enumThe type of the local shell tool call output. Always `local_shell_call_output`.local_shell_call_output
id*stringThe unique ID of the local shell tool call generated by the model.
output*stringA JSON string of the output of the local shell tool call.
statusenumThe status of the item. One of `in_progress`, `completed`, or `incomplete`.in_progress | completed | incomplete · nullable

LocalShellToolParamobject

A tool that allows the model to execute shell commands in a local environment.

type*enumThe type of the local shell tool. Always `local_shell`.local_shell · default: "local_shell"

LocalSkillParamobject

name*stringThe name of the skill.
description*stringThe description of the skill.
path*stringThe path to the directory containing the skill.

LogProbobject

The log probability of a token.

token*string
logprob*number
bytes*integer[]
top_logprobs*TopLogProb[]

MCPApprovalRequestobject

A request for human approval of a tool invocation.

type*enumThe type of the item. Always `mcp_approval_request`.mcp_approval_request
id*stringThe unique ID of the approval request.
server_label*stringThe label of the MCP server making the request.
name*stringThe name of the tool to run.
arguments*stringA JSON string of arguments for the tool.

MCPApprovalResponseobject

A response to an MCP approval request.

type*enumThe type of the item. Always `mcp_approval_response`.mcp_approval_response
idstringThe unique ID of the approval responsenullable
approval_request_id*stringThe ID of the approval request being answered.
approve*booleanWhether the request was approved.
reasonstringOptional reason for the decision.nullable

MCPListToolsobject

A list of tools available on an MCP server.

type*enumThe type of the item. Always `mcp_list_tools`.mcp_list_tools
id*stringThe unique ID of the list.
server_label*stringThe label of the MCP server.
tools*MCPListToolsTool[]The tools available on the server.
errorstringError message if the server could not list tools.nullable

MCPListToolsToolobject

A tool available on an MCP server.

name*stringThe name of the tool.
descriptionstringThe description of the tool.nullable
input_schema*objectThe JSON schema describing the tool's input.
annotationsobjectAdditional annotations about the tool.nullable

MCPProtocolErrorobject

type*enummcp_protocol_error · default: "mcp_protocol_error"
code*integer
message*string

MCPToolobject

Give the model access to additional tools via remote Model Context Protocol (MCP) servers. [Learn more about MCP](https://developers.openai.com/api/docs/guides/tools-connectors-mcp).

type*enumThe type of the MCP tool. Always `mcp`.mcp
server_label*stringA label for this MCP server, used to identify it in tool calls.
server_urlstringThe URL for the MCP server. One of `server_url`, `connector_id`, or `tunnel_id` must be provided.format: uri
connector_idenumIdentifier for service connectors, like those available in ChatGPT. One of `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about service connectors [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).connector_dropbox | connector_gmail | connector_googlecalendar | connector_googledrive | connector_microsoftteams | connector_outlookcalendar · +2 more · deprecated
tunnel_idstringThe Secure MCP Tunnel ID to use instead of a direct server URL. One of `server_url`, `connector_id`, or `tunnel_id` must be provided.
authorizationstringAn OAuth access token that can be used with a remote MCP server, either with a custom MCP server URL or a service connector. Your application must handle the OAuth authorization flow and provide the token here.
server_descriptionstringOptional description of the MCP server, used to provide more context.
headersobjectOptional HTTP headers to send to the MCP server. Use for authentication or other purposes.nullable
allowed_toolsstring[] | MCP tool filterList of allowed tool names or a filter object.nullable
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable
require_approvalMCP tool approval filter | enumSpecify which of the MCP server's tools require approval.default: "always" · nullable
defer_loadingbooleanWhether this MCP tool is deferred and discovered via tool search.

MCPToolCallobject

An invocation of a tool on an MCP server.

type*enumThe type of the item. Always `mcp_call`.mcp_call
id*stringThe unique ID of the tool call.
server_label*stringThe label of the MCP server running the tool.
name*stringThe name of the tool that was run.
arguments*stringA JSON string of the arguments passed to the tool.
outputstringThe output from the tool call.nullable
errorobject | object | objectThe error from the tool call, if any.nullable
statusenumThe status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`.in_progress | completed | incomplete | calling | failed
approval_request_idstringUnique 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.nullable

MCPToolCallErrorobject | object | object

MCPToolCallStatusenum

in_progress | completed | incomplete | calling | failed

MCPToolExecutionErrorobject

type*enummcp_tool_execution_error · default: "mcp_tool_execution_error"
content*any

MCPToolFilterobject

A filter object to specify which tools are allowed.

tool_namesstring[]List of allowed tool names.
read_onlybooleanIndicates whether or not a tool modifies data or is read-only. If an MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint), it will match this filter.

MessagePhaseenum

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 deg…

commentary | final_answer

MoveParamobject

A mouse move action.

type*enumSpecifies the event type. For a move action, this property is always set to `move`.move · default: "move"
x*integerThe x-coordinate to move to.
y*integerThe y-coordinate to move to.
keysstring[]The keys being held while moving the mouse.nullable

NamespaceToolParamobject

Groups function/custom tools under a shared namespace.

type*enumThe type of the tool. Always `namespace`.namespace · default: "namespace"
name*stringThe namespace name used in tool calls (for example, `crm`).length ≥ 1
description*stringA description of the namespace shown to the model.
tools*FunctionToolParam | CustomToolParam[]The function/custom tools available inside this namespace.items ≥ 1

OutputMessageobject

An output message from the model.

id*stringThe unique ID of the output message.
type*enumThe type of the output message. Always `message`.message
role*enumThe role of the output message. Always `assistant`.assistant
content*OutputMessageContent[]The content of the output message.
phaseenumLabels 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 deg…commentary | final_answer · nullable
status*enumThe status of the message input. One of `in_progress`, `completed`, or `incomplete`. Populated when input items are returned via API.in_progress | completed | incomplete

OutputMessageContentOutput text | Refusal

OutputTextContentobject

A text output from the model.

type*enumThe type of the output text. Always `output_text`.output_text · default: "output_text"
text*stringThe text output from the model.
annotations*Annotation[]The annotations of the text output.
logprobsLogProb[]

PersonalityEnumstring | enum

ProgramItemParamobject

id*stringThe unique ID of this program item.
type*enumThe item type. Always `program`.program · default: "program"
call_id*stringThe stable call ID of the program item.length ≥ 1 · length ≤ 64
code*stringThe JavaScript source executed by programmatic tool calling.length ≤ 10485760
fingerprint*stringOpaque program replay fingerprint that must be round-tripped.length ≤ 10485760

ProgrammaticToolCallingParamobject

type*enumThe type of the tool. Always `programmatic_tool_calling`.programmatic_tool_calling · default: "programmatic_tool_calling"

ProgramOutputItemParamobject

id*stringThe unique ID of this program output item.
type*enumThe item type. Always `program_output`.program_output · default: "program_output"
call_id*stringThe call ID of the program item.length ≥ 1 · length ≤ 64
result*stringThe result produced by the program item.length ≤ 10485760
status*enumThe terminal status of the program output.completed | incomplete

ProgramOutputItemStatusenum

completed | incomplete

ProgramToolCallCallerobject

type*enumprogram · default: "program"
caller_id*stringThe call ID of the program item that produced this tool call.

ProgramToolCallCallerParamobject

type*enumThe caller type. Always `program`.program · default: "program"
caller_id*stringThe call ID of the program item that produced this tool call.length ≥ 1 · length ≤ 64

PromptCacheBreakpointConfigobject

Marks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.

mode*enumThe breakpoint mode. Always `explicit`.explicit · default: "explicit"
ttlenumThe minimum lifetime of this cache breakpoint. Defaults to the request TTL.30m | 12h

PromptCacheBreakpointParamobject

Marks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.

mode*enumThe breakpoint mode. Always `explicit`.explicit · default: "explicit"
ttlenumThe minimum lifetime of this cache breakpoint. Defaults to the request TTL.30m | 12h

RankerVersionTypeenum

auto | default-2024-11-15

RankingOptionsobject

rankerenumThe ranker to use for the file search.auto | default-2024-11-15
score_thresholdnumberThe score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results.
hybrid_searchHybridSearchOptionsWeights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled.

Reasoningobject

Configuration options for [reasoning models](https://developers.openai.com/api/docs/guides/reasoning).

modestring | enumControls the reasoning execution mode for the request.
effortenumConstrains effort on reasoning for reasoning models. Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not a…none | minimal | low | medium | high | xhigh · +1 more · default: "medium" · nullable
summaryenumA summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of `auto`, `concise`, or `detailed`.auto | concise | detailed · nullable
contextenumControls which reasoning items are rendered back to the model on later turns. If omitted or set to `auto`, the model determines the context mode. The `gpt-5.6` model family defaults to `all_turns`; earlier models default to `current_turn`.auto | current_turn | all_turns · nullable
generate_summaryenum**Deprecated:** use `summary` instead.auto | concise | detailed · nullable · deprecated

ReasoningEffortenum

Constrains effort on reasoning for reasoning models. Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. Not a…

none | minimal | low | medium | high | xhigh · +1 more · default: "medium" · nullable

ReasoningEffortEnumenum

none | minimal | low | medium | high | xhigh · +1 more

ReasoningItemobject

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](https://developers.op…

type*enumThe type of the object. Always `reasoning`.reasoning
id*stringThe unique identifier of the reasoning content.
encrypted_contentstringThe encrypted content of the reasoning item. This is populated by default for reasoning items returned by `POST /v1/responses` and WebSocket `response.create` requests.nullable
summary*Summary[]Reasoning summary content.
contentReasoningTextContent[]Reasoning text content.
statusenumThe status of the item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API.in_progress | completed | incomplete

ReasoningModeEnumstring | enum

ReasoningTextContentobject

Reasoning text from the model.

type*enumThe type of the reasoning text. Always `reasoning_text`.reasoning_text · default: "reasoning_text"
text*stringThe reasoning text from the model.

RefusalContentobject

A refusal from the model.

type*enumThe type of the refusal. Always `refusal`.refusal · default: "refusal"
refusal*stringThe refusal explanation from the model.

ResponseConfigurationUpdateItemParamobject

An update to the conversation's response configuration. Supply reasoning, text, or both. Each setting stays in effect until a later update replaces it.

idstringThe unique ID of the configuration update item.nullable
type*enumThe item type. Always `configuration_update`.configuration_update · default: "configuration_update"
reasoningobjectUpdates to reasoning configuration. Only effort is supported.
textobjectThe text output configuration for subsequent responses.

ResponseFormatJsonObjectobject

JSON object response format. An older method of generating JSON responses. Using `json_schema` is recommended for models that support it. Note that the model will not generate JSON without a system or user message instructing it to do so.

type*enumThe type of response format being defined. Always `json_object`.json_object

ResponseFormatJsonSchemaSchemaobject

The schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas [here](https://json-schema.org/).

ResponseFormatTextobject

Default response format. Used to generate text responses.

type*enumThe type of response format being defined. Always `text`.text

ResponseTextParamobject

Configuration options for a text response from the model. Can be plain text or structured JSON data. Learn more: - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text) - [Structured Outputs](https://developers.openai.com/api/docs/guide…

formatText | JSON schema | JSON objectAn object specifying the format that the model must output.
verbosityenumConstrains 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`.low | medium | high · default: "medium" · nullable

ScreenshotParamobject

A screenshot action.

type*enumSpecifies the event type. For a screenshot action, this property is always set to `screenshot`.screenshot · default: "screenshot"

ScrollParamobject

A scroll action.

type*enumSpecifies the event type. For a scroll action, this property is always set to `scroll`.scroll · default: "scroll"
x*integerThe x-coordinate where the scroll occurred.
y*integerThe y-coordinate where the scroll occurred.
scroll_x*integerThe horizontal scroll distance.
scroll_y*integerThe vertical scroll distance.
keysstring[]The keys being held while scrolling.nullable

SearchContentTypeenum

text | image

SearchContextSizeenum

low | medium | high

SkillReferenceParamobject

type*enumReferences a skill created with the /v1/skills endpoint.skill_reference · default: "skill_reference"
skill_id*stringThe ID of the referenced skill.length ≥ 1 · length ≤ 64
versionstringOptional skill version. Use a positive integer or 'latest'. Omit for default.

SpecificApplyPatchParamobject

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

type*enumThe tool to call. Always `apply_patch`.apply_patch · default: "apply_patch"

SpecificFunctionShellParamobject

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

type*enumThe tool to call. Always `shell`.shell · default: "shell"

SpecificProgrammaticToolCallingParamobject

type*enumThe tool to call. Always `programmatic_tool_calling`.programmatic_tool_calling · default: "programmatic_tool_calling"

Summaryobject

A summary text from the model.

type*enumThe type of the object. Always `summary_text`.summary_text · default: "summary_text"
text*stringA summary of the reasoning output from the model so far.

SvgParamobject

modelstringlength ≥ 1
reasoningSvgReasoningParamReasoning effort for SVG authoring. When omitted, uses the author model's default in both Images and Responses.nullable

SvgReasoningParamobject

Reasoning effort for SVG authoring. When omitted, uses the author model's default in both Images and Responses.

effortenumControls how much effort the model should spend on reasoning for this request.none | minimal | low | medium | high | xhigh · +1 more

SvgUsageobject

model*string
input_tokens*integer
output_tokens*integer
total_tokens*integer
reasoning_tokens*integer

TextResponseFormatConfigurationText | JSON schema | JSON object

An object specifying the format that the model must output.

TextResponseFormatJsonSchemaobject

JSON Schema response format. Used to generate structured JSON responses. Learn more about [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs).

type*enumThe type of response format being defined. Always `json_schema`.json_schema
descriptionstringA description of what the response format is for, used by the model to determine how to respond in the format.
name*stringThe 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*ResponseFormatJsonSchemaSchemaThe schema for the response format, described as a JSON Schema object. Learn how to build JSON schemas [here](https://json-schema.org/).
strictbooleanWhether 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 [Struc…default: false · nullable

ToolFunction | File search | Computer | …

A tool that can be used to generate a response.

ToolCallCallerobject | object

The execution context that produced this tool call.

ToolCallCallerParamobject | object

The execution context that produced this tool call.

ToolChoiceAllowedobject

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

type*enumAllowed tool configuration type. Always `allowed_tools`.allowed_tools
mode*enumConstrains the tools available to the model to a pre-defined set.auto | required
tools*object[]A list of tool definitions that the model should be allowed to call.

ToolChoiceCustomobject

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

type*enumFor custom tool calling, the type is always `custom`.custom
name*stringThe name of the custom tool to call.

ToolChoiceFunctionobject

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

type*enumFor function calling, the type is always `function`.function
name*stringThe name of the function to call.

ToolChoiceMCPobject

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

type*enumFor MCP tools, the type is always `mcp`.mcp
server_label*stringThe label of the MCP server to use.
namestringThe name of the tool to call on the server.nullable

ToolChoiceOptionsenum

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

none | auto | required

ToolChoiceParamenum | Allowed tools | Hosted tool | …

How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call.

ToolChoiceTypesobject

Indicates that the model should use a built-in tool to generate a response. [Learn more about built-in tools](https://developers.openai.com/api/docs/guides/tools).

type*enumThe type of hosted tool the model should to use. Learn more about [built-in tools](https://developers.openai.com/api/docs/guides/tools).file_search | web_search_preview | computer | computer_use_preview | computer_use | web_search_preview_2025_03_11 · +2 more

ToolSearchCallItemParamobject

idstringThe unique ID of this tool search call.nullable
call_idstringThe unique ID of the tool search call generated by the model.length ≥ 1 · length ≤ 64 · nullable
type*enumThe item type. Always `tool_search_call`.tool_search_call · default: "tool_search_call"
executionenumWhether tool search was executed by the server or by the client.server | client
arguments*EmptyModelParamThe arguments supplied to the tool search call.
statusenumThe status of the tool search call.in_progress | completed | incomplete · nullable

ToolSearchExecutionTypeenum

server | client

ToolSearchOutputFunctionToolParamobject

name*stringThe name of the loaded function tool.length ≥ 1 · length ≤ 128
descriptionstringnullable
parametersEmptyModelParamnullable
strictbooleanWhether to enforce strict parameter validation. If omitted, Responses attempts to use strict validation when the schema is compatible, and falls back to non-strict validation otherwise.nullable
type*enumfunction · default: "function"
asyncbooleanWhether the tool response can be returned asynchronously versus immediately returned on next response creation.
output_schemaobjectA JSON Schema describing the JSON value encoded in string outputs for this function tool. This does not describe content-array outputs.nullable
defer_loadingbooleanWhether this function should be deferred and discovered via tool search.
allowed_callersCallableToolAllowedCaller[]The tool invocation context(s).items ≥ 1 · nullable

ToolSearchOutputItemParamobject

idstringThe unique ID of this tool search output.nullable
call_idstringThe unique ID of the tool search call generated by the model.length ≥ 1 · length ≤ 64 · nullable
type*enumThe item type. Always `tool_search_output`.tool_search_output · default: "tool_search_output"
executionenumWhether tool search was executed by the server or by the client.server | client
tools*ToolSearchOutputTool[]The loaded tool definitions returned by the tool search output.
statusenumThe status of the tool search output.in_progress | completed | incomplete · nullable

ToolSearchOutputNamespaceToolParamobject

Groups function/custom tools under a shared namespace.

type*enumThe type of the tool. Always `namespace`.namespace · default: "namespace"
name*stringThe namespace name used in tool calls (for example, `crm`).length ≥ 1
description*stringA description of the namespace shown to the model.
tools*ToolSearchOutputFunctionToolParam | CustomToolParam[]The function/custom tools loaded inside this namespace.items ≥ 1

ToolSearchOutputToolFunction | File search | Computer | …

A tool definition returned by a tool search output.

ToolSearchToolParamobject

Hosted or BYOT tool search configuration for deferred tools.

type*enumThe type of the tool. Always `tool_search`.tool_search · default: "tool_search"
executionenumWhether tool search is executed by the server or by the client.server | client
descriptionstringDescription shown to the model for a client-executed tool search tool.nullable
parametersEmptyModelParamParameter schema for a client-executed tool search tool.nullable

TopLogProbobject

The top log probability of a token.

token*string
logprob*number
bytes*integer[]

TruncationEnumenum

auto | disabled

TypeParamobject

An action to type in text.

type*enumSpecifies the event type. For a type action, this property is always set to `type`.type · default: "type"
text*stringThe text to type.

UrlCitationBodyobject

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

type*enumThe type of the URL citation. Always `url_citation`.url_citation · default: "url_citation"
url*stringThe URL of the web resource.format: uri
start_index*integerThe index of the first character of the URL citation in the message.
end_index*integerThe index of the last character of the URL citation in the message.
title*stringThe title of the web resource.

VectorStoreFileAttributesobject

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 characte…

nullable

Verbosityenum

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`.

low | medium | high · default: "medium" · nullable

WaitParamobject

A wait action.

type*enumSpecifies the event type. For a wait action, this property is always set to `wait`.wait · default: "wait"

WebSearchActionFindobject

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

type*enumThe action type.find_in_page
url*stringThe URL of the page searched for the pattern.format: uri
pattern*stringThe pattern or text to search for within the page.

WebSearchActionOpenPageobject

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

type*enumThe action type.open_page
urlstringThe URL opened by the model. format: uri · nullable

WebSearchActionSearchobject

Action type "search" - Performs a web search query.

type*enumThe action type.search
querystringThe search query.deprecated
queriesstring[]The search queries.
sourcesWeb search source[]The sources used in the search.

WebSearchApproximateLocationobject

The approximate location of the user.

typeenumThe type of location approximation. Always `approximate`.approximate · default: "approximate"
countrystringThe two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the user, e.g. `US`.nullable
regionstringFree text input for the region of the user, e.g. `California`.nullable
citystringFree text input for the city of the user, e.g. `San Francisco`.nullable
timezonestringThe [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the user, e.g. `America/Los_Angeles`.nullable

WebSearchCallStatusenum

in_progress | searching | completed | failed | incomplete

WebSearchPreviewToolobject

This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://developers.openai.com/api/docs/guides/tools-web-search).

type*enumThe type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`.web_search_preview | web_search_preview_2025_03_11 · default: "web_search_preview"
user_locationApproximateLocationThe approximate location of the user. If omitted or null, defaults to the United States. To avoid this fallback, pass `{"type": "approximate"}` without location fields. To localize results, provide the relevant location fields.nullable
search_context_sizeenumHigh level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.low | medium | high
search_content_typesSearchContentType[]

WebSearchToolobject

Search the Internet for sources related to the prompt. Learn more about the [web search tool](https://developers.openai.com/api/docs/guides/tools-web-search).

type*enumThe type of the web search tool. One of `web_search` or `web_search_2025_08_26`.web_search | web_search_2025_08_26 · default: "web_search"
external_web_accessbooleanAllow live internet access for web search. Defaults to true when omitted. When false, the web search tool runs in offline/cache-only mode and will not fetch new external content.default: true
filtersobjectFilters for the search.nullable
user_locationobjectThe approximate location of the user.nullable
search_context_sizeenumHigh level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.low | medium | high · default: "medium"

WebSearchToolCallobject

The results of a web search tool call. See the [web search guide](https://developers.openai.com/api/docs/guides/tools-web-search) for more information.

id*stringThe unique ID of the web search tool call.
type*enumThe type of the web search tool call. Always `web_search_call`.web_search_call
status*enumThe status of the web search tool call.in_progress | searching | completed | failed | incomplete
action*Search action | Open page action | Find actionAn 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).

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"openai","endpointId":"responses/input_tokens","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}