---
title: "Create response"
method: POST
path: "/responses"
tags: ["Responses"]
---

# Create response

`POST /responses`

Creates a model response for the given input. This is the OpenAI Responses API. Supports `instructions` (system message equivalent), streaming, tool calling, JSON mode, and multi-turn conversations.
When present, reasoning is returned as a structured output item with `type: "reasoning"`, separate from the message output.

## Request body

- ResponseRequest
  - `model` 'corti-s1' | 'corti-s1-instant' | 'corti-s1-mini' | 'corti-s1-mini-instant', required
  - `input` object[], required — Input messages as an array of message objects. Each message has a `role` and a `content` array of typed parts.
    - `role` 'user' | 'assistant', required
    - `content` object[], required
      - `type` 'input_text' | 'output_text', required — `input_text` for user messages, `output_text` for assistant messages in multi-turn conversations.
      - `text` string, required — The text content.
  - `instructions` string, nullable — System-level instructions. Equivalent to a system message in chat completions.
  - `stream` boolean — If true, returns Server-Sent Events (SSE) with typed events (`response.created`, `response.in_progress`, `response.output_item.added`, `response.output_text.delta`, `response.completed`).
  - `temperature` number, float
  - `top_p` number, float
  - `max_output_tokens` integer — Maximum output tokens. If exceeded, the response status is `incomplete` with `incomplete_details.reason: "max_output_tokens"`.
  - `response_format` object
    - `type` 'json_object', required
  - `tools` ResponseFunctionTool[] — Tools the model may call.
    - `type` 'function', required
    - `name` string, required
    - `description` string
    - `parameters` object, required — JSON Schema object defining accepted parameters.
  - `tool_choice` 'auto' | 'none'
  - `presence_penalty` number, float
  - `frequency_penalty` number, float

## Response `200`

Successful response. For non-streaming requests, returns a complete response object. For streaming requests, returns Server-Sent Events (SSE) with typed events.

- ResponseObject
  - `id` string — Unique response ID (e.g. `resp_88d5b93fd2e7b7b1`).
  - `object` 'response'
  - `created_at` integer — Unix timestamp (seconds).
  - `model` string — The model name used for this response.
  - `status` 'completed' | 'incomplete' — `incomplete` when max_output_tokens is hit before generation finishes.
  - `incomplete_details` object, nullable
    - `reason` 'max_output_tokens'
  - `instructions` string, nullable
  - `output` ResponseOutputItem[] — Array of output items. May include reasoning items with `type: "reasoning"`, message items with `type: "message"`, and function call items with `type: "function_call"`.
    - union
      - object
        - `id` string
        - `type` 'message'
        - `role` 'assistant'
        - `status` 'completed'
        - `phase` string, nullable
        - `content` object[]
          - `text` string — The model's text response.
          - `type` 'output_text'
          - `annotations` unknown[]
            - unknown
          - `logprobs` object, nullable
      - object
        - `id` string
        - `type` 'function_call'
        - `name` string — Function name to call.
        - `arguments` string — JSON-encoded function arguments.
        - `call_id` string — ID to reference when providing the tool result.
        - `namespace` string, nullable
        - `status` 'completed'
  - `temperature` number
  - `top_p` number
  - `tool_choice` string
  - `tools` unknown[]
    - unknown
  - `max_output_tokens` integer
  - `previous_response_id` string, nullable
  - `usage` ResponseUsage
    - `input_tokens` integer
    - `output_tokens` integer
    - `total_tokens` integer
    - `input_tokens_details` object
      - `cached_tokens` integer
      - `input_tokens_per_turn` unknown[]
        - unknown
      - `cached_tokens_per_turn` unknown[]
        - unknown
    - `output_tokens_details` object
      - `reasoning_tokens` integer
      - `tool_output_tokens` integer
      - `output_tokens_per_turn` unknown[]
        - unknown
      - `tool_output_tokens_per_turn` unknown[]
        - unknown
  - `service_tier` string, nullable
  - `truncation` string
  - `background` boolean
  - `parallel_tool_calls` boolean
  - `max_tool_calls` integer, nullable
  - `text` string, nullable
  - `top_logprobs` integer, nullable
  - `reasoning` string, nullable — Reasoning is returned in `output[]` items.
  - `prompt` string, nullable
  - `metadata` object, nullable
  - `user` string, nullable
  - `presence_penalty` number
  - `frequency_penalty` number
  - `kv_transfer_params` object, nullable
  - `input_messages` unknown[], nullable
    - unknown
  - `output_messages` unknown[], nullable
    - unknown

## Other responses

- `401` — Authentication failed
- `404` — Response ID not found
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/corti/apis/admin-api.md) · [All operations](https://skmtc.net/corti/apis/admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/corti/admin-api/revisions/5d1895a1b3fc/schema)
