---
title: "`/v1/responses` — OpenAI Responses API (MVP, stateless single-turn)."
method: POST
path: "/v1/responses"
tags: ["inference"]
---

# `/v1/responses` — OpenAI Responses API (MVP, stateless single-turn).

`POST /v1/responses`

OpenAI Responses API (MVP). Strict allow-list parser: unknown top-level fields reject with 400 `unsupported_field`. `input` is either a string prompt OR an array of `{role, content}` messages. Known-rejected fields: `tools`, `tool_choice`, `previous_response_id`, `reasoning`, `background`, `metadata`, `instructions` — each rejects with 400 `unsupported_field`. `stream: true` is rejected (Responses SSE is deferred). Multimodal image content parts reject with 400 `unsupported_field` on the array form.

## Request body

- ResponsesRequest — OpenAI-compatible ``POST /v1/responses`` request (Responses MVP). **Strict allow-list**: unknown fields reject with 400 ``unsupported_field``. Type-invalid values reject with 400 ``invalid_request``. **Known-rejected fields**: - ``tools`` / ``tool_choice`` — rejected with 400 ``unsupported_field``. - ``previous_response_id`` — rejected with 400 ``unsupported_field`` (Responses MVP is stateless single-turn). - ``reasoning`` — rejected with 400 ``unsupported_field``. - ``background`` — rejected with 400 ``unsupported_field``. - ``metadata`` — rejected with 400 ``unsupported_field``. - ``instructions`` — rejected with 400 ``unsupported_field``. - ``stream: true`` — rejected with 400 ``unsupported_field`` (SSE on Responses is deferred; use ``stream: false`` or omit). - Multimodal ``image_url`` / ``input_image`` content parts on the array form — rejected with 400 ``unsupported_field``: the Responses surface is text-only. (Vision input is supported on ``/v1/chat/completions``.)
  - `input` union, required — Either a string prompt OR an array of `{role, content}` messages (array-input support). Array form: `role` is one of `"system" | "user" | "assistant" | "developer"` ("developer" normalizes to "system"). `content` is a string or an array of `text`, `input_text`, or `output_text` parts; image parts (`image_url` / `input_image`) reject with 400 unsupported_field. The array must not be empty.
    - string
    - object[]
      - `content` union, required
        - string
        - object[]
          - `text` string, required
          - `type` 'text' | 'input_text' | 'output_text', required
      - `role` 'system' | 'user' | 'assistant' | 'developer', required
  - `max_output_tokens` integer, nullable — Maximum number of generated tokens. Defaults to 16 when absent or null.
  - `model` string, required
  - `seed` integer, nullable — Optional signed 64-bit per-request sampling seed. Reproducibility is best effort, not guaranteed, and depends on the active generation backend and deployment configuration. Non-integer or out-of-range values reject with 400 invalid_request.
  - `stream` false | null, nullable — Accepted only as `false` (or absent). `true` rejects with 400 unsupported_field because Responses SSE is not supported yet.
  - `temperature` number, float, nullable — Sampling temperature representable by the worker runtime.
  - `top_p` number, float, nullable — Nucleus sampling. Finite number in ``(0, 1]``.

## Response `200`

Response object

- object
  - `created_at` integer, required
  - `id` string, required
  - `model` string, required
  - `object` 'response', required
  - `output` object[], required
    - `content` object[], required
      - `annotations` object[], required
      - `text` string, required
      - `type` 'output_text', required
    - `id` string, required
    - `role` 'assistant', required
    - `status` 'completed', required
    - `type` 'message', required
  - `status` 'completed', required
  - `usage` object, required
    - `input_tokens` integer, required
    - `output_tokens` integer, required
    - `total_tokens` integer, required

## Other responses

- `400` — Invalid or unsupported request
- `401` — Missing or invalid bearer token (inference token)
- `404` — Model not found
- `413` — Request body is too large
- `500` — Worker emitted malformed response; gateway auth enabled but no tokens configured
- `503` — Provisioning in progress, queue unavailable, or model loading

---

[API](https://skmtc.net/superlinked/apis/sie-gateway.md) · [All operations](https://skmtc.net/superlinked/apis/sie-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/superlinked/sie-gateway/versions/840fee92bd27/schema)
