Kimi K2 API: полное руководство по интеграции для AI-инженеров (2026)
Всё для интеграции модельной линейки Moonshot AI Kimi — K2.6, K2.7 Code и K2.5. Регистрация, API key, первый вызов за 3 минуты, thinking mode, streaming, tool calls, multimodal input, pricing, частые ошибки и маршрутизация Kimi-моделей через TheRouter.
Kimi K2 API от Moonshot AI — это OpenAI-совместимый endpoint, дающий доступ к семейству MoE-моделей c триллионом параметров: от flagship-модели K2.6 до code-специализированной K2.7 Code, вышедшей 12 июня 2026 года. Все модели поддерживают контекст 256K token, thinking mode, tool calls и streaming. Регистрация на platform.kimi.ai, API key, base_url на https://api.moonshot.ai/v1 — и ваш OpenAI SDK-код работает без изменений.
Мы подготовили это руководство, потому что линейка Kimi расширяется быстро — пять моделей маршрутизируются через TheRouter, плюс K2.7 Code доступен через direct API Moonshot. Различия между ними (always-thinking vs. toggle, multimodal vs. text-only, deprecated K2 series) легко упустить. Это единый справочник, который был нужен нам самим при первой интеграции Moonshot в наш routing layer.
Источники: Kimi API Model List, получено 2026-06-14; Kimi API Overview, получено 2026-06-14.
Начало работы за 3 минуты
Шаг 1: Создайте аккаунт. Перейдите на platform.kimi.ai и зарегистрируйтесь. Moonshot поддерживает регистрацию по email и номеру телефона.
Шаг 2: Получите API key. Откройте Console → API Keys и создайте новый key. Скопируйте сразу — key показывается один раз.
Шаг 3: Первый вызов. Установите OpenAI Python SDK:
pip install --upgrade openai
Затем:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_MOONSHOT_KEY",
base_url="https://api.moonshot.ai/v1",
)
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "What is Kimi K2.6?"}],
)
print(response.choices[0].message.content)
Kimi API реализует спецификацию OpenAI ChatCompletions — любой инструмент, SDK или код, работающий с OpenAI, подключается заменой base_url и API key.
Источник: Kimi K2.6 Quick Start, получено 2026-06-14.
Линейка моделей Kimi: какую выбрать
Moonshot AI предлагает три активных семейства моделей через Kimi API. Legacy-серия K2 (K2, K2 Instruct, K2 Thinking) deprecated 25 мая 2026 года.
| Модель | Model ID | Контекст | Модальность | Thinking | Для чего |
|---|---|---|---|---|---|
| K2.7 Code | kimi-k2.7-code | 256K | text+image→text | Всегда включён (нельзя отключить) | Coding agents, long-horizon code generation |
| K2.6 | kimi-k2.6 | 256K | text+image→text | Включён по умолчанию (можно отключить) | Универсальные задачи, multimodal, agent workflows |
| K2.5 | kimi-k2.5 | 256K | text+image→text | Включён по умолчанию (можно отключить) | Универсальные задачи (предыдущее поколение) |
Deprecated-модели (25 мая 2026)
| Legacy ID | Статус |
|---|---|
kimi-k2-0905-preview | Снят с обслуживания |
kimi-k2-0711-preview | Снят с обслуживания |
kimi-k2-turbo-preview | Снят с обслуживания |
kimi-k2-thinking | Снят с обслуживания |
kimi-k2-thinking-turbo | Снят с обслуживания |
Если ваш код использует любые kimi-k2-*-preview или kimi-k2-thinking ID — переключайтесь на kimi-k2.6. Эти модели больше не поддерживаются.
Источник: Kimi API Model List, получено 2026-06-14.
K2.7 Code: специалист по коду (always-thinking)
K2.7 Code вышел 12 июня 2026 года — это самая сильная coding-модель Moonshot. Ключевое отличие от K2.6: thinking всегда включён и не может быть отключён. Параметр thinking передавать не нужно — достаточно указать model kimi-k2.7-code, и модель всегда выдаёт reasoning_content.
Кроме того, Preserved Thinking всегда активен — в multi-turn диалогах необходимо передавать reasoning_content из каждого предыдущего assistant message без изменений.
Пример K2.7 Code
from openai import OpenAI
client = OpenAI(
api_key="YOUR_MOONSHOT_KEY",
base_url="https://api.moonshot.ai/v1",
)
stream = client.chat.completions.create(
model="kimi-k2.7-code",
messages=[
{"role": "system", "content": "You are Kimi."},
{"role": "user", "content": "Implement quicksort in Python."},
],
max_tokens=32768,
stream=True,
)
for chunk in stream:
if chunk.choices:
choice = chunk.choices[0]
delta = choice.delta
if hasattr(delta, "reasoning_content") and delta.reasoning_content:
print(delta.reasoning_content, end="")
if delta.content:
print(delta.content, end="")
Влияние на стоимость
K2.7 Code всегда генерирует thinking token, которые тарифицируются по output rate ($4.00/1M). Для простых задач без необходимости глубокого рассуждения — используйте K2.6 с отключённым thinking для экономии.
Источники: Using Thinking Models — Kimi API, получено 2026-06-14; K2.7 Code Pricing, получено 2026-06-14.
Thinking mode: различия между моделями
Параметр thinking ведёт себя по-разному в трёх активных моделях:
| Параметр | kimi-k2.7-code | kimi-k2.6 | kimi-k2.5 |
|---|---|---|---|
thinking.type | Только "enabled" (ошибка при "disabled") | "enabled" (default) или "disabled" | "enabled" (default) или "disabled" |
thinking.keep (Preserved Thinking) | Всегда "all" (нельзя отключить) | null (default) или "all" | Не поддерживается |
Включение/отключение thinking на K2.6
# Thinking включён по умолчанию — параметр передавать не нужно
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "Prove that sqrt(2) is irrational."}],
)
# Явное отключение thinking
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "What time is it in Tokyo?"}],
extra_body={"thinking": {"type": "disabled"}},
)
При включённом thinking модель возвращает поле reasoning_content в assistant message наряду с обычным content. В streaming-режиме сначала приходят chunks с reasoning_content, затем — с content.
Preserved Thinking (K2.6 и K2.7 Code)
Preserved Thinking означает, что модель ожидает видеть свою историю рассуждений в multi-turn диалогах. При включении на K2.6 (или always-on для K2.7 Code) необходимо передавать reasoning_content из предыдущих assistant messages:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{"role": "user", "content": "Write a binary search function."},
{
"role": "assistant",
"reasoning_content": "<reasoning from previous turn>",
"content": "Here's a binary search implementation..."
},
{"role": "user", "content": "Now add error handling."},
],
extra_body={"thinking": {"type": "enabled", "keep": "all"}},
)
Источник: Using Thinking Models — Kimi API, получено 2026-06-14.
Multimodal input: изображения и видео
K2.6, K2.5 и K2.7 Code поддерживают совместный ввод текста и изображений. K2.6 дополнительно поддерживает видео. Изображения передаются стандартным OpenAI image_url content type:
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/photo.jpg"},
},
],
}
],
)
Формат совпадает с OpenAI vision messages — если вы уже отправляете изображения в GPT-4o или Claude, тот же код работает здесь.
Источник: Kimi K2.6 Quick Start, получено 2026-06-14.
Примеры кода: curl, Python, streaming и tool calls
curl
curl https://api.moonshot.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${MOONSHOT_API_KEY}" \
-d '{
"model": "kimi-k2.6",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": false
}'
Python Streaming
from openai import OpenAI
client = OpenAI(
api_key="YOUR_MOONSHOT_KEY",
base_url="https://api.moonshot.ai/v1",
)
stream = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "Explain the CAP theorem."}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Tool Calls
Все активные модели Kimi поддерживают tool/function calling в формате OpenAI:
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"},
},
"required": ["location"],
},
},
}
]
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "What's the weather in Beijing?"}],
tools=tools,
tool_choice="auto",
)
K2.6 и K2.7 Code особенно сильны в multi-step tool orchestration — K2.6 стабильно выполняет 200–300 шагов tool orchestration, а K2.7 Code оптимизирован для long-horizon coding с tool-augmented reasoning.
Источник: Kimi API Tool Use, получено 2026-06-14.
Pricing: Moonshot direct vs. DashScope
Moonshot Direct API (platform.kimi.ai)
| Модель | Input (Cache Miss) | Input (Cache Hit) | Output | Контекст |
|---|---|---|---|---|
kimi-k2.7-code | $0.95/1M | $0.19/1M | $4.00/1M | 256K |
kimi-k2.6 | $0.95/1M | $0.16/1M | $4.00/1M | 256K |
kimi-k2.5 | $0.60/1M | $0.10/1M | $3.00/1M | 256K |
Автоматическое кеширование контекста у Moonshot означает, что повторяющиеся system prompts и общие prefix попадают под cache rate автоматически — настройка не требуется.
DashScope (Aliyun Bailian)
Kimi K2.6 и K2.5 также доступны через Alibaba Cloud DashScope/Bailian. Это альтернативный endpoint на инфраструктуре Aliyun. DashScope endpoint OpenAI-совместим:
client = OpenAI(
api_key="YOUR_DASHSCOPE_KEY",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
response = client.chat.completions.create(
model="kimi-k2.6",
messages=[{"role": "user", "content": "Hello!"}],
)
Обратите внимание: на DashScope thinking mode управляется параметром enable_thinking, а не объектом thinking, который использует Moonshot direct API. Формат параметров — в DashScope Kimi docs.
Источники: K2.6 Pricing, получено 2026-06-14; K2.7 Code Pricing, получено 2026-06-14; DashScope Kimi API, получено 2026-06-14.
Частые ошибки и решения
Неправильный base_url
API base Moonshot — https://api.moonshot.ai/v1. Не используйте https://platform.moonshot.ai (это console) или https://platform.kimi.ai (это docs).
Передача thinking.type: "disabled" в K2.7 Code
K2.7 Code не поддерживает отключение thinking. API вернёт ошибку. Для non-thinking mode используйте K2.6.
Путаница model ID между провайдерами
Model ID для K2.6 на Moonshot direct API — kimi-k2.6. На DashScope тоже kimi-k2.6. Но при использовании DashScope в Cursor или некоторых IDE-интеграциях точку нужно заменить на дефис — Cursor требует kimi-k2-6. При routing через TheRouter мы используем канонический идентификатор moonshot/kimi-k2.6.
Deprecated model IDs
Если получаете ошибку "model not found" — проверьте, не используете ли deprecated K2 series ID (kimi-k2-0905-preview, kimi-k2-thinking и т. д.). Они сняты с обслуживания 25 мая 2026 года.
Ошибки Preserved Thinking в multi-turn
При использовании K2.7 Code (или K2.6 с Preserved Thinking) необходимо передавать reasoning_content из всех предыдущих assistant messages. Пропуск приводит к деградации ответов или ошибкам в multi-turn диалогах.
Источник: Kimi API Model List, получено 2026-06-14.
Интеграция с TheRouter: routing и fallback
Мы маршрутизируем пять Kimi-моделей через TheRouter:
moonshot/kimi-k2— быстрый non-thinking вариант (131K контекст) (устарела — переходите на kimi-k2.5/k2.6)moonshot/kimi-k2-instruct— 1T MoE для диалогов и tool use (200K контекст) (устарела — переходите на kimi-k2.5/k2.6)moonshot/kimi-k2-thinking— deep reasoning specialist (256K контекст) (устарела — переходите на kimi-k2.5/k2.6)moonshot/kimi-k2.5— flagship предыдущего поколения (256K контекст)moonshot/kimi-k2.6— текущий flagship, multimodal (256K контекст)
Для использования Kimi через TheRouter укажите наш endpoint в OpenAI SDK с model ID с prefix moonshot/:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_THEROUTER_KEY",
base_url="https://api.therouter.ai/v1",
)
response = client.chat.completions.create(
model="moonshot/kimi-k2.6",
messages=[{"role": "user", "content": "Hello from TheRouter!"}],
)
Fallback-конфигурация
Преимущество routing через TheRouter — автоматический fallback. Если API Moonshot недоступен или ограничивает rate, мы переключаемся на другого провайдера с той же моделью. Поскольку K2.6 доступен и через DashScope, вы получаете географическую redundancy без написания retry-логики.
OpenAI-совместимость означает, что провайдер предоставляет endpoint chat-completions, чей контракт запроса и ответа достаточно близок к API OpenAI, чтобы немодифицированный вызов OpenAI SDK работал после замены трёх значений: API key, base URL, название модели. Минимальная поверхность на практике —POST /v1/chat/completions с messages, model и потоковым ответом в форме OpenAI.
Примечание: K2.7 Code (kimi-k2.7-code) пока не доступен как route TheRouter — на данный момент только через Moonshot direct API. Поддержка routing будет добавлена после стабилизации availability у нескольких провайдеров.
Источник: TheRouter Models Data, получено 2026-06-14.
Чеклист перед продакшеном
Перед запуском Kimi-моделей в production:
- Мигрируйте с deprecated K2 series — если используете
kimi-k2-*-previewилиkimi-k2-thinkingID, переключайтесь наkimi-k2.6 - Выберите thinking mode — задайте
thinking.typeявно на K2.6; для K2.7 Code thinking всегда включён - Обрабатывайте
reasoning_contentв multi-turn — при использовании K2.7 Code или K2.6 с Preserved Thinking передавайте reasoning history - Выберите правильную модель — K2.7 Code для coding agents, K2.6 для универсальных + multimodal задач, K2.5 для экономии
- Мониторьте стоимость thinking token — thinking token тарифицируются по output rate; отключайте thinking на K2.6 для простых задач
- Настройте fallback — routing через TheRouter или DashScope для избежания single-provider dependency
- Используйте context caching — автоматическое prefix caching Moonshot удешевляет повторяющиеся system prompts ($0.16/1M cache hit на K2.6)
- Установите timeout — thinking-интенсивные запросы требуют времени; рекомендуемый timeout 60–120 с
- Проверьте совместимость model ID — убедитесь, что model ID корректно работает с вашим SDK/инструментом (точка vs. дефис в IDE-интеграциях)
FAQ
Q: Kimi K2 API совместим с OpenAI?
A: Да. Moonshot API реализует спецификацию OpenAI ChatCompletions на https://api.moonshot.ai/v1. Замените base_url и api_key в OpenAI SDK — streaming, tool calls и system messages работают без изменений.
Q: Можно ли отключить thinking в K2.7 Code?
A: Нет. K2.7 Code имеет always-on thinking и вернёт ошибку при thinking.type: "disabled". Для non-thinking mode используйте K2.6 с отключённым thinking.
Q: Что случилось с оригинальными K2-моделями?
A: Серия kimi-k2 (K2, K2 Instruct, K2 Thinking, K2 Turbo) deprecated 25 мая 2026 года. Если вы ещё используете эти model IDs — переключайтесь на kimi-k2.6 для общих задач или kimi-k2.7-code для coding.
Q: Как Kimi K2.6 соотносится с DeepSeek V4? A: Обе — MoE-модели с контекстом 256K–1M и поддержкой thinking mode. K2.6 имеет native multimodal (image + video input) и превосходит в agent/tool orchestration. DeepSeek V4 предлагает больший контекст (1M vs. 256K) и более низкие цены на cache hits. Выбор зависит от workload — с TheRouter можно маршрутизировать между ними в зависимости от задачи.
Q: Можно запустить Kimi K2.6 локально? A: Да. Weights Kimi K2.6 доступны на HuggingFace как open-weight. Но при 1T параметров (32B active) потребуются значительные GPU-ресурсы. Для production в большинстве случаев API практичнее.
Q: K2.7 Code доступен через TheRouter? A: Пока нет. K2.7 Code вышел 12 июня 2026 года и доступен только через Moonshot direct API. Routing-поддержка будет добавлена по мере расширения provider availability.
Последнее обновление: 14 июня 2026 года. Pricing и model availability по данным Kimi API Pricing и Kimi API Model List. Все цены могут измениться — актуальные тарифы проверяйте на platform.kimi.ai.