Introduction
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.
| Field | Value |
|---|---|
| Input | Text |
| Output | Text |
| Input budget | 1,048,576 tokens |
| max_tokens ceiling | 1,048,576 |
| Inputs | text / images / video |
Key features & highlights
A million tokens of working material in one request
The 1,048,576-token input window lets a whole repository, a contract bundle or a long research thread travel as written. Put the material first and your question last, and the model answers from what the documents say rather than from a summary that dropped the one clause you needed.
Reasoning that is always on, with three dials
Moonshot ships Kimi K3.1 Pro as a thinking model: it reasons before it answers and the setting cannot be switched off. What you choose is how hard it works. low keeps replies quick, high suits multi-step problems, and max, the default here, gives the model the most room for a hard task.
Screenshots, diagrams and clips next to the question
A user message can mix text with image_url and video_url parts. Hand the model a failing UI screenshot with the stack trace, a chart with the question about it, or a short screen recording with the bug report, and ask for one answer that uses all of it.
Function calls your application stays in charge of
The model can return a function call instead of prose. Your code checks the arguments, runs the action and sends the result back as a tool message. Up to 128 tools ride on one call, parallel_tool_calls is on by default, and replies can stream as they are written.
Request parameters
| Parameter | Required | Description |
|---|---|---|
messages | Yes | Send Kimi K3.1 Pro an ordered conversation containing the source material for a source-backed project plan; keep tool results paired with |
max_tokens | No | For Kimi K3.1 Pro, |
reasoning_effort | No | 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. |
stop | No | Stop Kimi K3.1 Pro with one sequence or up to four sequences; the matched marker is omitted from the final text. at least 1 characters · at least 1 items · at most 4 items |
tools | No | 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. at most 128 items |
parallel_tool_calls | No | In a Kimi K3.1 Pro turn, this switch permits proposals for several independent functions; the application still controls their execution. Default: |
tool_choice | No | For Kimi K3.1 Pro, |
response_format | No | 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. |
Pricing
Input $2 / Output $10 per 1 million tokens
Use cases
Repository-scale code review and migration plans
Put the source tree, the failing tests and the change request into one call and ask for findings you can point to a file and line for. Use high or max when the answer has to follow a call across many files, then ask for a dependency-ordered plan with a check for each step.
Research over a pile of long documents
Label each paper, filing or transcript, say which version wins when two disagree, and ask for conclusions with the source named next to each. The window is large enough to keep the whole set in view instead of chunking it.
Agents that look at screenshots and clips
Send an interface screenshot or a short recording together with the task, define the tools the agent may call, and loop on tool results until it is done. Keep your own code as the thing that actually clicks, writes or deploys.
Structured extraction from messy inputs
Pass invoices, forms or chart images, describe the fields you want through a tool's parameters or a response_format, and validate what comes back before it reaches your database.
Prompt guide & pro tips
Start at max, then step down for speed
max is the default and the right place to start on a hard task. Once you know the answer quality you need, try high, and use low for short, routine turns where latency matters more than depth.
Leave room in
max_tokensfor thinkingThinking is counted inside
max_tokens, and the default is 4,096. For a long report, a big patch or anything at high or max, set it well above the length you expect to read, or the budget can run out before the visible answer does.Put the long material first and the question last
Place documents, code or transcripts early in the conversation, give each a short label, and ask the question at the end. Keep instructions in the system message, separate from quoted material, so text inside a document is not mistaken for your request.
Skip temperature and
top_pThe model sets its own sampling, so these two fields are not part of the request. Steer tone and variety with the prompt, and use stop sequences when you need the reply to end at a marker.
Research with Kimi K3.1 Pro
Use the 1,048,576-token input budget to keep a project brief, source extracts and implementation constraints in one conversation. For a financial review, identify each document and ask for the evidence behind each finding; for a software plan, request dependencies and a check for each milestone.
Thinking and delivery
K3.1 Pro always thinks: low, high and max change the effort, with max as the default. There is no temperature or top_p control here. Stream a long answer and leave space in max_tokens for both reasoning and the final deliverable.
Images, video and tools
Attach a screenshot or video alongside the question it should answer; this endpoint does not accept audio. A tool call is a proposed operation: your application must validate and run it, then return its result with the matching tool_call_id. Keep the complete assistant turn when continuing the research.
Content decisions come from the selected model. Kimi K3.1 Pro: NSFW behavior can vary, and no unrestricted-content guarantee is made.
API quick start
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'
See the API reference for authentication, the complete schema, polling, and error handling.

