Skip to main content

moonshot/kimi-k3.1-pro/chat

Kimi K3.1 Pro is Moonshot AI's flagship model, released on 23 October 2026 as the first model in its K3.1 series; Moonshot describes it as its most capable open-weight model to date. Here it is one OpenAI-compatible chat endpoint: up to 1,048,576 tokens of input, text, images and video in the messages, function calling, streaming, and a reasoning_effort of low, high or max on every request.

Input $2Output $10per 1 million tokensCached input $0.20Cache write $2

Workbench

Send a request

Quickstart

Examples use the selected endpoint’s public parameter definitions. Replace the API key and example media, then send the request from your server.

SDKs & integrations
POSThttps://api.spicyapi.ai/v1/chat/completions

API authentication

Keep the API key in the server environment variable SPICY_API_KEY. Use Bearer authentication and Content-Type: application/json for JSON requests.

Authorization: Bearer $SPICY_API_KEY
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $SPICY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "model": "moonshot/kimi-k3.1-pro/chat",
  "messages": [
    {
      "role": "user",
      "content": "Summarise the following release notes into three bullet points."
    }
  ],
  "stream": true
}' \
  | jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'

Generated from this model’s input schema — the same one the API validates every request against.

Keep one Idempotency-Key for each logical request. After a network interruption, do not automatically resend with a new key; retain request_id to investigate the accepted request. Idempotency does not replay an earlier chat stream.

Input parameters

Place the model parameters directly in the JSON request body alongside model. This endpoint does not use an input wrapper.

messagesarray<object>Required

Send Kimi K3.1 Pro an ordered conversation containing the source material for a source-backed project plan; keep tool results paired with tool_call_id.Kimi K3.1 Pro — Video uses inline bytes within the combined 14 MB media limit.

Default
Not specified
Constraints
minItems:1
maxItems:256
response_formatobjectOptional

Request text or structured JSON from Kimi K3.1 Pro for a source-backed project plan, then check the JSON against the fields your application expects.

Default
Not specified
tool_choicestring | objectOptional

For Kimi K3.1 Pro, tool_choice accepts auto / none / required / function; return each executed function’s result with its original tool_call_id.

Default
Not specified
parallel_tool_callsbooleanOptional

In a Kimi K3.1 Pro turn, this switch permits proposals for several independent functions; the application still controls their execution.

Default
true
toolsarray<object>Optional

Give Kimi K3.1 Pro up to 128 OpenAI-format function definitions for a source-backed project plan; your application checks arguments and performs the proposed operations.

Default
Not specified
Constraints
maxItems:128
stopstring | arrayOptional

Stop Kimi K3.1 Pro with one sequence or up to four sequences; the matched marker is omitted from the final text.

Default
Not specified
Constraints
minLength:1
minItems:1
maxItems:4
reasoning_effortstringOptional

Kimi K3.1 Pro accepts low, high, max, with max as the default; compare effort settings on a source-backed project plan while monitoring output-token usage.

Default
"max"
Allowed values
"low""high""max"
max_tokensintegerOptional

For Kimi K3.1 Pro, max_tokens defaults to 4,096 and allows at most 1,048,576 output tokens, including any billable reasoning; reserve enough for a source-backed project plan.

Default
4096
Constraints
minimum:1
maximum:1048576

Read the result

With stream set to false, the request returns the completed chat response directly. Read choices[].message; no task polling is needed. Set stream to true when your client supports Server-Sent Events.

Completed response example
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1788652800,
  "model": "moonshot/kimi-k3.1-pro/chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Here is a concise summary of the release notes."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 32,
    "completion_tokens": 14,
    "total_tokens": 46
  }
}

The response example is illustrative. usage reports token counts; token counts and charges depend on your actual request.

SDKs & integrations

Use SpicyAPI in your app, terminal, AI assistant or visual workflow. Choose a setup guide below.

Use it in SillyTavern and roleplay apps

In SillyTavern, RisuAI, Agnai or any app with an OpenAI-compatible setting, paste the base URL below and your API key, then pick moonshot/kimi-k3.1-pro/chat as the model. Browser calls are allowed, and sliders this model does not take are ignored instead of rejected.

Base URL: https://api.spicyapi.ai/v1
Model: moonshot/kimi-k3.1-pro/chat

Use it in ComfyUI

Install the SpicyAPI nodes from ComfyUI Manager or with the command below, then pick moonshot/kimi-k3.1-pro/chat in the SpicyAPI Chat node to use this model inside a ComfyUI graph.

cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi