POST /v1/responses
Tools are declared with a flat function schema (no nested function key). The model returns function_call items inside the output array.
Define a tool
Full loop
Streaming
Stream withstream=True. Tool arguments arrive as response.function_call.arguments.delta events; a response.function_call.done event signals the call is complete.
Forcing a tool
Parallel tool calls
Multiplefunction_call items can appear in a single output array. Produce one function_call_output per call_id.