Документация API

Обзор

Kimi K2 API предоставляет программный доступ к языковой модели Kimi K2. Этот API поддерживает форматы сообщений OpenAI и Anthropic, что позволяет бесшовно интегрировать его в существующие приложения.

Базовый URL

https://kimi-k2.ai/api

Поддерживаемые протоколы

  • REST API по HTTPS
  • JSON тела запросов и ответов
  • кодировка UTF-8
  • поддержка CORS для браузерных приложений

Быстрый старт

Начните использовать Kimi K2 API за три шага:

  1. Создайте аккаунт и получите 100 бесплатных кредитов
  2. Сгенерируйте API ключ в вашем кабинете
  3. Сделайте первый запрос (большинство моделей стоит 1 кредит за запрос; kimi-k2.5 стоит 2 кредита)

Пример запроса

curl https://kimi-k2.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $KIMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k2-0905",
    "messages": [{"role": "user", "content": "Привет"}]
  }'

Аутентификация

API ключи

Аутентификация выполняется с помощью API ключей. Передайте ключ в заголовке запроса:

Authorization: Bearer YOUR_API_KEY

Или для Anthropic‑совместимых endpoints:

X-API-Key: YOUR_API_KEY

Способы аутентификации

МетодЗаголовокФорматЭндпоинты
Bearer TokenAuthorizationBearer YOUR_API_KEY/v1/chat/completions
API KeyX-API-KeyYOUR_API_KEY/v1/messages

Справочник API

Список моделей

Список всех доступных моделей, которые можно использовать через API.

Список доступных моделей

GET /v1/models

Возвращает список моделей, доступных через API.

Формат ответа

{
  "object": "list",
  "data": [
    {
      "id": "kimi-k2",
      "object": "model",
      "created": 1735785600,
      "owned_by": "moonshot-ai",
      "permission": [...],
      "root": "kimi-k2",
      "parent": null
    },
    {
      "id": "kimi-k2-0905",
      "object": "model",
      "created": 1735785600,
      "owned_by": "moonshot-ai",
      "permission": [...],
      "root": "kimi-k2-0905",
      "parent": null
    },
    {
      "id": "kimi-k2-thinking",
      "object": "model",
      "created": 1735785600,
      "owned_by": "moonshot-ai",
      "permission": [...],
      "root": "kimi-k2-thinking",
      "parent": null
    }
  ]
}
Поля ответа
ПолеТипОписание
objectstringВсегда list
dataarrayСписок доступных моделей
data[].idstringИдентификатор модели для запросов API
data[].objectstringВсегда model
data[].owned_bystringОрганизация‑владелец модели

Чат‑комплишены

Chat Completions API генерирует ответы модели для диалогов. Эндпоинт совместим с форматом OpenAI API.

Создать completion

POST /v1/chat/completions

Генерирует ответ модели для заданного диалога.

Формат запроса

{
  "model": "kimi-k2-0905",
  "messages": [
    {
      "role": "system",
      "content": "Вы — полезный помощник."
    },
    {
      "role": "user", 
      "content": "Объясните квантовые вычисления"
    }
  ],
  "temperature": 0.7,
  "max_tokens": 2048,
  "top_p": 1.0,
  "frequency_penalty": 0,
  "presence_penalty": 0,
  "stream": false,
  "n": 1
}
Параметры
ПараметрТипОбязателенЗначение по умолчаниюОписание
modelstringДа-Идентификатор модели. Используйте kimi-k2
messagesarrayДа-Входные сообщения. У каждого сообщения есть role и content
temperaturenumberНет0.6Температура сэмплирования (0–2). Меньшие значения дают более детерминированный вывод
max_tokensintegerНет1024Максимум токенов. Предел модели — 128000
top_pnumberНет1.0Порог nucleus sampling. Альтернатива temperature
frequency_penaltynumberНет0Штраф за повторяющиеся токены. Диапазон: -2.0…2.0
presence_penaltynumberНет0Штраф за присутствие токенов. Диапазон: -2.0…2.0
streambooleanНетfalseИнкрементальный стриминг ответов
nintegerНет1Количество генераций
stopstring/arrayНетnullСтоп‑последовательности (до 4)
userstringНетnullУникальный идентификатор пользователя для трекинга
Объект сообщения
ПолеТипОписание
rolestringОдно из: system, user, assistant
contentstringСодержимое сообщения

