GET

/v1/schemas/meta/chat/v1/responses

kind inputactivity chathash 042c783b…extracted Nov 9, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.

docs-derived

Source trace
238ec411f2fb947674840ba1f46427d38b77db15a140590d781fdb2b4895836d
{
  "fetchedAt": 1794201665,
  "extractorVersion": "2",
  "verifiedAt": null
}

Request body

28 properties · 0 required · 87 $defs
propertytypedescriptionconstraints
metadataobjectnullable
top_logprobsintegerAn integer between 0 and 20 giving the number of top alternative tokens to return at each position, each with its log probability. (minimum: 0, maximum: 20)0 ≤ n ≤ 20
temperaturenumberWhat 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. (minimum: 0, maximum: 2, default: 1)nullable
top_pnumberNucleus sampling: only tokens whose cumulative probability is at most this value are considered. Must be greater than 0; values <= 0 return HTTP 400. Set this or temperature, not both. (minimum: 0, maximum: 1, default: 1)nullable
userstringDeprecated. Being replaced by safety_identifier and prompt_cache_key; use prompt_cache_key to retain caching benefits. A stable end-user identifier used to improve cache hit rates and help detect abuse.
safety_identifierstringA stable identifier that helps detect users who may be violating usage policies. Use a string that uniquely identifies each user, up to 64 characters; hash a username or email so you do not send identifying information. (maxLength: 64)length ≤ 64
prompt_cache_keystringGroups similar requests to improve cache hit rates. Replaces the user field.
service_tierenumauto | default | flex | scale | priority · nullable
prompt_cache_retentionenumThe retention policy for the prompt cache.in_memory | 24h · nullable
previous_response_idstringIdentifier of a previous response to continue from. Use this to build multi-turn conversations with server-managed state. Cannot be combined with conversation.nullable
modelstringID of the model used to generate the response.
reasoningreasoningnullable
backgroundbooleanWhether to run the response asynchronously in the background. Cannot be combined with stream. (default: false)nullable
max_tool_callsintegerMaximum number of built-in tool calls allowed while generating a response, counted across all built-in tools rather than per tool. The model ignores any calls beyond this limit. (minimum: 1)nullable
textresponse-text-param
toolstool[]
tool_choicetool-choice-param
promptobjectnullable
truncationenumTruncation strategy for the request. Only disabled (the default) is supported: if the input plus requested output tokens exceed the model's context window, the request fails with a 400 error. The auto strategy is not supported. (default: disabled)auto | disabled · nullable
client_metadataobjectOptional client-provided request metadata. Accepted for compatibility and ignored.nullable
inputstring | input-item[]
includeinclude-enum[]Additional output data to return in the response. Use message.output_text.logprobs to return token-level log probabilities on output text (set together with top_logprobs and a reasoning.effort of none), and reasoning.encrypted_content to return encrypted reasoning items for stateless multi-turn replay.nullable
parallel_tool_callsbooleanWhether the model may issue multiple tool calls in a single turn. (default: true)nullable
storebooleanWhether to persist the generated response so it can be retrieved later and chained from previous_response_id. (default: true)nullable
instructionsstringDeveloper-level instructions inserted at the top of the model's context. When previous_response_id is set, instructions from the prior response are not carried forward, so you can change them on each turn. Top-level image models place these instructions immediately before the current user message instead, and also honor developer or system input messages that come before the first user message or after the most recent image_generation_call; those from earlier turns, and those stored with a previous response, are not carried forward. Top-level image models accept at most 12,000 characters across this field and those messages, returning a 400 error when the combined limit is exceeded.nullable
streambooleanIf true, the response is streamed to the client as server-sent events as it is generated. Cannot be combined with background. (default: false)nullable
stream_optionsobjectnullable
max_output_tokensintegerUpper bound on the number of tokens generated for the response, counting both visible output and reasoning tokens. Minimum is 16; values above the model's configured maximum, or that exceed the remaining context window, return a 400 error. (minimum: 16)nullable

Types

87 $defs

annotationobject | object | object

click-button-typeenum

left | right | wheel | back | forward

click-paramobject

type*enumSpecifies the event type. For a click action, this property is always click. (default: click)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.

computer-actionobject | object | object | …

computer-action-listcomputer-action[]

computer-call-output-item-paramobject

idstringThe ID of the computer tool call output.nullable
call_id*stringThe ID of the computer tool call that produced the output. (minLength: 1, maxLength: 64)length ≥ 1 · length ≤ 64
type*enumThe type of the computer tool call output. Always computer_call_output. (default: computer_call_output)computer_call_output
output*computer-screenshot-image
acknowledged_safety_checkscomputer-call-safety-check-param[]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

