kimik3.io/Руководство по API

Kimi K3 API

ID модели, авторизация, запрос, который работает, и как отличить настоящий успех от тихого сбоя. Каждое тело ответа на этой странице снято с реального вызова 2026-07-16.

K3 совместим с форматом OpenAI. Подойдёт любой OpenAI SDK — вы направляете base_url на эндпоинт, где есть kimi-k3, и указываете строку модели. Это вся интеграция.

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

Этот код вызывает K3 через EvoLink, который отдаёт kimi-k3 через OpenAI-совместимый эндпоинт. Поменяйте base_url на любой другой шлюз — остальное не изменится.

python · openai sdk
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_EVOLINK_API_KEY",
    base_url="https://direct.evolink.ai/v1",   # <-- the one line you change
)

response = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Explain prompt caching in two sentences."},
    ],
)

print(response.choices[0].message.content)
print(response.usage)
curl
curl https://direct.evolink.ai/v1/chat/completions \
  -H "Authorization: Bearer $EVOLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [
      {"role": "user", "content": "Explain prompt caching in two sentences."}
    ]
  }'

Авторизация — bearer-токен: Authorization: Bearer <key>. Держите его в переменной окружения и никогда — в коде. Путь эндпоинта — /v1/chat/completions; если вы используете OpenAI SDK, укажите корень /v1, остальное SDK допишет сам.

Ключ: два честных способа получить

Коду выше нужен API-ключ, и у вас два законных варианта. Три вещи одинаковы в любом случае — тарифы ($3.00 / $0.30 / $15.00 за 1 млн, с датой), поведение модели (блоки кэша, оплата рассуждений — модель та же) и ваш код (формат OpenAI в обоих случаях; переключиться потом — одна строка base_url). Различается всё вокруг вызова:

Moonshot напрямуюЧерез EvoLink
С чего начать Отдельный аккаунт на платформе Moonshot Один аккаунт, 10 бесплатных кредитов, регистрация из любой страны за пару минут
Модели на ключе Семейство Kimi GPT, Claude, Gemini, K3 и десятки основных мировых моделей — один ключ, один эндпоинт
Учёт и оплата Ещё один баланс, который нужно пополнять, отслеживать и сверять — на каждого добавленного провайдера Один баланс и одна выписка по всем моделям, которые вы вызываете
Мультимодельные и агентные задачи Маршрутизация моделей, фолбэки и A/B-сравнения означают жонглирование аккаунтами — по одному на провайдера Маршрутизация, фолбэк и сравнение моделей — замена одной строки на том же ключе

Когда прямой путь — правильный выбор? Если вы будете пользоваться только моделями Kimi и не хотите посредника на пути запроса, идите напрямую — код с этой страницы работает и там, с base_url от Moonshot. Для всех остальных колонка шлюза — причина, по которой примеры на этом сайте используют его по умолчанию.

Получить API-ключ EvoLink — 10 бесплатных кредитов

После регистрации вы попадёте в дашборд с онбордингом. Уже есть аккаунт? Возьмите ключ в дашборде →

Как выглядит реальный ответ

Сокращено, но в остальном ровно то, что вернулось:

{
  "id": "chatcmpl-6a593017ec44f116fb614895",
  "object": "chat.completion",
  "created": 1784229923,
  "model": "kimi-k3",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "OK",
      "reasoning_content": "The user is asking me to reply with exactly \"OK\". This is a simple request with no complications..."
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 90,
    "completion_tokens": 47,
    "total_tokens": 137,
    "completion_tokens_details": {"reasoning_tokens": 31},
    "prompt_tokens_details": {"cached_tokens": 90}
  }
}

Два поля заслуживают внимания, потому что у них нет аналога в OpenAI:

  • message.reasoning_content — размышления K3, возвращаются вместе с ответом. Сам ответ читайте из content. Рассуждения на K3 — не режим, который включают; они включены всегда.
  • usage.completion_tokens_details.reasoning_tokens — сколько выходных токенов ушло на размышления. Выше — 31 из 47 токенов ради ответа из двух букв. Это тарифицируется по цене выхода.

Убедитесь, что вызов действительно сработал