Формат ответа

{
  "id": "chatcmpl-9d4c2f68-5e3a-4b2f-a3c9-7d8e6f5c4b3a",
  "object": "chat.completion",
  "created": 1709125200,
  "model": "kimi-k2-0905",
  "system_fingerprint": "fp_a7c4d3e2",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Квантовые вычисления используют явления квантовой механики..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 189,
    "total_tokens": 214
  }
}
Поля ответа
ПолеТипОписание
idstringУникальный идентификатор запроса
objectstringТип объекта: chat.completion
createdintegerUnix timestamp
modelstringИспользуемая модель
choicesarrayСгенерированные completions
usageobjectСтатистика использования токенов
Причины завершения
ЗначениеОписание
stopЕстественное завершение или достигнута stop‑последовательность
lengthДостигнут лимит токенов

Стриминг

Формат Server‑Sent Events при stream: true:

data: {"id":"chatcmpl-...","choices":[{"delta":{"content":"Привет"},"index":0}]}

data: {"id":"chatcmpl-...","choices":[{"delta":{"content":" мир"},"index":0}]}

data: [DONE]

Сообщения

Messages API предоставляет Anthropic‑совместимую генерацию сообщений.

Создать сообщение

POST /v1/messages

Создаёт ответ модели в формате Messages.

Формат запроса

{
  "model": "kimi-k2-0905",
  "messages": [
    {
      "role": "user",
      "content": "Столица Франции?"
    }
  ],
  "max_tokens": 1024,
  "system": "Вы — знающий помощник по географии.",
  "temperature": 0.7,
  "top_p": 1.0,
  "stop_sequences": ["\n\nHuman:"]
}
Параметры
ПараметрТипОбязателенЗначение по умолчаниюОписание
modelstringДа-Идентификатор модели
messagesarrayДа-Сообщения диалога (только user/assistant)
max_tokensintegerДа-Максимум токенов для генерации
systemstringНетnullСистемный промпт для поведения
temperaturenumberНет0.6Температура сэмплирования (0–1)
top_pnumberНет1.0Порог nucleus sampling
stop_sequencesarrayНетnullСтоп‑последовательности (макс. 4)
streambooleanНетfalseВключить стриминг ответов
metadataobjectНетnullМетаданные запроса

Формат ответа

{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Столица Франции — Париж."
    }
  ],
  "model": "kimi-k2-0905",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 15,
    "output_tokens": 9
  }
}
Поля ответа
ПолеТипОписание
idstringУникальный идентификатор сообщения
typestringТип объекта: message
rolestringВсегда assistant
contentarrayБлоки содержимого сообщения
modelstringИспользуемая модель
stop_reasonstringПричина остановки генерации
usageobjectИспользование токенов

Системные промпты

Системные промпты в Messages API задаются отдельно:

{
  "system": "Вы — Claude, AI‑ассистент, созданный Anthropic.",
  "messages": [
    {"role": "user", "content": "Привет"}
  ],
  "max_tokens": 1024
}

Модели

Доступные модели

Model IDContext WindowDescription
kimi-k2128,000 tokensОсновная модель для стандартных chat completions
kimi-k2-0905256,000 tokensУлучшенная модель с расширенным контекстом
kimi-k2-thinking256,000 tokensСпециализированная модель для глубокого reasoning, математических доказательств, research‑анализа и многошагового решения задач
kimi-k2.5256,000 tokensНативная мультимодальная agentic MoE модель (1T total / 32B active) с сильным tool use и reasoning

Выбор модели

Выберите модель в зависимости от задач:

  • kimi-k2: лучше всего для общего диалога, генерации контента и стандартных задач
  • kimi-k2-0905: для задач с длинным контекстом (до 256K), например анализ целых документов или долгих диалогов
  • kimi-k2-thinking: оптимизирован для сложных reasoning‑задач:
    • математические доказательства и олимпиадная математика
    • research‑анализ и обзор литературы
    • многошаговое решение задач с логическим reasoning
    • продвинутая оркестрация инструментов (200–300 последовательных tool calls)
    • фронтенд‑разработка со сложными UI‑требованиями
    • agentic‑поиск с автономной навигацией
  • kimi-k2.5: нативная мультимодальная agentic‑модель, оптимизированная для tool use и reasoning с контекстом 256K