computer-call-safety-check-paramobject

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

computer-screenshot-imageobject

type*enumSpecifies the event type. For a computer screenshot, this property is always set to computer_screenshot. (default: computer_screenshot)computer_screenshot
image_urlstringThe URL of the screenshot image.format: uri
file_idstringThe identifier of an uploaded file that contains the screenshot.
detailenumThe detail level of the screenshot. Always original when provided.original

computer-toolobject

type*enumThe type of the computer tool. Always computer. (default: computer)computer

computer-tool-callobject

type*enumThe type of the computer call. Always computer_call. (default: computer_call)computer_call
id*stringThe unique ID of the computer call.
call_id*stringAn identifier used when responding to the tool call with output.
actionobject | object | object | …
actionscomputer-action[]
pending_safety_checks*computer-call-safety-check-param[]The pending safety checks for the computer call.
meta_safety_replay_receiptstringAn opaque Meta wire extension containing a time-bounded receipt for the accepted native-computer safety replay prefix through this call. Stateless clients must copy it unchanged from response.output into the corresponding item under input on the next request; …length ≥ 1 · length ≤ 8192
status*enumItem status. One of in_progress, completed, or incomplete. Populated when items are returned via API.in_progress | completed | incomplete

coord-paramobject

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

detail-enumenum

low | high | auto | original

double-click-actionobject

type*enumSpecifies the event type. For a double click action, this property is always set to double_click. (default: double_click)double_click
x*integerThe x-coordinate where the double click occurred.
y*integerThe y-coordinate where the double click occurred.

drag-paramobject

type*enumSpecifies the event type. For a drag action, this property is always set to drag. (default: drag)drag
path*coord-param[]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 } ]

easy-input-messageobject

role*enumRole of the message author. One of user, assistant, system, or developer.user | assistant | system | developer
content*string | input-content[]Message content. Either plain text or an array of content parts (text, image, file, or video). Can replay previous assistant output.
phaseenumcommentary | final_answer · nullable
typeenumObject type; always message.message

empty-model-paramobject

file-citation-bodyobject

type*enumAnnotation type; always file_citation. (default: file_citation)file_citation
file_id*stringIdentifier of the cited file.
index*integerPosition of the cited file in the list of files.
filename*stringName of the cited file.

file-detail-enumenum

low | high

file-input-detailenum

low | high

file-pathobject

type*enumAnnotation type; always file_path.file_path
file_id*stringIdentifier of the referenced file.
index*integerPosition of the referenced file in the list of files.

function-call-item-statusenum

in_progress | completed | incomplete

function-call-output-content-list-paraminput-text-content-param[] | object | object

function-call-output-item-paramobject

idstringIdentifier for this function tool call output; set when the item is returned by the API.nullable
call_id*stringIdentifier of the function tool call this output answers. (minLength: 1, maxLength: 64)length ≥ 1 · length ≤ 64
type*enumItem type; always function_call_output. (default: function_call_output)function_call_output
output*string | input-text-content-param[] | input-image-content-param-auto-param | input-file-content-paramThe function tool call output, as text or content parts.
statusenumItem status: in_progress, completed, or incomplete. Set when the item is returned by the API.in_progress | completed | incomplete · nullable

function-call-output-text-paramstring

function-toolobject

type*enumThe tool type; always function. (default: function)function
name*stringName of the function the model can call.
descriptionstringDescribes the function so the model can decide whether to call it.nullable
parameters*objectJSON Schema object that defines the function's parameters.nullable
strictbooleanWhether the model must produce arguments that match the parameters schema exactly. Defaults to true.nullable
defer_loadingbooleanWhen true, defers this function so it is discovered on demand through tool search.

function-tool-callobject

idstringIdentifier for this function tool call.
type*enumItem type; always function_call.function_call
call_id*stringIdentifier the model assigned to this function tool call. (minLength: 1, maxLength: 64)length ≥ 1 · length ≤ 64
namespacestringNamespace of the function to run.
name*stringName of the function to run.
arguments*stringArguments to pass to the function, as a JSON string.
statusenumItem status: in_progress, completed, or incomplete. Set when the item is returned by the API.in_progress | completed | incomplete

image-detailenum

low | high | auto | original

include-enumenum

web_search_call.results | web_search_call.action.sources | message.input_image.image_url | computer_call_output.output.ima… | reasoning.encrypted_content | message.output_text.logprobs

