Kimi K2.5 API Sunset August 31, 2026: Migration Guide
kimi-k2.5 and the entire moonshot-v1 family (8k, 32k, 128k, auto) will stop responding to API calls. New users are already blocked from these model strings. If your codebase still references them, you have 22 days to migrate before production breaks.
What Is Being Discontinued?
Per Moonshot's official model documentation, the following model strings will return errors after August 31, 2026, 23:59 UTC:
| Model String | Status | Replacement |
|---|---|---|
| kimi-k2.5 | Discontinued | kimi-k3 |
| moonshot-v1-8k | Discontinued | kimi-k3 |
| moonshot-v1-32k | Discontinued | kimi-k3 |
| moonshot-v1-128k | Discontinued | kimi-k3 |
| moonshot-v1-auto | Discontinued | kimi-k3 |
Important: K2.5 open weights on Hugging Face are not affected. This sunset only applies to the Moonshot-hosted API endpoints.
Why Is Moonshot Removing K2.5?
Kimi K3 launched on July 16, 2026, and Moonshot is consolidating its API surface around the new architecture. K3 offers:
- 200K context window (vs 128K max for K2.5)
- Better reasoning and code generation benchmarks
- Improved Chinese text processing
- Unified pricing at $0.50/M input, $2.00/M output
From Moonshot's perspective, maintaining two parallel API families creates support overhead and fragments their developer experience. K3 is the future; K2.5 is legacy.
What to Replace It With
For most use cases, simply swap your model string to kimi-k3. However, Moonshot now offers two specialized variants:
- kimi-k3 — General-purpose model. Best for chat, Q&A, document analysis, and creative writing.
- kimi-for-coding — Code-optimized variant. Better at code completion, debugging, and technical reasoning. Use this if K2.5 was primarily powering your IDE integration or code review pipeline.
kimi-k3. It's the direct replacement and handles most workloads well. Benchmark kimi-for-coding on a subset of your code-generation prompts only if you need marginal improvements on programming tasks.
Code Migration: Before & After
Python (OpenAI SDK)
# BEFORE (breaks after August 31)
from openai import OpenAI
client = OpenAI(api_key="YOUR_KIMI_KEY", base_url="https://api.moonshot.cn/v1")
response = client.chat.completions.create(
model="kimi-k2.5", # ❌ Deprecated
messages=[{"role": "user", "content": "Explain quantum computing"}]
)
# AFTER
response = client.chat.completions.create(
model="kimi-k3", # ✅ Direct replacement
messages=[{"role": "user", "content": "Explain quantum computing"}]
)
# OR, for coding workloads:
response = client.chat.completions.create(
model="kimi-for-coding", # ✅ Code-optimized
messages=[{"role": "user", "content": "Refactor this Python function"}]
)
JavaScript / TypeScript
// BEFORE
const response = await fetch('https://api.moonshot.cn/v1/chat/completions', {
method: 'POST',
headers: { 'Authorization': 'Bearer ' + apiKey, 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'kimi-k2.5', // ❌ Deprecated
messages: [{ role: 'user', content: 'Hello' }]
})
});
// AFTER
const response = await fetch('https://api.moonshot.cn/v1/chat/completions', {
method: 'POST',
headers: { 'Authorization': 'Bearer ' + apiKey, 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'kimi-k3', // ✅ Direct replacement
messages: [{ role: 'user', content: 'Hello' }]
})
});
cURL
# BEFORE
curl https://api.moonshot.cn/v1/chat/completions \
-H "Authorization: Bearer $KIMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "kimi-k2.5", "messages": [{"role": "user", "content": "Hello"}]}'
# AFTER
curl https://api.moonshot.cn/v1/chat/completions \
-H "Authorization: Bearer $KIMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "kimi-k3", "messages": [{"role": "user", "content": "Hello"}]}'
How to Find K2.5 in Your Codebase
Run these commands in your project root to find every reference:
# Search for all deprecated strings
grep -r "kimi-k2.5\|moonshot-v1" --include="*.py" --include="*.js" --include="*.ts" --include="*.json" --include="*.yaml" --include="*.yml" --include="*.env" .
# If you use environment variables for model names
grep -r "KIMI_MODEL\|MOONSHOT_MODEL\|MODEL_NAME" --include="*.env" --include="*.json" .
Don't forget to check:
- CI/CD pipelines that hardcode model strings
- Database records storing model preferences
- Environment variable files (.env, secrets managers)
- Third-party integrations (Zapier, Make, n8n) that call your API
Testing Your Migration
Before the August 31 deadline, run these validation steps:
- Staging test: Deploy your updated code to a staging environment and run your full test suite.
- Prompt parity: Send identical prompts to both
kimi-k2.5(before sunset) andkimi-k3(new). Compare output quality. K3 should be equal or better, but verify edge cases in your domain. - Token count check: K3 uses a different tokenizer. Verify that your token budgeting still holds. A prompt that was 2,000 tokens under K2.5 might be 2,200 under K3.
- Latency baseline: Measure response time for your typical prompts. K3 is generally faster, but confirm for your workload.
Pricing Comparison
Good news: K3 is priced identically to K2.5. Your API bill won't change.
| Model | Input / 1M tokens | Output / 1M tokens | Context |
|---|---|---|---|
| kimi-k2.5 | $0.50 | $2.00 | 128K |
| kimi-k3 | $0.50 | $2.00 | 200K |
| kimi-for-coding | $0.50 | $2.00 | 200K |
Using TokenEase to Avoid Future Sunsets
Model sunsets are becoming routine. In 2026 alone, we've seen:
- OpenAI Assistants API → sunset August 26
- Kimi K2.5 / moonshot-v1 → sunset August 31
- DeepSeek legacy strings → sunset October 24
Chasing every migration announcement is unsustainable. TokenEase solves this with a provider-agnostic API gateway:
- One API key for DeepSeek, GLM-5.1, Kimi K3, Qwen-Plus, and Doubao Pro
- One endpoint — fully OpenAI-compatible, zero code changes beyond the model string
- Automatic fallback — if one provider sunsets a model, switch to another with a single parameter
- Stable pricing — volume aggregation keeps costs 40% below OpenRouter
# TokenEase: future-proof your AI stack
from openai import OpenAI
client = OpenAI(api_key="tk_...", base_url="https://tokenease.io/v1")
# Today: Kimi K3
response = client.chat.completions.create(model="kimi-k3", messages=[...])
# Tomorrow: if Kimi sunsets, swap to GLM-5.1 in one line
response = client.chat.completions.create(model="glm-5.1", messages=[...])
# No new API keys. No new accounts. No migration sprints.
No credit card required. Migration-ready in 10 minutes.
Get Free API Key →
Questions about your specific migration? The TokenEase API supports both kimi-k3 and kimi-for-coding with the same $0.50/$2.00 pricing. Start testing now and beat the August 31 deadline.