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

# Create Response

`POST /v1/responses`

## Request

- Base URL: `https://api.minimax.io`
- URL: `https://api.minimax.io/v1/responses`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/minimax/apis/minimax-responses-api/docs/v1/responses/post.ts> (a function with typed inputs; its response is checked against the schema)

## Headers

- `Content-Type` 'application/json', required

## Request body

- CreateResponseReq
  - `model` string, required: Model name to invoke, e.g. `MiniMax-M3.1-Flash`
  - `service_tier` 'standard' | 'priority': Service tier for request admission. Supported values are `standard` and `priority`. If omitted, the request uses the `standard` tier. The `priority` [price](https://platform.minimax.io/docs/pricing/overview#models/text) is 1.5 times the `standard` price and ensures priority admission so the request is processed ahead of other requests, leading to faster responses and fewer failures. `MiniMax-M3.1-Flash` does not support this field.
  - `input` union, required: Conversation content. Supports either a simple text or a full conversation history array
    - string: Simple text input
    - InputItem[]: Full conversation history
      - `type` 'message' | 'function_call' | 'function_call_output' | 'reasoning': Item type
      - `role` 'user' | 'assistant' | 'system' | 'developer' | 'tool': Message role (only when `type` is `message`)
      - `content` union: Message content; string or multimodal parts array (only when `type` is `message`)
        - string
        - ContentPart[]
          - `type` 'input_text' | 'output_text' | 'input_image' | 'input_video', required: Content part type: - `input_text` / `output_text`: Text part - `input_image`: Image input - `input_video`: Video input
          - `text` string: Text content (when `type` is `input_text` / `output_text`)
          - `image_url` union: Image input (when `type` is `input_image`). Supported formats: JPEG, PNG, GIF, WEBP
            - string
            - object
              - …
          - `video_url` union: Video input (when `type` is `input_video`). Supported formats: MP4, AVI, MOV, MKV
            - string
            - object
              - …
      - `call_id` string: Tool call ID (only when `type` is `function_call` or `function_call_output`)
      - `name` string: Function name (only when `type` is `function_call`)
      - `arguments` string: Function arguments as a JSON string (only when `type` is `function_call`)
      - `output` union: Tool return result (only when `type` is `function_call_output`)
        - string
        - ContentPart[]
          - `type` 'input_text' | 'output_text' | 'input_image' | 'input_video', required: Content part type: - `input_text` / `output_text`: Text part - `input_image`: Image input - `input_video`: Video input
          - `text` string: Text content (when `type` is `input_text` / `output_text`)
          - `image_url` union: Image input (when `type` is `input_image`). Supported formats: JPEG, PNG, GIF, WEBP
            - string
            - object
              - …
          - `video_url` union: Video input (when `type` is `input_video`). Supported formats: MP4, AVI, MOV, MKV
            - string
            - object
              - …
      - `summary` object[]: Reasoning segment array (only when `type` is `reasoning`)
        - `type` 'summary_text'
        - `text` string: Reasoning text
  - `instructions` string: System instructions
  - `max_output_tokens` integer: Maximum output token count. Reasoning tokens count toward it too, so a value that is too small yields `status: "incomplete"` with no `message` item in `output`.
  - `temperature` number, float: Not supported yet; any value passed has no effect. `MiniMax-M3.1-Flash` and `MiniMax-M3` always use 1.
  - `top_p` number, float: Not supported yet; any value passed has no effect. `MiniMax-M3.1-Flash` and `MiniMax-M3` always use 0.95. If passed, the value must be within (0, 1].
  - `stream` boolean: Set to `true` to enable SSE streaming response
  - `tools` Tool[]: Tool list
    - `type` 'function', required: Tool type
    - `name` string, required: Function name
    - `description` string: Function description, helps the model decide when to call it
    - `parameters` object: Function parameter definition in JSON Schema format
  - `tool_choice` 'auto': Tool selection strategy: `auto` lets the model decide whether to call tools
  - `metadata` object: Request metadata. Both keys and values are strings
  - `prompt_cache_key` string: Prompt cache routing identifier
  - `text` object: Output format control
    - `format` object
      - `type` 'text': Output format type
  - `reasoning` object: Reasoning control. The default depends on the model, so no schema-level default is declared. - `MiniMax-M3.1-Flash`: reasoning is always on, including when `reasoning` is omitted. `effort` accepts `low`, `medium`, `high`, `xhigh` or `max`, and does tune reasoning depth. When omitted, it defaults to `max`. `effort: "none"` returns HTTP 400. - `MiniMax-M3`: reasoning is off unless `effort` is set to a non-`none` value, which turns reasoning on but does not tune its depth.
    - `effort` 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'none'

## Response `200`

Successful response

- CreateResponseResp
  - `id` string: Response ID
  - `object` 'response': Object type, always `response`
  - `created_at` integer: Response creation time (Unix seconds)
  - `model` string: Actual model that processed the request
  - `status` 'completed' | 'incomplete' | 'failed': Response status
  - `output` OutputItem[]: Model output list
    - union
      - object
        - `id` string: `<id>_msg` format
        - `type` 'message'
        - `status` 'completed'
        - `role` 'assistant'
        - `content` object[]
          - `type` 'output_text'
          - `text` string: Text generated by the model
          - `annotations` unknown[]: Reference annotations
            - unknown
      - object: Reasoning output (only returned when reasoning is enabled)
        - `id` string: `<id>_rs` format
        - `type` 'reasoning'
        - `status` 'completed'
        - `summary` unknown[]: Reasoning summary
          - unknown
        - `content` object[]
          - `type` 'reasoning_text'
          - `text` string: Reasoning text
      - object: Function call
        - `id` string: `<id>_fc_<index>` format
        - `type` 'function_call'
        - `status` 'completed'
        - `call_id` string: Tool call ID, used to correlate with `function_call_output`
        - `name` string: Function name
        - `arguments` string: Function arguments as a JSON string
  - `output_text` string, nullable: Convenience field: concatenates all text outputs
  - `usage` Usage
    - `input_tokens` integer: Input token count
    - `input_tokens_details` object
      - `cached_tokens` integer: Prompt cache hit tokens
    - `output_tokens` integer: Output token count
    - `output_tokens_details` object
      - `reasoning_tokens` integer: Tokens consumed by reasoning (only counted when reasoning is enabled)
    - `total_tokens` integer: Total token count
  - `error` object, nullable: Error info, only returned when `status=failed`
    - `code` string: Error code
    - `message` string: Human-readable error description
  - `incomplete_details` object, nullable: Reason for incompletion, only returned when `status=incomplete`
    - `reason` 'max_output_tokens' | 'content_filter'
  - `parallel_tool_calls` boolean: This parameter is not supported in requests. If passed, it will be ignored, and the response always returns **`true`**.
  - `store` boolean: This parameter is not supported in requests. If passed, it will be ignored, and the response always returns **`false`**.
  - `truncation` 'disabled': This parameter is not supported in requests. If passed, it will be ignored, and the response always returns **`disabled`**.
  - `previous_response_id` string, nullable: This parameter is not supported in requests. If passed, it will be ignored, and the response always returns **`null`**.
  - `conversation` object, nullable: This parameter is not supported in requests. If passed, it will be ignored, and the response always returns **`null`**.
  - `service_tier` string, nullable: The service tier actually applied to this request: `standard` or `priority`. `MiniMax-M3.1-Flash` does not support this field, so the response returns **`null`**.
  - `safety_identifier` string, nullable: This parameter is not supported in requests. If passed, it will be ignored, and the response always returns **`null`**.

## Changes

- **2026-11-07** `caf5377783c4`: 1 warning
  - the `top_p` request property's exclusiveMinimum was set to `0.00`
- **2026-11-06** `a8c51922e453`: 7 breaking, 9 info
  - removed the enum value `none` of the request property `tool_choice`
  - the response property `created_at` became optional for the status `200`
  - the response property `id` became optional for the status `200`
  - the response property `model` became optional for the status `200`
  - …12 more

[Operation history](https://skmtc.dev/minimax/apis/minimax-responses-api/changes/v1/responses/post.md)

---

[API](https://skmtc.dev/minimax/apis/minimax-responses-api.md) - [All operations](https://skmtc.dev/minimax/apis/minimax-responses-api/llms.txt) - [OpenAPI document](https://skmtc.dev/minimax/apis/minimax-responses-api/revisions/caf5377783c4?raw)
