We use cookies to enhance your experience, provide personalised content, and analyse our traffic; see our Cookie Policy.
moonshot-ai/kimi-k3Very long answers over a million-token context
Kimi K3 is Moonshot AI's flagship, announced on 17 July 2026: an open 2.8T-parameter model built, according to Moonshot, for long-horizon coding, knowledge work and reasoning. It reads text and images over 1,048,576 tokens of context.
Its edge on Tchavi is output. It can write up to 943,718 tokens in a single response. Translate a whole book, produce a long report, rewrite a repository file by file. Tool calling and JSON mode let you wire it into agents and pipelines.
On Tchavi you pay with mobile money, no bank card and no KYC. One account and one API key open 100+ models: swap the base URL, keep your OpenAI SDK, and your credits never expire.
One very long answer in a single pass
Entire codebases and archives as input
Reads images and screenshots with your text
Drives agents and function-calling pipelines
Structured output for your pipelines
Published by Moonshot under the Kimi K3 licence
Draft the full technical specification for a mobile-money payment gateway: every endpoint, every error case and every webhook.
Read this entire repository and rewrite it from callbacks to async/await, file by file, without changing behaviour.
Kimi K3 gives 1,048,576 tokens of context and up to 943K of output. Kimi K2.5 (model: "kimi-k2.5") has 262K of context and 235K of output, and covers everyday agent loops. Take K3 when output or context outgrow K2.5.
DeepSeek V4 Pro (model: "deepseek-v4-pro") also has 1M of context but stops at 384K of output and reads text only. Kimi K3 writes far longer and reads images. For text-only agentic coding, compare both.
1,048,576 tokens in, up to 943,718 out. The ceiling is real capacity: limit max_tokens so you do not pay for a longer answer than you need.
Images, yes. PDFs, no: it takes no PDF documents or attached files on Tchavi. For PDFs, pick Claude Sonnet 5 or GPT-6 Sol.
Swap the base URL for Tchavi's, use your Tchavi key and set model: "kimi-k3" on /v1/chat/completions. The rest of your code stays the same.
Yes. Top up your Tchavi account with Orange Money, MTN MoMo, M-Pesa or another mobile money operator. No bank card is needed. Credits land as soon as the payment is confirmed and are deducted as you use them.
Yes. Keep your current OpenAI SDK, just change the base URL to Tchavi's (shown in the API tab) and use your Tchavi key. The rest of your code stays the same.
import Tchavi from '@tchavi/sdk';
const client = new Tchavi({ apiKey: 'API_KEY' });
const response = await client.chat.completions.create({
model: 'kimi-k3',
messages: [
{
"role": "user",
"content": "Hello!"
}
],
});
console.log(response.choices[0].message.content);
console.log('Credits used:', response.tchavi.credits_used);Every parameter this model accepts on the API. Check the SDK for full typings.
modelRequiredID of the chat model (e.g. `kimi-k3`).
messagesRequiredConversation messages. Each item has a `role` (system/user/assistant) and a `content` that's either a plain string or an array of content blocks (`text`, `image_url`, `document_url`).
temperature1Sampling temperature between 0 and 2. Higher values = more random.
max_tokensMaximum number of tokens to generate in the response.
max_completion_tokensOpenAI alias for `max_tokens`. Either field works; if both are sent, `max_completion_tokens` wins.
streamfalseIf true, partial message deltas are streamed as Server-Sent Events.
toolsFunction-calling toolbox. Pass an array of `{ type: "function", function: { name, description, parameters } }`. Returned tool calls land in `choices[].message.tool_calls`. Only models with `supportsTools: true` accept this.
tool_choiceHow the model picks among tools: `"auto"` (default), `"none"` to force a plain text reply, or `{ type: "function", function: { name } }` to force a specific tool. Only with `supportsTools: true`.
response_formatConstrain the output. Pass `{ type: "json_object" }` to force valid JSON (the model still needs a JSON instruction in your prompt). Only models with `supportsJsonMode: true` honour this.
top_p1Nucleus sampling: only tokens in the top `top_p` probability mass are considered.
seedInteger seed for deterministic output. The same seed + identical request yields the same completion when supported by the provider. OpenAI honours it; Anthropic ignores.
n1Number of completions to generate in one call. Defaults to 1; each extra completion is billed.
stream_optionsStreaming options, e.g. `{ "include_usage": true }` to receive a final SSE chunk with usage counts. Effective only when `stream: true`.
stopUp to 4 sequences where the API will stop generating further tokens.
frequency_penalty0Between -2.0 and 2.0. Positive values penalize tokens that have appeared frequently.
presence_penalty0Between -2.0 and 2.0. Positive values encourage the model to talk about new topics.
userEnd-user identifier passed to the upstream provider for abuse / moderation tracking. Should be stable per end-user.
logit_biasPer-token logit bias `{ "<tokenId>": <-100..100>, ... }`. OpenAI-specific; Anthropic ignores silently.
messages[].content[].image_urlAttach an image on a user message. Pass a content block `{ "type": "image_url", "image_url": { "url": ... } }`. PNG / JPEG / WebP, up to 4 per request. Only models with `supportsImageInput: true` accept this block (e.g. `gpt-4o`, `claude-opus-4-7`).
Estimated over 30 days, for a typical message: ~500 input + ~150 output tokens, billed to the thousandth of a credit.