input-audio-contentobject

type*enumContent-part type; always input_audio. (default: input_audio)input_audio
input_audioobjectInline base64-encoded audio and its format.
audio_urlstringURL of the audio to send to the model. Fully qualified URL or base64-encoded data URL.nullable
file_idstringIdentifier for the uploaded audio file to send to the model.nullable

input-contentobject | object | object | …

input-file-contentobject

type*enumContent-part type; always input_file. (default: input_file)input_file
file_idstringIdentifier for the file to send to the model.nullable
filenamestringName of the file passed to the model.
file_datastringContents of the file passed to the model.
file_urlstringURL of the file passed to the model.
detailenumRender detail for the file: low for default rendering, high for higher quality. Defaults to low.low | high

input-file-content-paramobject

type*enumContent-part type; always input_file. (default: input_file)input_file
file_idstringIdentifier for the file to send to the model.nullable
filenamestringName of the file to send to the model.nullable
file_datastringBase64-encoded file data to send to the model. (maxLength: 73400320)nullable
file_urlstringURL of the file to send to the model.nullable
detailenumRender detail for the file: low for default rendering, high for higher quality. Defaults to low.low | high

input-image-contentobject

type*enumContent-part type; always input_image. (default: input_image)input_image
image_urlstringURL of the image to send to the model. Fully qualified URL or base64-encoded data URL.nullable
file_idstringIdentifier for the file to send to the model.nullable
detailenumRender detail for the image: one of high, low, auto, or original. Defaults to auto.low | high | auto | original

input-image-content-param-auto-paramobject

type*enumContent-part type; always input_image. (default: input_image)input_image
image_urlstringURL of the image to send to the model. Fully qualified URL or base64-encoded data URL. (maxLength: 20971520)nullable
file_idstringIdentifier for the file to send to the model.nullable
detailenumImage detail level. One of high, low, auto, or original. Defaults to auto.low | high | auto | original · nullable

input-itemobject | input-message | output-message | computer-tool-call | object

input-messageobject

typeenumItem type; always message.message
role*enumAuthor role: one of user, system, or developer.user | system | developer
statusenumItem status: in_progress, completed, or incomplete. Set when the item is returned by the API.in_progress | completed | incomplete
content*input-content[]

input-message-content-listinput-content[]

input-paramstring | input-item[]

input-text-contentobject

type*enumContent-part type; always input_text. (default: input_text)input_text
text*stringThe input text.

input-text-content-paramobject

type*enumContent-part type; always input_text. (default: input_text)input_text
text*stringThe input text. (maxLength: 10485760)length ≤ 10485760

input-video-contentobject

type*enumObject type; always input_video. (default: input_video)input_video
video_urlstringURL of the video to send to the model. Fully qualified URL or base64-encoded data URL.nullable
file_idstringIdentifier for the file to send to the model.nullable
fpsnumberFrames per second for video sampling. Defaults to backend-chosen rate.nullable

itemobject | object | object | …

item-reference-paramobject

typeenumObject type; always item_reference. (default: item_reference)item_reference · nullable
id*stringIdentifier of the item to reference.

key-press-actionobject

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

log-probobject

token*string
logprobnumberLog probability of this token. May be null when the backend omits the value.nullable
bytes*integer[]
top_logprobs*top-log-prob[]

message-phaseenum

commentary | final_answer

metadataobject

nullable

move-paramobject

type*enumSpecifies the event type. For a move action, this property is always set to move. (default: move)move
x*integerThe x-coordinate to move to.
y*integerThe y-coordinate to move to.

output-messageobject

idstringIdentifier for this output message.
type*enumItem type; always message.message
role*enumAuthor role; always assistant.assistant
content*output-message-content[]The output message content.
phaseenumcommentary | final_answer · nullable
statusenumItem status: in_progress, completed, or incomplete. Set when the item is returned by the API.in_progress | completed | incomplete

output-message-contentobject | object

output-text-contentobject

type*enumContent-part type; always output_text. (default: output_text)output_text
text*stringThe generated text.
annotationsannotation[]Annotations attached to the text output.
logprobslog-prob[]

promptobject

nullable

reasoningobject

effortenumnone | minimal | low | medium | high | xhigh · +1 more · 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
generate_summaryenumDeprecated: use summary instead. A 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

reasoning-effortenum

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

reasoning-item-paramobject

type*enumObject type; always reasoning.reasoning
idstringIdentifier for this reasoning item. Optional on input; required on output.
encrypted_contentstringOpaque encrypted content for stateless multi-turn replay. Populated when a response is generated with reasoning.encrypted_content in the include parameter.nullable
summary*summary-text-content[]Summarized reasoning content.
contentreasoning-text-content[]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

