Skip to main content

Create a model response

POST 

/responses

OpenAI's Responses API (client.responses.create in the OpenAI SDKs) over the same chat models as POST /v1/chat/completions, with the same keys, prices and limits.

Stateless. Nothing is stored, so the whole conversation goes in input on every request. store: true, previous_response_id, conversation, background: true and stored prompt templates are refused with 400, every response says "store": false, and the routes under /v1/responses/ (retrieve, delete, cancel, input items, compact, input tokens) answer 404.

Served:

  • text and inline images, instructions, and the items of earlier turns;
  • function tools (tools, tool_choice, parallel_tool_calls);
  • text.format (text, json_object, json_schema);
  • reasoning.effort, with the reasoning returned in plain text in a reasoning item;
  • max_output_tokens, temperature, top_p.

Streaming. With stream: true the body is a text/event-stream of Responses events (event: line plus JSON with type and sequence_number), in this order:

  1. response.created, then response.in_progress;
  2. each output item: response.output_item.added, its content part, the deltas (response.output_text.delta, response.reasoning_text.delta, response.function_call_arguments.delta) and the matching done events;
  3. exactly one of response.completed, response.incomplete or response.failed, carrying the full response.

No [DONE] follows. See the Responses API guide.

Request​

Responses​

The response. With stream: true, a text/event-stream of ResponseStreamEvent objects instead, ending with response.completed, response.incomplete or response.failed.