Responses

POST /v1/responses — a stateless OpenAI Responses facade over chat completions.
POST /v1/responses accepts the OpenAI Responses request shape and translates it into a chat completion. It then translates the result back into a Responses response object or Responses SSE events. Routing, quota, sticky conversations, and settlement are the same as for /v1/chat/completions. The facade is stateless. Send the full conversation in input on every call.

Endpoint

Example

Response shape. This one is a live 23 Sep 2026 response to the prompt Say hi, trimmed:

Supported request fields

Rejected

These return 400 with code: "unsupported_parameter" and a param naming the field:
  • previous_response_id, conversation, and store: true. There is no server-side state, so send the full input.
  • background: true.
  • truncation other than "disabled".
  • response_format. Use text.format instead.
Image, file, or audio input items, and built-in tool call items (web search, file search, computer use, code interpreter, MCP), are also rejected, but with 400 invalid_request and param: null.

Notes

  • Receipts: the translated body is not an OpenAI chat-completions body, so the receipt verifier’s bundle mode does not apply to it. Use /v1/chat/completions for receipts you plan to verify. Offline verification of current receipts is pending a verifier update. See Signed receipts.
  • Sticky conversations work the same way. Send X-MacProvider-Conversation. See Sticky conversations.
  • Errors use the OpenAI error envelope with retryable. See Chat completions → Errors.