reasoning-text-contentobject

type*enumContent-part type; always reasoning_text. (default: reasoning_text)reasoning_text
text*stringThe reasoning text.

refusal-contentobject

type*enumObject type; always refusal. (default: refusal)refusal
refusal*stringThe refusal explanation from the model.

response-format-json-objectobject

type*enumResponse-format type; always json_object.json_object

response-format-json-schema-schemaobject

response-format-textobject

type*enumResponse-format type; always text.text

response-stream-optionsobject

nullable

response-text-paramobject

formatobject | object | object

screenshot-paramobject

type*enumSpecifies the event type. For a screenshot action, this property is always set to screenshot. (default: screenshot)screenshot

scroll-paramobject

type*enumSpecifies the event type. For a scroll action, this property is always set to scroll. (default: scroll)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.

service-tierenum

auto | default | flex | scale | priority · nullable

summary-text-contentobject

type*enumObject type; always summary_text. (default: summary_text)summary_text
text*stringA summary of the reasoning output from the model so far.

text-response-format-configurationobject | object | object

text-response-format-json-schemaobject

type*enumResponse-format type; always json_schema.json_schema
descriptionstringDescribes what the format is for; the model uses it to decide how to respond.
name*stringName of the response format. Allowed characters: a-z, A-Z, 0-9, underscores, and dashes, up to 64 characters.
schema*response-format-json-schema-schema
strictbooleanWhen true, the model must produce output that strictly conforms to the JSON Schema in the schema field. Only a subset of JSON Schema is supported in this mode. (default: false)nullable

toolobject | object | object | …

tool-choice-optionsenum

auto

tool-choice-paramenum

auto

tool-search-call-item-paramobject

idstringThe unique ID of this tool search call.nullable
call_idstringThe unique ID of the tool search call generated by the model. (minLength: 1, maxLength: 64)nullable
type*enumThe item type. Always tool_search_call. (default: tool_search_call)tool_search_call
executionenumWhether tool search was executed by the server or by the client.server | client
arguments*empty-model-paramThe arguments supplied to the tool search call.
statusenumThe status of the tool search call.in_progress | completed | incomplete · nullable

tool-search-execution-typeenum

server | client

tool-search-output-item-paramobject

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

tool-search-tool-paramobject

type*enumThe type of the tool. Always tool_search. (default: tool_search)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
parametersempty-model-paramParameter schema for a client-executed tool search tool.nullable

tools-arraytool[]

top-log-probobject

token*string
logprobnumberLog probability of this token. May be null when the backend omits the value.nullable
bytes*integer[]

type-paramobject

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

url-citation-bodyobject

type*enumAnnotation type; always url_citation. (default: url_citation)url_citation
url*stringURL of the cited web resource.
start_index*integerCharacter offset where the cited span begins in the output text.
end_index*integerCharacter offset where the cited span ends in the output text.
title*stringTitle of the cited web resource.

wait-paramobject

type*enumSpecifies the event type. For a wait action, this property is always set to wait. (default: wait)wait

web-search-action-findobject

type*enumAction type; always find_in_page.find_in_page
url*stringURL of the page that was searched.format: uri
pattern*stringText pattern searched for within the page.

web-search-action-open-pageobject

type*enumAction type; always open_page.open_page
urlstringURL the model opened.format: uri · nullable

web-search-approximate-locationobject

nullable

web-search-result-itemobject

typestringThe result type.
titlestringTitle of the result.
urlstringURL of the result.
snippetstringText snippet excerpted from the result.

web-search-toolobject

type*enumThe tool type; one of web_search or web_search_2025_08_26. (default: web_search)web_search | web_search_2025_08_26
filtersobjectFilters that narrow the search.nullable
user_locationobjectnullable
search_context_sizeenumHow much context window space the search may use; one of low, medium, or high, defaulting to medium. (default: medium)low | medium | high

web-search-tool-call-paramobject

idstringIdentifier for this web search tool call. Optional on input; omit it when replaying a turn for which no identifier was issued.
type*enumItem type; always web_search_call.web_search_call
status*enumStatus of the web search tool call.in_progress | searching | completed | failed
action*object | object | objectThe specific action taken in this web search call, such as search, open_page, or find_in_page.
resultsweb-search-result-item[]Results from the web search tool call. Populated only when the request's include array contains web_search_call.results.nullable

Validate a payload

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