MoonshotAI: Kimi K3
moonshotai/kimi-k3Kimi K3 is a 2.8T parameter open-weight multimodal reasoning model from Moonshot AI.
Available after your first credit purchase. Its supplier limits how much it can serve each day, so it is reserved for accounts that have bought credit at least once, any amount. Until then, requests get 402 purchase_required and nothing is charged; the sign-up credit works on every model without this notice. Buy credits
Pricing
What you pay per 1 million tokens. Cached prompt tokens are billed at the cache-read price when the upstream reports them; otherwise at the input price.
| Token type | Price / 1M | Per token |
|---|---|---|
| Input (prompt) | $3.75 | $0.00000375 |
| Output (completion) | $18.75 | $0.00001875 |
| Cache read | $0.375 | $0.000000375 |
Worked example: a request with 10,000 prompt tokens and 1,000 completion tokens costs $0.0563. While it runs, the request holds the maximum it could cost (based on max_tokens), then settles at the actual cost. How pricing works
Capabilities
Only capabilities we have verified end to end through the API are listed.
- Features
- StreamingTool callingStructured outputsReasoning
- Input
- TextImage
- Output
- Text
- Context window
- 1,048,576 tokens
- Max output
- 262,144 tokens
Performance on AI Models Router
Measured from real requests through our API in the last 7 days, all customers. A figure appears once it rests on at least 50 requests; until then we show how many there are, never an estimate.
How each figure is measured
- Success rate
- Requests that returned a complete response, out of those that succeeded or failed on the supply side (an upstream error, timeout, capacity limit or a fault on our side). Requests you cancel, invalid requests and your own credit or key limits don't count. A request that fails before any output is never charged.
- Cache-hit rate
- Cached prompt tokens as a share of all prompt tokens, billed at the cache-read price.
- Time to first token
- Median time from your request reaching us to the first streamed token, reasoning included.
- Output speed
- Median output tokens per second after the first token, on streamed replies of at least 50 tokens.
Updated every 10 minutes · last computed 19:55 UTC
Usage · last 30 days
Requests per day
| Day | Requests |
|---|---|
| 2026-10-06 | 0 |
| 2026-10-07 | 0 |
| 2026-10-08 | 0 |
| 2026-10-09 | 0 |
| 2026-10-10 | 0 |
| 2026-10-11 | 0 |
| 2026-10-12 | 0 |
| 2026-10-13 | 0 |
| 2026-10-14 | 0 |
| 2026-10-15 | 0 |
| 2026-10-16 | 0 |
| 2026-10-17 | 0 |
| 2026-10-18 | 0 |
| 2026-10-19 | 0 |
| 2026-10-20 | 0 |
| 2026-10-21 | 0 |
| 2026-10-22 | 0 |
| 2026-10-23 | 0 |
| 2026-10-24 | 0 |
| 2026-10-25 | 0 |
| 2026-10-26 | 0 |
| 2026-10-27 | 0 |
| 2026-10-28 | 192 |
| 2026-10-29 | 10 |
| 2026-10-30 | 0 |
| 2026-10-31 | 0 |
| 2026-11-01 | 34 |
| 2026-11-02 | 21 |
| 2026-11-03 | 0 |
| 2026-11-04 | 0 |
API
1Get your API key
Create a key on the API keys page and export it:
Shellexport AMR_API_KEY=sk-amr-v1-...2Make your first request
Any OpenAI-compatible client works. The model slug is
moonshotai/kimi-k3.from openai import OpenAI client = OpenAI( base_url="https://api.aimodelsrouter.ai/v1", api_key="sk-amr-v1-...", # or os.environ["AMR_API_KEY"] ) completion = client.chat.completions.create( model="moonshotai/kimi-k3", messages=[{"role": "user", "content": "What is the meaning of life?"}], ) print(completion.choices[0].message.content)3Stream the response
Set
stream: true. The final chunk carries usage and cost.stream = client.chat.completions.create( model="moonshotai/kimi-k3", messages=[{"role": "user", "content": "Write a haiku about routers."}], stream=True, stream_options={"include_usage": True}, ) for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True) if chunk.usage: # final chunk: one choice with an empty delta, usage present print("\ncost (USD):", chunk.usage.cost)