Ключевые характеристики Kimi‑K2.5: MoE‑архитектура (1T total, 32B active), контекст 256K и vision‑энкодер MoonViT.

Thinking‑модель показывает reasoning шаг‑за‑шагом, что идеально для образования и прозрачных приложений.

Лимиты запросов

Лимиты скорости

Лимиты зависят от баланса кредитов на API ключе:

Баланс кредитовЗапросов/минЗапросов/часЗапросов/день
1-100206005,000
101-1,000602,00020,000
1,001-10,0002006,00050,000
10,000+50015,000100,000

Заголовки лимитов:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1709125800

Лимиты токенов

Тип лимитаЗначение
Максимум входных токенов128,000
Максимум выходных токенов8,192
Максимум всех токенов128,000

Настройки таймаута

Тип таймаутаДлительность
Таймаут соединения30 секунд
Таймаут чтения600 секунд
Таймаут стрима600 секунд

Коды ошибок

HTTP‑коды статуса

СтатусЗначение
200Success
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - Insufficient credits or permissions
404Not Found - Invalid endpoint
429Too Many Requests - Rate limit exceeded
500Internal Server Error
503Service Unavailable

Типы ошибок

Ошибки в формате OpenAI

{
  "error": {
    "message": "Invalid API key provided",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}
Error CodeTypeDescription
invalid_api_keyinvalid_request_errorAPI ключ неверный или имеет неправильный формат
insufficient_creditsinsufficient_quotaНедостаточно кредитов
rate_limit_exceededrate_limit_errorСлишком много запросов
invalid_requestinvalid_request_errorОшибка валидации запроса
model_not_foundinvalid_request_errorУказанная модель не существует
context_length_exceededinvalid_request_errorВход превышает контекстное окно

Ошибки в формате Anthropic

{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key"
  }
}
Error TypeDescription
authentication_errorОшибка аутентификации
invalid_request_errorОшибка валидации запроса
rate_limit_errorПревышен лимит запросов
api_errorОшибка сервера

Обработка ошибок

Рекомендуется exponential backoff с jitter:

import time
import random

def retry_with_backoff(
    func, 
    max_retries=3,
    base_delay=1,
    max_delay=60
):
    for attempt in range(max_retries):
        try:
            return func()
        except RateLimitError:
            if attempt == max_retries - 1:
                raise
            
            delay = min(
                base_delay * (2 ** attempt) + random.uniform(0, 1),
                max_delay
            )
            time.sleep(delay)

Клиентские библиотеки

Python

Установка

pip install openai
# или
pip install anthropic

OpenAI клиент

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://kimi-k2.ai/api/v1"
)

# Список доступных моделей
models = client.models.list()
for model in models.data:
    print(f"Model ID: {model.id}")

# Создать chat completion
response = client.chat.completions.create(
    model="kimi-k2-0905",
    messages=[
        {"role": "user", "content": "Привет"}
    ]
)

Anthropic клиент

from anthropic import Anthropic

client = Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://kimi-k2.ai/api/v1"
)

response = client.messages.create(
    model="kimi-k2-0905",
    messages=[
        {"role": "user", "content": "Привет"}
    ],
    max_tokens=1024
)

Node.js

Установка

npm install openai
# или
npm install @anthropic-ai/sdk

OpenAI клиент

import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: process.env.KIMI_API_KEY,
  baseURL: 'https://kimi-k2.ai/api/v1',
});

// Список доступных моделей
const models = await openai.models.list();
for (const model of models.data) {
  console.log(`Model ID: ${model.id}`);
}

// Создать chat completion
const response = await openai.chat.completions.create({
  model: 'kimi-k2-0905',
  messages: [{ role: 'user', content: 'Привет' }],
});

Anthropic клиент

import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic({
  apiKey: process.env.KIMI_API_KEY,
  baseURL: 'https://kimi-k2.ai/api/v1',
});

