Kimi K3
Kimi K3 is a general-purpose open-weight model served on Sarvam infrastructure. It accepts text, images, and video and has a 1,048,576-token context window.
Kimi K3 is in beta. Its behaviour, limits, and availability may change before general availability. Beta models must be enabled for your API key; without access, requests return 400 invalid_request_error (“This model is currently in beta”). Contact us to request access. See Beta models.
At a glance
Key capabilities
Moving from OpenRouter, Fireworks AI, or Together AI? The migration guides map model IDs and request fields to Sarvam.
Quickstart
Supported parameters
model: "kimi-k3" on Chat Completion V2
and Responses. Full request/response schemas live on
those API reference pages; this table covers what’s actually accepted for this model.
On POST /v2/responses, logprobs is only populated when the request includes
"include": ["message.output_text.logprobs"]. Without it, output[].content[].logprobs
is always an empty array even if top_logprobs is set. Verified against the live API on
2026-10-22.
Reasoning
Thinking is always on and can’t be turned off. Effort levels: low, high, max (default
max). Set them with reasoning_effort on chat or reasoning.effort on Responses.
Read the reasoning trace from choices[].message.reasoning_content on chat. On Responses,
output starts with a reasoning item; read its content[0].text (summary is empty).
Reasoning tokens are billed as output tokens and count against max_tokens /
max_output_tokens.
On Responses, when the model calls tools, output has one reasoning item followed by the
function_call items for that turn (sometimes with a message item between them).
Image input
Send images inline as base64 data URIs in an image_url content part on chat, or an
input_image part on Responses. Supported formats are PNG, JPEG, WebP, GIF, BMP, and TIFF.
Images sent by file_id are not supported.
Images are resized to about 12.8 megapixels. Images above about 179 megapixels are rejected.
Video input (beta)
Send a video inline as a base64 data URI in a video_url content part on Chat Completion
V2. Remote video URLs return 400, and the Responses API doesn’t accept video.
Kimi K3 understands only very short clips, about four frames. Longer clips can come back as blank or repeated frames, and the answer describes only part of the video. For longer videos, use MiMo V2.6 Flash or MiMo V2.6 Pro.
Audio input is not supported and returns 400.
Tool calling
Pass OpenAI-compatible tools. tool_choice accepts "auto", "none", "required", or a
named function ({"type": "function", "function": {"name": "..."}}). The model
can return several tool calls in one turn; set parallel_tool_calls: false to get at most one.
Multiple choices
n > 1 needs temperature greater than 0. Sending n > 1 with temperature: 0 returns 400.
Known limitations
- Video input is beta and reliable only for very short clips (see Video input).
- Reasoning and the final answer share the
max_tokens/max_output_tokensbudget. - A
stopstring can match inside the thinking, which ends the response early withcontent: null. Use stop strings that won’t appear in reasoning. - Set
max_tokensexplicitly. When it’s omitted, generation isn’t capped at a small default and long answers can run to tens of thousands of tokens.