call_id: string

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

output: string | Array<ResponseInputText { text, type, prompt_cache_breakpoint } | ResponseInputImage { detail, type, file_id, 2 more } | ResponseInputFile { type, detail, file_data, 4 more } >

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

One of the following:
string
Array<ResponseInputText { text, type, prompt_cache_breakpoint } | ResponseInputImage { detail, type, file_id, 2 more } | ResponseInputFile { type, detail, file_data, 4 more } >
ResponseInputText { text, type, prompt_cache_breakpoint }

A text input to the model.

text: string

The text input to the model.

type: "input_text"

The type of the input item. Always input_text.

prompt_cache_breakpoint?: PromptCacheBreakpoint { mode }

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

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputImage { detail, type, file_id, 2 more }

An image input to the model. Learn about image inputs.

detail: ImageDetail

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

One of the following:
"low"
"high"
"auto"
"original"
type: "input_image"

The type of the input item. Always input_image.

file_id?: string | null

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

image_url?: string | null

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

formaturi
prompt_cache_breakpoint?: PromptCacheBreakpoint { mode }

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

mode: "explicit"

The breakpoint mode. Always explicit.

ResponseInputFile { type, detail, file_data, 4 more }

A file input to the model.

type: "input_file"

The type of the input item. Always input_file.

detail?: "auto" | "low" | "high"

The detail level of the file to be sent to the model. Use auto to let the system select the detail level; for GPT-5.6 and later models, auto uses high-quality rendering, which may increase input token usage. Use low for lower-cost rendering, or high to render the file at higher quality. Defaults to auto.

One of the following:
"auto"
"low"
"high"
file_data?: string

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

file_id?: string | null

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

file_url?: string

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

formaturi
filename?: string

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

prompt_cache_breakpoint?: PromptCacheBreakpoint { mode }

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

mode: "explicit"

The breakpoint mode. Always explicit.

type: "custom_tool_call_output"

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

id?: string

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

caller?: Direct { type } | Program { caller_id, type } | null

The execution context that produced this tool call.

One of the following:
Direct { type }
type: "direct"

The caller type. Always direct.

Program { caller_id, type }
caller_id: string

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

minLength1
maxLength64
type: "program"

The caller type. Always program.