HTTP 200 на K3 — ещё не доказательство успеха. Проверьте четыре вещи:

  1. model возвращается как kimi-k3 — а не фолбэк, который шлюз тихо подставил.
  2. finish_reason равен stop, а не lengthlength с пустым содержимым — фирменный почерк ловушки бюджета рассуждений.
  3. content — настоящая строка, а не "".
  4. usage.total_tokens не равен нулю — и показывает, сколько вы потратили.

В коде — единственная проверка, которую стоит написать:

choice = response.choices[0]
if choice.finish_reason == "length" and not choice.message.content:
    raise RuntimeError(
        f"Reasoning consumed the whole budget "
        f"({response.usage.completion_tokens_details.reasoning_tokens} reasoning tokens). "
        f"Raise max_completion_tokens."
    )

Параметры, которые важны

Параметры, важные для K3. Значения по умолчанию — из API-документации Moonshot, прочитано 2026-07-16; заметки о поведении — наши, замерено.
ПараметрЗначение по умолчаниюЧто нужно знать
model Ровно kimi-k3. Не kimi-k3-chat, не moonshot-k3.
max_completion_tokens131,072 Не трогайте, если не понимаете зачем. Рассуждения расходуют этот же бюджет; занизьте лимит — и получите счёт за пустую строку. Полная история.
streamfalse Настоятельно рекомендуется на длинном контексте — мы замерили 52 с на промпте в 498 тыс. токенов.
stream_options Укажите {"include_usage": true} — иначе при стриминге вы не получите блок usage и останетесь слепы к расходам.
tools Вызов функций, максимум 128 инструментов, формат JSON Schema.
tool_choiceauto auto · none · required · или именованная функция.
response_format{"type":"text"} Поддерживает json_object и json_schema для структурированного вывода.
prompt_cache_keynull Мы не смогли замерить никакого эффекта от повторного использования префикса — кэширование и так происходит автоматически. Что мы проверяли.
reasoning_effort Поддерживается только max — но на неподдерживаемое значение приходит HTTP 200, а не ошибка. Не рассчитывайте, что API проверит значение.

Полный справочник параметров и схемы ответа: документация EvoLink по API kimi-k3.

Стриминг

Server-sent events, завершаются data: [DONE]. Особенность именно K3: первые токены, которые вы получите, — это рассуждения, а не ваш ответ. Мы замерили медиану 2,8 с до первого токена — а в трёх прогонах из пяти токен с ответом так и не пришёл, потому что потолок в 128 токенов целиком съели размышления.

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Count to three."}],
    stream=True,
    stream_options={"include_usage": True},   # or you get no usage at all
)

for chunk in stream:
    if not chunk.choices:
        continue
    delta = chunk.choices[0].delta
    if getattr(delta, "reasoning_content", None):
        pass                      # thinking — usually not what you render
    if delta.content:
        print(delta.content, end="", flush=True)

Если вы показываете reasoning_content пользователям, помните: вы показываете им черновик модели. Большинству продуктов лучше показывать спиннер во время рассуждений и стримить только content.

FAQ по API

Какой ID у модели Kimi K3?

Ровно kimi-k3 — не kimi-k3-chat, не moonshot-k3. Ответ возвращает его в поле model — на это стоит написать проверку.

Совместим ли Kimi K3 с OpenAI?

Да. K3 отдаётся через стандартный /v1/chat/completions, поэтому любой OpenAI SDK работает без изменений — вы задаёте base_url и строку модели. Два K3-специфичных дополнения — reasoning_content в сообщении и reasoning_tokens в usage.

Нужен ли аккаунт Moonshot, чтобы пользоваться API Kimi K3?

Нет. Подойдёт любой эндпоинт, где есть kimi-k3: через EvoLink один аккаунт с 10 бесплатными кредитами открывает K3 вместе с GPT, Claude, Gemini и десятками основных мировых моделей — по тем же тарифам, что у Moonshot напрямую.

Какой base_url использовать для Kimi K3?

Через EvoLink: https://direct.evolink.ai/v1. Напрямую к Moonshot: https://api.moonshot.ai/v1. Остальной код одинаков в обоих случаях.

Получите ключ и запустите код выше

EvoLink отдаёт kimi-k3 через OpenAI-совместимый эндпоинт: один ключ открывает GPT, Claude, Gemini и десятки основных мировых моделей. 10 бесплатных кредитов, регистрация из любой страны — китайский номер телефона не нужен.

Получить API-ключ EvoLink