Kimi K3 on KeepRouter: working with a 1M-token context window
Kimi K3 is available in KeepRouter's production catalog. Its documented 1M-token context changes how much can fit in one request, but cost decisions should still come from measured request usage.
Published 2026-07-23 · Updated 2026-08-15 · KeepRouter Editorial · 6 minute read

kimi-k3 is in the production catalog. Kimi's official API documentation describes a 1M-token context window, which changes what can fit in a single request: a large repository slice, a long document set, or an extended agent transcript. This article covers how to call it and how to reason about what that context size costs—from your own measured usage, not estimates.
Call it with the OpenAI SDK
from openai import OpenAI
client = OpenAI(base_url="https://keeprouter.com/v1", api_key="sk-kr-your-key")
r = client.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Hello"}],
)
print(r.choices[0].message.content)Or in Claude Code
Claude Code sends Anthropic Messages requests, and KeepRouter serves that format:
export ANTHROPIC_BASE_URL=https://keeprouter.com
export ANTHROPIC_AUTH_TOKEN=sk-kr-your-keyRun claude, then switch with /model kimi-k3. For environment details and limitations, see the Claude Code setup guide.
What a 1M-token window means for cost
A large context window does not change the accounting principle—it changes how large your input can get. Charges are based on measured input and output at the model's current rates, including documented cache treatment. At repository scale, input can become a major component. Two practical consequences follow:
- Send context deliberately. A window that admits a very large prompt does not mean every request should fill it. Include what the task needs; use the request record to see what was actually sent.
- Check current cache treatment. The kimi-k3 model page is the live source for input, output, and cached-input rates when listed. Repeated, stable prefixes are where cache behavior may matter; verify it from your own records.
| Decision | Evidence to collect | Boundary |
|---|---|---|
| Context selection | Files or messages included, measured input units | Capacity does not prove relevance |
| Output limit | Requested maximum, finish reason, output units | A large maximum is not a target length |
| Cache behavior | Stable prefix, cache units, repeated-request comparison | A cache claim is workload- and policy-specific |
| Production fit | Status, latency, task assertion, charge | One successful prompt does not prove every tool workflow |
This article deliberately records no prices: /models/kimi-k3 is the current source for rates, endpoint compatibility, and account eligibility.
Measure before you commit
Run one representative long-context task, then inspect the request record: input units, output units, status, charge, and model. Repeat with the same repository state, prompt, allowed tools, and expected output. Those measured requests tell you more about your workload than a static comparison table.
Boundary and start
The upstream model's documented capacity does not prove that every gateway endpoint exposes every upstream feature. Verify KeepRouter's current model page and OpenAPI, then run a scoped test through the quickstart. If you need an account, use the create-key action below the guide. Account eligibility is dynamic, so read the console at call time.
Frequently asked questions
Does a 1M-token context mean every request should be large?
No. It is a capacity ceiling, not a target. Send only relevant context and use measured input units to understand the result and cost.
Where should I check current kimi-k3 rates and endpoints?
Use the live KeepRouter model page for model-level facts and the public OpenAPI document for route schemas. This article intentionally has no price snapshot.
Sources reviewed
Article last reviewed 2026-08-15
- [1] Kimi K3 official API guide
- [2] Anthropic Messages API
- [3] KeepRouter kimi-k3 model page
- [4] KeepRouter OpenAPI