LLM models
Kimi K3
On this page
Frontier coding, native vision, and 1M-token agents from Moonshot AI.
| modelId | kimi-k3 |
| Modality | text |
| Pricing | See this model on the Pricing page for the current per-call price (with your markup). |
Operations
| Operation | modelId | Endpoint | Required input |
|---|---|---|---|
| Default | kimi-k3 | POST /api/v1/generate | prompt |
| Poll task | — | GET /api/v1/task/{id}?model=kimi-k3 | — |
Input parameters
| Field | Type | Required | Values / example |
|---|---|---|---|
| prompt | string | Yes | Text value (example: Refactor this into an iterative version and explain the trade-off: a recursive directory walk that returns every file path under a root, currently blowing the… — full value in the request example) |
| reasoning_effort | string | No | Control reasoning depth: Low for faster responses, High for deeper analysis (options: Low | Medium | High | XHigh) (example: High) |
| max_tokens | number | No | Maximum response length. Kimi K3 supports a 1M-token context; leave empty for the default of 4096. (range 1-128000) |
| stream | boolean | No | Turn off to get a single non-streaming response. (true/false) (example: true) |
| system | string | No | System instruction for the model. Defaults to "You are Kimi K3, developed by Moonshot AI." when omitted. |
| messages | array | No | A conversation instead of a single prompt: an array of { "role", "content" } objects, where role is user, assistant, system or tool (a function result, with tool_call_id); an assistant message may carry tool_calls instead of text — see tools. Send the whole conversation — we do not limit how many messages it has, and we do not drop old ones; the model's context window is the limit. Send prompt or messages, not both. Do not flatten a conversation into one prompt with "User:" / "Assistant:" labels — the model reads that as a single message, and a model using web search then searches for the whole block instead of your question. |
| tools | array | No | Functions the model may call, up to 64. Each is { "type": "function", "function": { "name", "description", "parameters" } } with parameters a JSON Schema object (the flat Responses form and Anthropic's { "name", "description", "input_schema" } are accepted too); strict: true is not accepted on this model. When the model calls one, the response carries toolCalls: run the function, then send the conversation back in messages with the assistant's tool_calls and one { "role": "tool", "tool_call_id", "content" } message per result — and the same tools again. Function calling cannot be combined with web search in the same request. |
| tool_choice | string | object | No | auto (the model decides; the default when tools is set), none (no call), or required (at least one call). Other values are not available on this model and are refused before any charge. |
Example request
bash
curl -X POST https://you.bot/api/v1/generate \
-H "Authorization: Bearer $YOUBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId":"kimi-k3","input":{"prompt":"Refactor this into an iterative version and explain the trade-off: a recursive directory walk that returns every file path under a root, currently blowing the stack on deep trees. Give the rewritten function, then three sentences on what you gained, what you gave up, and the input size where the difference starts to matter.","reasoning_effort":"High","max_tokens":4096,"stream":true}}'