const response = await anthropic.messages.create({
  model: 'kimi-k2-0905',
  messages: [{ role: 'user', content: 'Привет' }],
  max_tokens: 1024,
});

Go

Установка

go get github.com/sashabaranov/go-openai

Пример

package main

import (
    "context"
    "fmt"
    openai "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("YOUR_API_KEY")
    config.BaseURL = "https://kimi-k2.ai/api/v1"
    
    client := openai.NewClientWithConfig(config)
    
    resp, err := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "kimi-k2",
            Messages: []openai.ChatCompletionMessage{
                {
                    Role:    openai.ChatMessageRoleUser,
                    Content: "Привет",
                },
            },
        },
    )
    
    if err != nil {
        panic(err)
    }
    
    fmt.Println(resp.Choices[0].Message.Content)
}

REST API

Прямые HTTP запросы без клиентских библиотек:

cURL

curl -X POST https://kimi-k2.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $KIMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k2",
    "messages": [
      {"role": "user", "content": "Привет"}
    ]
  }'

Python (requests)

import requests

response = requests.post(
    "https://kimi-k2.ai/api/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    },
    json={
        "model": "kimi-k2",
        "messages": [{"role": "user", "content": "Привет"}]
    }
)

Node.js (fetch)

const response = await fetch('https://kimi-k2.ai/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'kimi-k2-0905',
    messages: [{ role: 'user', content: 'Привет' }],
  }),
});

Биллинг

Система кредитов

Использование API биллируется через систему кредитов:

  • Большинство моделей: 1 кредит за запрос
  • kimi-k2.5: 2 кредита за запрос
  • кредиты списываются после успешного завершения
  • неуспешные запросы (4xx) не тарифицируются
  • серверные ошибки (5xx) не тарифицируются
  • новым пользователям начисляется 100 бесплатных кредитов при регистрации
  • бонусы по приглашениям:
    • 50 кредитов при регистрации по вашему инвайт‑коду
    • 500 кредитов после первой оплаты приглашённого пользователя

Пакеты кредитов

ПакетКредитыЦенаЗа кредитСрок
Starter500$4.99$0.0099No expiration
Standard5,000$29.99$0.00601 month
Premium20,000$59.99$0.00301 month
EnterpriseCustomContact salesCustomCustom

Отслеживание использования

Отслеживайте использование:

  1. Ответные заголовки: X-Credits-Remaining: 4523
  2. Кабинет: статистика в реальном времени /my-credits
  3. API endpoint: GET /api/user/credits

Данные использования включают:

  • всего использовано кредитов
  • остаток кредитов
  • использование по дням/часам
  • среднее количество токенов на запрос

Руководство по миграции

С OpenAI

Переход с OpenAI API требует минимальных изменений:

  1. Обновите base URL:

    # Было
    client = OpenAI(api_key="sk-...")
    
    # Стало
    client = OpenAI(
        api_key="sk-...",
        base_url="https://kimi-k2.ai/api/v1"
    )
    
  2. Обновите название модели:

    # Было
    model="gpt-4"
    
    # Стало
    model="kimi-k2-0905"
    
  3. Других изменений не требуется — API полностью совместим

С Anthropic

Миграция с Anthropic API:

  1. Обновите base URL:

    # Было
    client = Anthropic(api_key="sk-ant-...")
    
    # Стало
    client = Anthropic(
        api_key="sk-...",
        base_url="https://kimi-k2.ai/api/v1"
    )
    
  2. Обновите аутентификацию:

    • Сгенерируйте API ключ в Kimi K2 dashboard
    • Замените Anthropic API ключ
  3. Совместимость моделей:

    • Kimi K2 поддерживается

Журнал изменений

2025-11-10

  • Добавлена модель kimi-k2-thinking
  • Специализированная модель для сложных reasoning‑задач
  • Пошаговое отображение рассуждений
  • Поддержка математических доказательств, research‑анализа и многошагового решения задач
  • Продвинутая оркестрация инструментов (200–300 последовательных tool calls)

2025-09-05

  • Поддержка контекста 256K
  • Поддержка модели kimi-k2-0905

2025-01-30

  • Добавлена совместимость с Anthropic Messages API
  • Введена аутентификация X-API-Key