Compact a response
$ openai responses compact
post /responses/compact
Compact a conversation. Returns a compacted response object.
Learn when and how to compact long-running conversations in the conversation state guide. For ZDR-compatible compaction details, see Compaction (advanced).
Parameters
-
--model: "gpt-5.4" or "gpt-5.4-mini" or "gpt-5.4-nano" or 89 more or stringModel ID used to generate the response, like
gpt-5oro3. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the model guide to browse and compare available models. -
--input: optional string or array of ResponseInputItemText, image, or file inputs to the model, used to generate a response
-
--instructions: optional stringA 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) messages in new responses. -
--previous-response-id: optional stringThe unique ID of the previous response to the model. Use this to create multi-turn conversations. Learn more about conversation state. Cannot be used in conjunction with
conversation. -
--prompt-cache-key: optional stringA key to use when reading from or writing to the prompt cache.
-
--prompt-cache-retention: optional "in_memory" or "24h"How long to retain a prompt cache entry created by this request.
Returns
-
compacted_response: object { id, created_at, object, 2 more }-
id: stringThe unique identifier for the compacted response.
-
created_at: numberUnix timestamp (in seconds) when the compacted conversation was created.
-
object: "response.compaction"The object type. Always
response.compaction. -
output: array of ResponseOutputItemThe compacted list of output items. This is a list of all user messages, followed by a single compaction item.
-
response_output_message: object { id, content, role, 3 more }An output message from the model.
-
id: stringThe unique ID of the output message.
-
content: array of ResponseOutputText or ResponseOutputRefusalThe content of the output message.
-
response_output_text: object { annotations, text, type, logprobs }A text output from the model.
-
annotations: array of object { file_id, filename, index, type } or object { end_index, start_index, title, 2 more } or object { container_id, end_index, file_id, 3 more } or object { file_id, index, type }The annotations of the text output.
-
file_citation: object { file_id, filename, index, type }A citation to a file.
-
file_id: stringThe ID of the file.
-
filename: stringThe filename of the file cited.
-
index: numberThe index of the file in the list of files.
-
type: "file_citation"The type of the file citation. Always
file_citation.
-
-
url_citation: object { end_index, start_index, title, 2 more }A citation for a web resource used to generate a model response.
-
end_index: numberThe index of the last character of the URL citation in the message.
-
start_index: numberThe index of the first character of the URL citation in the message.
-
title: stringThe title of the web resource.
-
type: "url_citation"The type of the URL citation. Always
url_citation. -
url: stringThe URL of the web resource.
-
-
container_file_citation: object { container_id, end_index, file_id, 3 more }A citation for a container file used to generate a model response.
-
container_id: stringThe ID of the container file.
-
end_index: numberThe index of the last character of the container file citation in the message.
-
file_id: stringThe ID of the file.
-
filename: stringThe filename of the container file cited.
-
start_index: numberThe index of the first character of the container file citation in the message.
-
type: "container_file_citation"The type of the container file citation. Always
container_file_citation.
-
-
file_path: object { file_id, index, type }A path to a file.
-
file_id: stringThe ID of the file.
-
index: numberThe index of the file in the list of files.
-
type: "file_path"The type of the file path. Always
file_path.
-
-
-
text: stringThe text output from the model.
-
type: "output_text"The type of the output text. Always
output_text. -
logprobs: optional array of object { token, bytes, logprob, top_logprobs }-
token: string -
bytes: array of number -
logprob: number -
top_logprobs: array of object { token, bytes, logprob }-
token: string -
bytes: array of number -
logprob: number
-
-
-
-
response_output_refusal: object { refusal, type }A refusal from the model.
-
refusal: stringThe refusal explanation from the model.
-
type: "refusal"The type of the refusal. Always
refusal.
-
-
-
role: "assistant"The role of the output message. Always
assistant. -
status: "in_progress" or "completed" or "incomplete"The status of the message input. One of
in_progress,completed, orincomplete. Populated when input items are returned via API.-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "message"The type of the output message. Always
message. -
phase: optional "commentary" or "final_answer"Labels an
assistantmessage as intermediate commentary (commentary) or the final answer (final_answer). For models likegpt-5.3-codexand beyond, when sending follow-up requests, preserve and resend phase on all assistant messages — dropping it can degrade performance. Not used for user messages.-
"commentary" -
"final_answer"
-
-
-
response_file_search_tool_call: object { id, queries, status, 2 more }The results of a file search tool call. See the file search guide for more information.
-
id: stringThe unique ID of the file search tool call.
-
queries: array of stringThe queries used to search for files.
-
status: "in_progress" or "searching" or "completed" or 2 moreThe status of the file search tool call. One of
in_progress,searching,incompleteorfailed,-
"in_progress" -
"searching" -
"completed" -
"incomplete" -
"failed"
-
-
type: "file_search_call"The type of the file search tool call. Always
file_search_call. -
results: optional array of object { attributes, file_id, filename, 2 more }The results of the file search tool call.
-
attributes: optional map[string or number or boolean]Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters, booleans, or numbers.
-
union_member_0: string -
union_member_1: number -
union_member_2: boolean
-
-
file_id: optional stringThe unique ID of the file.
-
filename: optional stringThe name of the file.
-
score: optional numberThe relevance score of the file - a value between 0 and 1.
-
text: optional stringThe text that was retrieved from the file.
-
-
-
response_function_tool_call: object { arguments, call_id, name, 4 more }A tool call to run a function. See the function calling guide for more information.
-
arguments: stringA JSON string of the arguments to pass to the function.
-
call_id: stringThe unique ID of the function tool call generated by the model.
-
name: stringThe name of the function to run.
-
type: "function_call"The type of the function tool call. Always
function_call. -
id: optional stringThe unique ID of the function tool call.
-
namespace: optional stringThe namespace of the function to run.
-
status: optional "in_progress" or "completed" or "incomplete"The status of the item. One of
in_progress,completed, orincomplete. Populated when items are returned via API.-
"in_progress" -
"completed" -
"incomplete"
-
-
-
response_function_tool_call_output_item: object { id, call_id, output, 3 more }-
id: stringThe unique ID of the function call tool output.
-
call_id: stringThe unique ID of the function tool call generated by the model.
-
output: string or array of ResponseInputText or ResponseInputImage or ResponseInputFileThe output from the function call generated by your code. Can be a string or an list of output content.
-
string output: stringA string of the output of the function call.
-
output content list: array of ResponseInputText or ResponseInputImage or ResponseInputFileText, image, or file output of the function call.
-
response_input_text: object { text, type }A text input to the model.
-
text: stringThe text input to the model.
-
type: "input_text"The type of the input item. Always
input_text.
-
-
response_input_image: object { detail, type, file_id, image_url }An image input to the model. Learn about image inputs.
-
detail: "low" or "high" or "auto" or "original"The detail level of the image to be sent to the model. One of
high,low,auto, ororiginal. Defaults toauto.-
"low" -
"high" -
"auto" -
"original"
-
-
type: "input_image"The type of the input item. Always
input_image. -
file_id: optional stringThe ID of the file to be sent to the model.
-
image_url: optional stringThe URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL.
-
-
response_input_file: object { type, detail, file_data, 3 more }A file input to the model.
-
type: "input_file"The type of the input item. Always
input_file. -
detail: optional "low" or "high"The detail level of the file to be sent to the model. Use
lowfor the default rendering behavior, orhighto render the file at higher quality. Defaults tolow.-
"low" -
"high"
-
-
file_data: optional stringThe content of the file to be sent to the model.
-
file_id: optional stringThe ID of the file to be sent to the model.
-
file_url: optional stringThe URL of the file to be sent to the model.
-
filename: optional stringThe name of the file to be sent to the model.
-
-
-
-
status: "in_progress" or "completed" or "incomplete"The status of the item. One of
in_progress,completed, orincomplete. Populated when items are returned via API.-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "function_call_output"The type of the function tool call output. Always
function_call_output. -
created_by: optional stringThe identifier of the actor that created the item.
-
-
response_function_web_search: object { id, action, status, type }The results of a web search tool call. See the web search guide for more information.
-
id: stringThe unique ID of the web search tool call.
-
action: object { query, type, queries, sources } or object { type, url } or object { pattern, type, url }An object describing the specific action taken in this web search call. Includes details on how the model used the web (search, open_page, find_in_page).
-
search: object { query, type, queries, sources }Action type "search" - Performs a web search query.
-
query: string[DEPRECATED] The search query.
-
type: "search"The action type.
-
queries: optional array of stringThe search queries.
-
sources: optional array of object { type, url }The sources used in the search.
-
type: "url"The type of source. Always
url. -
url: stringThe URL of the source.
-
-
-
open_page: object { type, url }Action type "open_page" - Opens a specific URL from search results.
-
type: "open_page"The action type.
-
url: optional stringThe URL opened by the model.
-
-
find_in_page: object { pattern, type, url }Action type "find_in_page": Searches for a pattern within a loaded page.
-
pattern: stringThe pattern or text to search for within the page.
-
type: "find_in_page"The action type.
-
url: stringThe URL of the page searched for the pattern.
-
-
-
status: "in_progress" or "searching" or "completed" or "failed"The status of the web search tool call.
-
"in_progress" -
"searching" -
"completed" -
"failed"
-
-
type: "web_search_call"The type of the web search tool call. Always
web_search_call.
-
-
response_computer_tool_call: object { id, call_id, pending_safety_checks, 4 more }A tool call to a computer use tool. See the computer use guide for more information.
-
id: stringThe unique ID of the computer call.
-
call_id: stringAn identifier used when responding to the tool call with output.
-
pending_safety_checks: array of object { id, code, message }The pending safety checks for the computer call.
-
id: stringThe ID of the pending safety check.
-
code: optional stringThe type of the pending safety check.
-
message: optional stringDetails about the pending safety check.
-
-
status: "in_progress" or "completed" or "incomplete"The status of the item. One of
in_progress,completed, orincomplete. Populated when items are returned via API.-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "computer_call"The type of the computer call. Always
computer_call."computer_call"
-
action: optional object { button, type, x, 2 more } or object { keys, type, x, y } or object { path, type, keys } or 6 moreA click action.
-
click: object { button, type, x, 2 more }A click action.
-
button: "left" or "right" or "wheel" or 2 moreIndicates which mouse button was pressed during the click. One of
left,right,wheel,back, orforward.-
"left" -
"right" -
"wheel" -
"back" -
"forward"
-
-
type: "click"Specifies the event type. For a click action, this property is always
click. -
x: numberThe x-coordinate where the click occurred.
-
y: numberThe y-coordinate where the click occurred.
-
keys: optional array of stringThe keys being held while clicking.
-
-
double_click: object { keys, type, x, y }A double click action.
-
keys: array of stringThe keys being held while double-clicking.
-
type: "double_click"Specifies the event type. For a double click action, this property is always set to
double_click. -
x: numberThe x-coordinate where the double click occurred.
-
y: numberThe y-coordinate where the double click occurred.
-
-
drag: object { path, type, keys }A drag action.
-
path: array of object { x, y }An array of coordinates representing the path of the drag action. Coordinates will appear as an array of objects, eg
[ { x: 100, y: 200 }, { x: 200, y: 300 } ]-
x: numberThe x-coordinate.
-
y: numberThe y-coordinate.
-
-
type: "drag"Specifies the event type. For a drag action, this property is always set to
drag. -
keys: optional array of stringThe keys being held while dragging the mouse.
-
-
keypress: object { keys, type }A collection of keypresses the model would like to perform.
-
keys: array of stringThe combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key.
-
type: "keypress"Specifies the event type. For a keypress action, this property is always set to
keypress.
-
-
move: object { type, x, y, keys }A mouse move action.
-
type: "move"Specifies the event type. For a move action, this property is always set to
move. -
x: numberThe x-coordinate to move to.
-
y: numberThe y-coordinate to move to.
-
keys: optional array of stringThe keys being held while moving the mouse.
-
-
screenshot: object { type }A screenshot action.
-
scroll: object { scroll_x, scroll_y, type, 3 more }A scroll action.
-
scroll_x: numberThe horizontal scroll distance.
-
scroll_y: numberThe vertical scroll distance.
-
type: "scroll"Specifies the event type. For a scroll action, this property is always set to
scroll. -
x: numberThe x-coordinate where the scroll occurred.
-
y: numberThe y-coordinate where the scroll occurred.
-
keys: optional array of stringThe keys being held while scrolling.
-
-
type: object { text, type }An action to type in text.
-
text: stringThe text to type.
-
type: "type"Specifies the event type. For a type action, this property is always set to
type.
-
-
wait: object { type }A wait action.
-
-
actions: optional array of ComputerActionFlattened batched actions for
computer_use. Each action includes antypediscriminator and action-specific fields.-
click: object { button, type, x, 2 more }A click action.
-
button: "left" or "right" or "wheel" or 2 moreIndicates which mouse button was pressed during the click. One of
left,right,wheel,back, orforward.-
"left" -
"right" -
"wheel" -
"back" -
"forward"
-
-
type: "click"Specifies the event type. For a click action, this property is always
click. -
x: numberThe x-coordinate where the click occurred.
-
y: numberThe y-coordinate where the click occurred.
-
keys: optional array of stringThe keys being held while clicking.
-
-
double_click: object { keys, type, x, y }A double click action.
-
keys: array of stringThe keys being held while double-clicking.
-
type: "double_click"Specifies the event type. For a double click action, this property is always set to
double_click. -
x: numberThe x-coordinate where the double click occurred.
-
y: numberThe y-coordinate where the double click occurred.
-
-
drag: object { path, type, keys }A drag action.
-
path: array of object { x, y }An array of coordinates representing the path of the drag action. Coordinates will appear as an array of objects, eg
[ { x: 100, y: 200 }, { x: 200, y: 300 } ]-
x: numberThe x-coordinate.
-
y: numberThe y-coordinate.
-
-
type: "drag"Specifies the event type. For a drag action, this property is always set to
drag. -
keys: optional array of stringThe keys being held while dragging the mouse.
-
-
keypress: object { keys, type }A collection of keypresses the model would like to perform.
-
keys: array of stringThe combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key.
-
type: "keypress"Specifies the event type. For a keypress action, this property is always set to
keypress.
-
-
move: object { type, x, y, keys }A mouse move action.
-
type: "move"Specifies the event type. For a move action, this property is always set to
move. -
x: numberThe x-coordinate to move to.
-
y: numberThe y-coordinate to move to.
-
keys: optional array of stringThe keys being held while moving the mouse.
-
-
screenshot: object { type }A screenshot action.
-
scroll: object { scroll_x, scroll_y, type, 3 more }A scroll action.
-
scroll_x: numberThe horizontal scroll distance.
-
scroll_y: numberThe vertical scroll distance.
-
type: "scroll"Specifies the event type. For a scroll action, this property is always set to
scroll. -
x: numberThe x-coordinate where the scroll occurred.
-
y: numberThe y-coordinate where the scroll occurred.
-
keys: optional array of stringThe keys being held while scrolling.
-
-
type: object { text, type }An action to type in text.
-
text: stringThe text to type.
-
type: "type"Specifies the event type. For a type action, this property is always set to
type.
-
-
wait: object { type }A wait action.
-
-
-
response_computer_tool_call_output_item: object { id, call_id, output, 4 more }-
id: stringThe unique ID of the computer call tool output.
-
call_id: stringThe ID of the computer tool call that produced the output.
-
output: object { type, file_id, image_url }A computer screenshot image used with the computer use tool.
-
type: "computer_screenshot"Specifies the event type. For a computer screenshot, this property is always set to
computer_screenshot. -
file_id: optional stringThe identifier of an uploaded file that contains the screenshot.
-
image_url: optional stringThe URL of the screenshot image.
-
-
status: "completed" or "incomplete" or "failed" or "in_progress"The status of the message input. One of
in_progress,completed, orincomplete. Populated when input items are returned via API.-
"completed" -
"incomplete" -
"failed" -
"in_progress"
-
-
type: "computer_call_output"The type of the computer tool call output. Always
computer_call_output. -
acknowledged_safety_checks: optional array of object { id, code, message }The safety checks reported by the API that have been acknowledged by the developer.
-
id: stringThe ID of the pending safety check.
-
code: optional stringThe type of the pending safety check.
-
message: optional stringDetails about the pending safety check.
-
-
created_by: optional stringThe identifier of the actor that created the item.
-
-
response_reasoning_item: object { id, summary, type, 3 more }A description of the chain of thought used by a reasoning model while generating a response. Be sure to include these items in your
inputto the Responses API for subsequent turns of a conversation if you are manually managing context.-
id: stringThe unique identifier of the reasoning content.
-
summary: array of object { text, type }Reasoning summary content.
-
text: stringA summary of the reasoning output from the model so far.
-
type: "summary_text"The type of the object. Always
summary_text.
-
-
type: "reasoning"The type of the object. Always
reasoning. -
content: optional array of object { text, type }Reasoning text content.
-
text: stringThe reasoning text from the model.
-
type: "reasoning_text"The type of the reasoning text. Always
reasoning_text.
-
-
encrypted_content: optional stringThe encrypted content of the reasoning item - populated when a response is generated with
reasoning.encrypted_contentin theincludeparameter. -
status: optional "in_progress" or "completed" or "incomplete"The status of the item. One of
in_progress,completed, orincomplete. Populated when items are returned via API.-
"in_progress" -
"completed" -
"incomplete"
-
-
-
response_tool_search_call: object { id, arguments, call_id, 4 more }-
id: stringThe unique ID of the tool search call item.
-
arguments: unknownArguments used for the tool search call.
-
call_id: stringThe unique ID of the tool search call generated by the model.
-
execution: "server" or "client"Whether tool search was executed by the server or by the client.
-
"server" -
"client"
-
-
status: "in_progress" or "completed" or "incomplete"The status of the tool search call item that was recorded.
-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "tool_search_call"The type of the item. Always
tool_search_call. -
created_by: optional stringThe identifier of the actor that created the item.
-
-
response_tool_search_output_item: object { id, call_id, execution, 4 more }-
id: stringThe unique ID of the tool search output item.
-
call_id: stringThe unique ID of the tool search call generated by the model.
-
execution: "server" or "client"Whether tool search was executed by the server or by the client.
-
"server" -
"client"
-
-
status: "in_progress" or "completed" or "incomplete"The status of the tool search output item that was recorded.
-
"in_progress" -
"completed" -
"incomplete"
-
-
tools: array of ToolThe loaded tool definitions returned by tool search.
-
function_tool: object { name, parameters, strict, 3 more }Defines a function in your own code the model can choose to call. Learn more about function calling.
-
name: stringThe name of the function to call.
-
parameters: map[unknown]A JSON schema object describing the parameters of the function.
-
strict: booleanWhether to enforce strict parameter validation. Default
true. -
type: "function"The type of the function tool. Always
function. -
defer_loading: optional booleanWhether this function is deferred and loaded via tool search.
-
description: optional stringA description of the function. Used by the model to determine whether or not to call the function.
-
-
file_search_tool: object { type, vector_store_ids, filters, 2 more }A tool that searches for relevant content from uploaded files. Learn more about the file search tool.
-
type: "file_search"The type of the file search tool. Always
file_search. -
vector_store_ids: array of stringThe IDs of the vector stores to search.
-
filters: optional ComparisonFilter or CompoundFilterA filter to apply.
-
comparison_filter: object { key, type, value }A filter used to compare a specified attribute key to a given value using a defined comparison operation.
-
key: stringThe key to compare against the value.
-
type: "eq" or "ne" or "gt" or 5 moreSpecifies 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 in -
"eq" -
"ne" -
"gt" -
"gte" -
"lt" -
"lte" -
"in" -
"nin"
-
-
value: string or number or boolean or array of string or numberThe value to compare against the attribute key; supports string, number, or boolean types.
-
union_member_0: string -
union_member_1: number -
union_member_2: boolean -
union_member_3: array of string or number-
union_member_0: string -
union_member_1: number
-
-
-
-
compound_filter: object { filters, type }Combine multiple filters using
andoror.-
filters: array of ComparisonFilter or unknownArray of filters to combine. Items can be
ComparisonFilterorCompoundFilter.-
comparison_filter: object { key, type, value }A filter used to compare a specified attribute key to a given value using a defined comparison operation.
-
union_member_1: unknown
-
-
type: "and" or "or"Type of operation:
andoror.-
"and" -
"or"
-
-
-
-
max_num_results: optional numberThe maximum number of results to return. This number should be between 1 and 50 inclusive.
-
ranking_options: optional object { hybrid_search, ranker, score_threshold }Ranking options for search.
-
hybrid_search: optional object { embedding_weight, text_weight }Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled.
-
embedding_weight: numberThe weight of the embedding in the reciprocal ranking fusion.
-
text_weight: numberThe weight of the text in the reciprocal ranking fusion.
-
-
ranker: optional "auto" or "default-2024-11-15"The ranker to use for the file search.
-
"auto" -
"default-2024-11-15"
-
-
score_threshold: optional numberThe 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.
-
-
-
computer_tool: object { type }A tool that controls a virtual computer. Learn more about the computer tool.
-
type: "computer"The type of the computer tool. Always
computer.
-
-
computer_use_preview_tool: object { display_height, display_width, environment, type }A tool that controls a virtual computer. Learn more about the computer tool.
-
display_height: numberThe height of the computer display.
-
display_width: numberThe width of the computer display.
-
environment: "windows" or "mac" or "linux" or 2 moreThe type of computer environment to control.
-
"windows" -
"mac" -
"linux" -
"ubuntu" -
"browser"
-
-
type: "computer_use_preview"The type of the computer use tool. Always
computer_use_preview.
-
-
web_search_tool: object { type, filters, search_context_size, user_location }Search the Internet for sources related to the prompt. Learn more about the web search tool.
-
type: "web_search" or "web_search_2025_08_26"The type of the web search tool. One of
web_searchorweb_search_2025_08_26.-
"web_search" -
"web_search_2025_08_26"
-
-
filters: optional object { allowed_domains }Filters for the search.
-
allowed_domains: optional array of stringAllowed domains for the search. If not provided, all domains are allowed. Subdomains of the provided domains are allowed as well.
Example:
["pubmed.ncbi.nlm.nih.gov"]
-
-
search_context_size: optional "low" or "medium" or "high"High level guidance for the amount of context window space to use for the search. One of
low,medium, orhigh.mediumis the default.-
"low" -
"medium" -
"high"
-
-
user_location: optional object { city, country, region, 2 more }The approximate location of the user.
-
city: optional stringFree text input for the city of the user, e.g.
San Francisco. -
country: optional stringThe two-letter ISO country code of the user, e.g.
US. -
region: optional stringFree text input for the region of the user, e.g.
California. -
timezone: optional stringThe IANA timezone of the user, e.g.
America/Los_Angeles. -
type: optional "approximate"The type of location approximation. Always
approximate."approximate"
-
-
-
mcp: object { server_label, type, allowed_tools, 7 more }Give the model access to additional tools via remote Model Context Protocol (MCP) servers. Learn more about MCP.
-
server_label: stringA label for this MCP server, used to identify it in tool calls.
-
type: "mcp"The type of the MCP tool. Always
mcp. -
allowed_tools: optional array of string or object { read_only, tool_names }List of allowed tool names or a filter object.
-
MCP allowed tools: array of stringA string array of allowed tool names
-
MCP tool filter: object { read_only, tool_names }A filter object to specify which tools are allowed.
-
read_only: optional booleanIndicates whether or not a tool modifies data or is read-only. If an MCP server is annotated with
readOnlyHint, it will match this filter. -
tool_names: optional array of stringList of allowed tool names.
-
-
-
authorization: optional stringAn 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.
-
connector_id: optional "connector_dropbox" or "connector_gmail" or "connector_googlecalendar" or 5 moreIdentifier for service connectors, like those available in ChatGPT. One of
server_urlorconnector_idmust be provided. Learn more about service connectors here.Currently supported
connector_idvalues are:-
Dropbox:
connector_dropbox -
Gmail:
connector_gmail -
Google Calendar:
connector_googlecalendar -
Google Drive:
connector_googledrive -
Microsoft Teams:
connector_microsoftteams -
Outlook Calendar:
connector_outlookcalendar -
Outlook Email:
connector_outlookemail -
SharePoint:
connector_sharepoint -
"connector_dropbox" -
"connector_gmail" -
"connector_googlecalendar" -
"connector_googledrive" -
"connector_microsoftteams" -
"connector_outlookcalendar" -
"connector_outlookemail" -
"connector_sharepoint"
-
-
defer_loading: optional booleanWhether this MCP tool is deferred and discovered via tool search.
-
headers: optional map[string]Optional HTTP headers to send to the MCP server. Use for authentication or other purposes.
-
require_approval: optional object { always, never } or "always" or "never"Specify which of the MCP server's tools require approval.
-
MCP tool approval filter: object { always, never }Specify which of the MCP server's tools require approval. Can be
always,never, or a filter object associated with tools that require approval.-
always: optional object { read_only, tool_names }A filter object to specify which tools are allowed.
-
read_only: optional booleanIndicates whether or not a tool modifies data or is read-only. If an MCP server is annotated with
readOnlyHint, it will match this filter. -
tool_names: optional array of stringList of allowed tool names.
-
-
never: optional object { read_only, tool_names }A filter object to specify which tools are allowed.
-
read_only: optional booleanIndicates whether or not a tool modifies data or is read-only. If an MCP server is annotated with
readOnlyHint, it will match this filter. -
tool_names: optional array of stringList of allowed tool names.
-
-
-
MCP tool approval setting: "always" or "never"Specify a single approval policy for all tools. One of
alwaysornever. When set toalways, all tools will require approval. When set tonever, all tools will not require approval.-
"always" -
"never"
-
-
-
server_description: optional stringOptional description of the MCP server, used to provide more context.
-
server_url: optional stringThe URL for the MCP server. One of
server_urlorconnector_idmust be provided.
-
-
code_interpreter: object { container, type }A tool that runs Python code to help generate a response to a prompt.
-
container: string or object { type, file_ids, memory_limit, network_policy }The 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_limitsetting.-
union_member_0: stringThe container ID.
-
CodeInterpreterToolAuto: object { type, file_ids, memory_limit, network_policy }Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on.
-
type: "auto"Always
auto. -
file_ids: optional array of stringAn optional list of uploaded files to make available to your code.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit for the code interpreter container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional ContainerNetworkPolicyDisabled or ContainerNetworkPolicyAllowlistNetwork access policy for the container.
-
container_network_policy_disabled: object { type }-
type: "disabled"Disable outbound network access. Always
disabled.
-
-
container_network_policy_allowlist: object { allowed_domains, type, domain_secrets }-
allowed_domains: array of stringA list of allowed domains when type is
allowlist. -
type: "allowlist"Allow outbound network access only to specified domains. Always
allowlist. -
domain_secrets: optional array of ContainerNetworkPolicyDomainSecretOptional domain-scoped secrets for allowlisted domains.
-
domain: stringThe domain associated with the secret.
-
name: stringThe name of the secret to inject for the domain.
-
value: stringThe secret value to inject for the domain.
-
-
-
-
-
-
type: "code_interpreter"The type of the code interpreter tool. Always
code_interpreter.
-
-
image_generation: object { type, action, background, 9 more }A tool that generates images using the GPT image models.
-
type: "image_generation"The type of the image generation tool. Always
image_generation. -
action: optional "generate" or "edit" or "auto"Whether to generate a new image or edit an existing image. Default:
auto.-
"generate" -
"edit" -
"auto"
-
-
background: optional "transparent" or "opaque" or "auto"Allows to set transparency for the background of the generated image(s). This parameter is only supported for GPT image models that support transparent backgrounds. Must be one of
transparent,opaque, orauto(default value). Whenautois used, the model will automatically determine the best background for the image.gpt-image-2andgpt-image-2-2026-04-21do not support transparent backgrounds. Requests withbackgroundset totransparentwill return an error for these models; useopaqueorautoinstead.If
transparent, the output format needs to support transparency, so it should be set to eitherpng(default value) orwebp.-
"transparent" -
"opaque" -
"auto"
-
-
input_fidelity: optional "high" or "low"Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for
gpt-image-1andgpt-image-1.5and later models, unsupported forgpt-image-1-mini. Supportshighandlow. Defaults tolow.-
"high" -
"low"
-
-
input_image_mask: optional object { file_id, image_url }Optional mask for inpainting. Contains
image_url(string, optional) andfile_id(string, optional).-
file_id: optional stringFile ID for the mask image.
-
image_url: optional stringBase64-encoded mask image.
-
-
model: optional string or "gpt-image-1" or "gpt-image-1-mini" or "gpt-image-2" or 3 moreThe image generation model to use. Default:
gpt-image-1.-
"gpt-image-1" -
"gpt-image-1-mini" -
"gpt-image-2" -
"gpt-image-2-2026-04-21" -
"gpt-image-1.5" -
"chatgpt-image-latest"
-
-
moderation: optional "auto" or "low"Moderation level for the generated image. Default:
auto.-
"auto" -
"low"
-
-
output_compression: optional numberCompression level for the output image. Default: 100.
-
output_format: optional "png" or "webp" or "jpeg"The output format of the generated image. One of
png,webp, orjpeg. Default:png.-
"png" -
"webp" -
"jpeg"
-
-
partial_images: optional numberNumber of partial images to generate in streaming mode, from 0 (default value) to 3.
-
quality: optional "low" or "medium" or "high" or "auto"The quality of the generated image. One of
low,medium,high, orauto. Default:auto.-
"low" -
"medium" -
"high" -
"auto"
-
-
size: optional string or "1024x1024" or "1024x1536" or "1536x1024" or "auto"The size of the generated images. For
gpt-image-2andgpt-image-2-2026-04-21, arbitrary resolutions are supported asWIDTHxHEIGHTstrings, for example1536x864. Width and height must both be divisible by 16 and the requested aspect ratio must be between 1:3 and 3:1. Resolutions above2560x1440are experimental, and the maximum supported resolution is3840x2160. The requested size must also satisfy the model's current pixel and edge limits. The standard sizes1024x1024,1536x1024, and1024x1536are supported by the GPT image models;autois supported for models that allow automatic sizing. Fordall-e-2, use one of256x256,512x512, or1024x1024. Fordall-e-3, use one of1024x1024,1792x1024, or1024x1792.-
"1024x1024" -
"1024x1536" -
"1536x1024" -
"auto"
-
-
-
local_shell: object { type }A tool that allows the model to execute shell commands in a local environment.
-
function_shell_tool: object { type, environment }A tool that allows the model to execute shell commands.
-
type: "shell"The type of the shell tool. Always
shell. -
environment: optional ContainerAuto or LocalEnvironment or ContainerReference-
container_auto: object { type, file_ids, memory_limit, 2 more }-
type: "container_auto"Automatically creates a container for this request
-
file_ids: optional array of stringAn optional list of uploaded files to make available to your code.
-
memory_limit: optional "1g" or "4g" or "16g" or "64g"The memory limit for the container.
-
"1g" -
"4g" -
"16g" -
"64g"
-
-
network_policy: optional ContainerNetworkPolicyDisabled or ContainerNetworkPolicyAllowlistNetwork access policy for the container.
-
container_network_policy_disabled: object { type } -
container_network_policy_allowlist: object { allowed_domains, type, domain_secrets }
-
-
skills: optional array of SkillReference or InlineSkillAn optional list of skills referenced by id or inline data.
-
skill_reference: object { skill_id, type, version }-
skill_id: stringThe ID of the referenced skill.
-
type: "skill_reference"References a skill created with the /v1/skills endpoint.
-
version: optional stringOptional skill version. Use a positive integer or 'latest'. Omit for default.
-
-
inline_skill: object { description, name, source, type }-
description: stringThe description of the skill.
-
name: stringThe name of the skill.
-
source: object { data, media_type, type }Inline skill payload
-
data: stringBase64-encoded skill zip bundle.
-
media_type: "application/zip"The media type of the inline skill payload. Must be
application/zip. -
type: "base64"The type of the inline skill source. Must be
base64.
-
-
type: "inline"Defines an inline skill for this request.
-
-
-
-
local_environment: object { type, skills }-
type: "local"Use a local computer environment.
-
skills: optional array of LocalSkillAn optional list of skills.
-
description: stringThe description of the skill.
-
name: stringThe name of the skill.
-
path: stringThe path to the directory containing the skill.
-
-
-
container_reference: object { container_id, type }-
container_id: stringThe ID of the referenced container.
-
type: "container_reference"References a container created with the /v1/containers endpoint
-
-
-
-
custom_tool: object { name, type, defer_loading, 2 more }A custom tool that processes input using a specified format. Learn more about custom tools
-
name: stringThe name of the custom tool, used to identify it in tool calls.
-
type: "custom"The type of the custom tool. Always
custom. -
defer_loading: optional booleanWhether this tool should be deferred and discovered via tool search.
-
description: optional stringOptional description of the custom tool, used to provide more context.
-
format: optional object { type } or object { definition, syntax, type }The input format for the custom tool. Default is unconstrained text.
-
text: object { type }Unconstrained free-form text.
-
grammar: object { definition, syntax, type }A grammar defined by the user.
-
definition: stringThe grammar definition.
-
syntax: "lark" or "regex"The syntax of the grammar definition. One of
larkorregex.-
"lark" -
"regex"
-
-
type: "grammar"Grammar format. Always
grammar.
-
-
-
-
namespace_tool: object { description, name, tools, type }Groups function/custom tools under a shared namespace.
-
description: stringA description of the namespace shown to the model.
-
name: stringThe namespace name used in tool calls (for example,
crm). -
tools: array of object { name, type, defer_loading, 3 more } or CustomToolThe function/custom tools available inside this namespace.
-
function: object { name, type, defer_loading, 3 more }-
name: string -
type: "function" -
defer_loading: optional booleanWhether this function should be deferred and discovered via tool search.
-
description: optional string -
parameters: optional unknown -
strict: optional boolean
-
-
custom_tool: object { name, type, defer_loading, 2 more }A custom tool that processes input using a specified format. Learn more about custom tools
-
name: stringThe name of the custom tool, used to identify it in tool calls.
-
type: "custom"The type of the custom tool. Always
custom. -
defer_loading: optional booleanWhether this tool should be deferred and discovered via tool search.
-
description: optional stringOptional description of the custom tool, used to provide more context.
-
format: optional object { type } or object { definition, syntax, type }The input format for the custom tool. Default is unconstrained text.
-
-
-
type: "namespace"The type of the tool. Always
namespace.
-
-
tool_search_tool: object { type, description, execution, parameters }Hosted or BYOT tool search configuration for deferred tools.
-
type: "tool_search"The type of the tool. Always
tool_search. -
description: optional stringDescription shown to the model for a client-executed tool search tool.
-
execution: optional "server" or "client"Whether tool search is executed by the server or by the client.
-
"server" -
"client"
-
-
parameters: optional unknownParameter schema for a client-executed tool search tool.
-
-
web_search_preview_tool: object { type, search_content_types, search_context_size, user_location }This tool searches the web for relevant results to use in a response. Learn more about the web search tool.
-
type: "web_search_preview" or "web_search_preview_2025_03_11"The type of the web search tool. One of
web_search_previeworweb_search_preview_2025_03_11.-
"web_search_preview" -
"web_search_preview_2025_03_11"
-
-
search_content_types: optional array of "text" or "image"-
"text" -
"image"
-
-
search_context_size: optional "low" or "medium" or "high"High level guidance for the amount of context window space to use for the search. One of
low,medium, orhigh.mediumis the default.-
"low" -
"medium" -
"high"
-
-
user_location: optional object { type, city, country, 2 more }The user's location.
-
type: "approximate"The type of location approximation. Always
approximate. -
city: optional stringFree text input for the city of the user, e.g.
San Francisco. -
country: optional stringThe two-letter ISO country code of the user, e.g.
US. -
region: optional stringFree text input for the region of the user, e.g.
California. -
timezone: optional stringThe IANA timezone of the user, e.g.
America/Los_Angeles.
-
-
-
apply_patch_tool: object { type }Allows the assistant to create, delete, or update files using unified diffs.
-
type: "apply_patch"The type of the tool. Always
apply_patch.
-
-
-
type: "tool_search_output"The type of the item. Always
tool_search_output. -
created_by: optional stringThe identifier of the actor that created the item.
-
-
response_compaction_item: object { id, encrypted_content, type, created_by }A compaction item generated by the
v1/responses/compactAPI.-
id: stringThe unique ID of the compaction item.
-
encrypted_content: stringThe encrypted content that was produced by compaction.
-
type: "compaction"The type of the item. Always
compaction. -
created_by: optional stringThe identifier of the actor that created the item.
-
-
image_generation_call: object { id, result, status, type }An image generation request made by the model.
-
id: stringThe unique ID of the image generation call.
-
result: stringThe generated image encoded in base64.
-
status: "in_progress" or "completed" or "generating" or "failed"The status of the image generation call.
-
"in_progress" -
"completed" -
"generating" -
"failed"
-
-
type: "image_generation_call"The type of the image generation call. Always
image_generation_call.
-
-
response_code_interpreter_tool_call: object { id, code, container_id, 3 more }A tool call to run code.
-
id: stringThe unique ID of the code interpreter tool call.
-
code: stringThe code to run, or null if not available.
-
container_id: stringThe ID of the container used to run the code.
-
outputs: array of object { logs, type } or object { type, url }The outputs generated by the code interpreter, such as logs or images. Can be null if no outputs are available.
-
logs: object { logs, type }The logs output from the code interpreter.
-
logs: stringThe logs output from the code interpreter.
-
type: "logs"The type of the output. Always
logs.
-
-
image: object { type, url }The image output from the code interpreter.
-
type: "image"The type of the output. Always
image. -
url: stringThe URL of the image output from the code interpreter.
-
-
-
status: "in_progress" or "completed" or "incomplete" or 2 moreThe status of the code interpreter tool call. Valid values are
in_progress,completed,incomplete,interpreting, andfailed.-
"in_progress" -
"completed" -
"incomplete" -
"interpreting" -
"failed"
-
-
type: "code_interpreter_call"The type of the code interpreter tool call. Always
code_interpreter_call.
-
-
local_shell_call: object { id, action, call_id, 2 more }A tool call to run a command on the local shell.
-
id: stringThe unique ID of the local shell call.
-
action: object { command, env, type, 3 more }Execute a shell command on the server.
-
command: array of stringThe command to run.
-
env: map[string]Environment variables to set for the command.
-
type: "exec"The type of the local shell action. Always
exec. -
timeout_ms: optional numberOptional timeout in milliseconds for the command.
-
user: optional stringOptional user to run the command as.
-
working_directory: optional stringOptional working directory to run the command in.
-
-
call_id: stringThe unique ID of the local shell tool call generated by the model.
-
status: "in_progress" or "completed" or "incomplete"The status of the local shell call.
-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "local_shell_call"The type of the local shell call. Always
local_shell_call.
-
-
local_shell_call_output: object { id, output, type, status }The output of a local shell tool call.
-
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.
-
type: "local_shell_call_output"The type of the local shell tool call output. Always
local_shell_call_output. -
status: optional "in_progress" or "completed" or "incomplete"The status of the item. One of
in_progress,completed, orincomplete.-
"in_progress" -
"completed" -
"incomplete"
-
-
-
response_function_shell_tool_call: object { id, action, call_id, 4 more }A tool call that executes one or more shell commands in a managed environment.
-
id: stringThe unique ID of the shell tool call. Populated when this item is returned via API.
-
action: object { commands, max_output_length, timeout_ms }The shell commands and limits that describe how to run the tool call.
-
commands: array of string -
max_output_length: numberOptional maximum number of characters to return from each command.
-
timeout_ms: numberOptional timeout in milliseconds for the commands.
-
-
call_id: stringThe unique ID of the shell tool call generated by the model.
-
environment: ResponseLocalEnvironment or ResponseContainerReferenceRepresents the use of a local environment to perform shell actions.
-
response_local_environment: object { type }Represents the use of a local environment to perform shell actions.
-
type: "local"The environment type. Always
local.
-
-
response_container_reference: object { container_id, type }Represents a container created with /v1/containers.
-
container_id: string -
type: "container_reference"The environment type. Always
container_reference.
-
-
-
status: "in_progress" or "completed" or "incomplete"The status of the shell call. One of
in_progress,completed, orincomplete.-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "shell_call"The type of the item. Always
shell_call. -
created_by: optional stringThe ID of the entity that created this tool call.
-
-
response_function_shell_tool_call_output: object { id, call_id, max_output_length, 4 more }The output of a shell tool call that was emitted.
-
id: stringThe unique ID of the shell call output. Populated when this item is returned via API.
-
call_id: stringThe unique ID of the shell tool call generated by the model.
-
max_output_length: numberThe maximum length of the shell command output. This is generated by the model and should be passed back with the raw output.
-
output: array of object { outcome, stderr, stdout, created_by }An array of shell call output contents
-
outcome: object { type } or object { exit_code, type }Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.
-
timeout: object { type }Indicates that the shell call exceeded its configured time limit.
-
exit: object { exit_code, type }Indicates that the shell commands finished and returned an exit code.
-
exit_code: numberExit code from the shell process.
-
type: "exit"The outcome type. Always
exit.
-
-
-
stderr: stringThe standard error output that was captured.
-
stdout: stringThe standard output that was captured.
-
created_by: optional stringThe identifier of the actor that created the item.
-
-
status: "in_progress" or "completed" or "incomplete"The status of the shell call output. One of
in_progress,completed, orincomplete.-
"in_progress" -
"completed" -
"incomplete"
-
-
type: "shell_call_output"The type of the shell call output. Always
shell_call_output. -
created_by: optional stringThe identifier of the actor that created the item.
-
-
response_apply_patch_tool_call: object { id, call_id, operation, 3 more }A tool call that applies file diffs by creating, deleting, or updating files.
-
id: stringThe unique ID of the apply patch tool call. Populated when this item is returned via API.
-
call_id: stringThe unique ID of the apply patch tool call generated by the model.
-
operation: object { diff, path, type } or object { path, type } or object { diff, path, type }One of the create_file, delete_file, or update_file operations applied via apply_patch.
-
create_file: object { diff, path, type }Instruction describing how to create a file via the apply_patch tool.
-
diff: stringDiff to apply.
-
path: stringPath of the file to create.
-
type: "create_file"Create a new file with the provided diff.
-
-
delete_file: object { path, type }Instruction describing how to delete a file via the apply_patch tool.
-
path: stringPath of the file to delete.
-
type: "delete_file"Delete the specified file.
-
-
update_file: object { diff, path, type }Instruction describing how to update a file via the apply_patch tool.
-
diff: stringDiff to apply.
-
path: stringPath of the file to update.
-
type: "update_file"Update an existing file with the provided diff.
-
-
-
status: "in_progress" or "completed"The status of the apply patch tool call. One of
in_progressorcompleted.-
"in_progress" -
"completed"
-
-
type: "apply_patch_call"The type of the item. Always
apply_patch_call. -
created_by: optional stringThe ID of the entity that created this tool call.
-
-
response_apply_patch_tool_call_output: object { id, call_id, status, 3 more }The output emitted by an apply patch tool call.
-
id: stringThe unique ID of the apply patch tool call output. Populated when this item is returned via API.
-
call_id: stringThe unique ID of the apply patch tool call generated by the model.
-
status: "completed" or "failed"The status of the apply patch tool call output. One of
completedorfailed.-
"completed" -
"failed"
-
-
type: "apply_patch_call_output"The type of the item. Always
apply_patch_call_output. -
created_by: optional stringThe ID of the entity that created this tool call output.
-
output: optional stringOptional textual output returned by the apply patch tool.
-
-
mcp_call: object { id, arguments, name, 6 more }An invocation of a tool on an MCP server.
-
id: stringThe unique ID of the tool call.
-
arguments: stringA JSON string of the arguments passed to the tool.
-
name: stringThe name of the tool that was run.
-
server_label: stringThe label of the MCP server running the tool.
-
type: "mcp_call"The type of the item. Always
mcp_call. -
approval_request_id: optional stringUnique identifier for the MCP tool call approval request. Include this value in a subsequent
mcp_approval_responseinput to approve or reject the corresponding tool call. -
error: optional stringThe error from the tool call, if any.
-
output: optional stringThe output from the tool call.
-
status: optional "in_progress" or "completed" or "incomplete" or 2 moreThe status of the tool call. One of
in_progress,completed,incomplete,calling, orfailed.-
"in_progress" -
"completed" -
"incomplete" -
"calling" -
"failed"
-
-
-
mcp_list_tools: object { id, server_label, tools, 2 more }A list of tools available on an MCP server.
-
id: stringThe unique ID of the list.
-
server_label: stringThe label of the MCP server.
-
tools: array of object { input_schema, name, annotations, description }The tools available on the server.
-
input_schema: unknownThe JSON schema describing the tool's input.
-
name: stringThe name of the tool.
-
annotations: optional unknownAdditional annotations about the tool.
-
description: optional stringThe description of the tool.
-
-
type: "mcp_list_tools"The type of the item. Always
mcp_list_tools. -
error: optional stringError message if the server could not list tools.
-
-
mcp_approval_request: object { id, arguments, name, 2 more }A request for human approval of a tool invocation.
-
id: stringThe unique ID of the approval request.
-
arguments: stringA JSON string of arguments for the tool.
-
name: stringThe name of the tool to run.
-
server_label: stringThe label of the MCP server making the request.
-
type: "mcp_approval_request"The type of the item. Always
mcp_approval_request.
-
-
mcp_approval_response: object { id, approval_request_id, approve, 2 more }A response to an MCP approval request.
-
id: stringThe unique ID of the approval response
-
approval_request_id: stringThe ID of the approval request being answered.
-
approve: booleanWhether the request was approved.
-
type: "mcp_approval_response"The type of the item. Always
mcp_approval_response. -
reason: optional stringOptional reason for the decision.
-
-
response_custom_tool_call: object { call_id, input, name, 3 more }A call to a custom tool created by the model.
-
call_id: stringAn identifier used to map this custom tool call to a tool call output.
-
input: stringThe input for the custom tool call generated by the model.
-
name: stringThe name of the custom tool being called.
-
type: "custom_tool_call"The type of the custom tool call. Always
custom_tool_call. -
id: optional stringThe unique ID of the custom tool call in the OpenAI platform.
-
namespace: optional stringThe namespace of the custom tool being called.
-
-
response_custom_tool_call_output_item: ResponseCustomToolCallOutputThe output of a custom tool call from your code, being sent back to the model.
-
id: stringThe unique ID of the custom tool call output item.
-
status: "in_progress" or "completed" or "incomplete"The status of the item. One of
in_progress,completed, orincomplete. Populated when items are returned via API.-
"in_progress" -
"completed" -
"incomplete"
-
-
created_by: optional stringThe identifier of the actor that created the item.
-
-
-
usage: object { input_tokens, input_tokens_details, output_tokens, 2 more }Token accounting for the compaction pass, including cached, reasoning, and total tokens.
-
input_tokens: numberThe number of input tokens.
-
input_tokens_details: object { cached_tokens }A detailed breakdown of the input tokens.
-
cached_tokens: numberThe number of tokens that were retrieved from the cache. More on prompt caching.
-
-
output_tokens: numberThe number of output tokens.
-
output_tokens_details: object { reasoning_tokens }A detailed breakdown of the output tokens.
-
reasoning_tokens: numberThe number of reasoning tokens.
-
-
total_tokens: numberThe total number of tokens used.
-
-
Example
openai responses compact \
--api-key 'My API Key' \
--model gpt-5.4
Response
{
"id": "id",
"created_at": 0,
"object": "response.compaction",
"output": [
{
"id": "id",
"content": [
{
"annotations": [
{
"file_id": "file_id",
"filename": "filename",
"index": 0,
"type": "file_citation"
}
],
"text": "text",
"type": "output_text",
"logprobs": [
{
"token": "token",
"bytes": [
0
],
"logprob": 0,
"top_logprobs": [
{
"token": "token",
"bytes": [
0
],
"logprob": 0
}
]
}
]
}
],
"role": "assistant",
"status": "in_progress",
"type": "message",
"phase": "commentary"
}
],
"usage": {
"input_tokens": 0,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 0,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 0
}
}