Claude Opus 5.5 est disponible sur SeedRouter
SeedRouter Docs

Kimi K3

Appelez Kimi K3 avec l'API officielle Chat Completions, Responses ou Anthropic Messages : une fenêtre de contexte de 1M tokens, un raisonnement toujours actif et le niveau de raisonnement de votre choix.

View Markdown

Kimi K3 est le modèle phare de Moonshot AI pour le codage sur de longues durées, les agents et le travail intellectuel. Il raisonne toujours avant de répondre, et vous choisissez l'intensité avec reasoning_effort. Envoyez la requête Kimi officielle à SeedRouter : changez l'URL de base et la clé API, conservez le corps.

ID de modèle

ID de modèleFenêtre de contexteSortie maximaleNiveau de raisonnementNiveau de raisonnement par défaut
kimi-k31,048,576 tokens1,048,576 tokens (131,072 par défaut)low, high, maxmax

Entrée : texte et images. Sortie : texte. Consultez la page du modèle pour les tarifs actuels.

Exemple rapide

curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3",
    "messages": [{"role": "user", "content": "Explain context caching in one sentence."}]
  }'

Points de terminaison

FormatMéthode et cheminAuthentification
Chat CompletionsPOST https://api.seedrouter.ai/v1/chat/completionsAuthorization: Bearer <key>
ResponsesPOST https://api.seedrouter.ai/v1/responsesAuthorization: Bearer <key>
Anthropic MessagesPOST https://api.seedrouter.ai/v1/messagesx-api-key: <key> ou Authorization: Bearer <key>, plus anthropic-version

Les trois renvoient le format de réponse officiel de Kimi, en streaming ou non. Conservez la clé API dans le code côté serveur.

Paramètres

Champs Chat Completions :

NomTypeRequisPar défautRemarques
modelstringOui—kimi-k3.
messagesobject[]Oui—Messages texte ; images sous forme de parties image_url (voir Entrée image).
max_completion_tokensintegerNon131072Jusqu'à 1048576. Inclut les tokens de raisonnement. max_tokens est l'ancien nom, obsolète, de la même limite.
reasoning_effortenumNonmaxlow, high ou max. Toute autre valeur renvoie 400.
stopstring or string[]Non—Jusqu'à 5 séquences.
response_formatobjectNon{"type": "text"}text, json_object ou json_schema (avec json_schema.name et json_schema.schema).
toolsobject[]Non—Outils de type fonction.
tool_choicestring or objectNonautoauto et none sont appliqués. required et une fonction nommée sont acceptés mais ne forcent pas d'appel.
streambooleanNonfalseEnvoie des événements côté serveur (server-sent events).
stream_options.include_usagebooleanNonfalseAjoute le chunk d'usage final.
prompt_cache_optionsobjectNon{"mode": "implicit", "ttl": "5m"}mode : implicit. ttl : 5m ou 1h.
prompt_cache_key, safety_identifier, prediction—Non—Acceptés.
logprobs, top_logprobs—Non—Acceptés (top_logprobs de 0 à 20), mais aucune probabilité logarithmique n'est renvoyée.
temperature, top_p, n, presence_penalty, frequency_penalty—Non1.0, 0.95, 1, 0, 0Fixes. Toute autre valeur renvoie 400 : ne les envoyez pas.

Raisonnement et niveau de raisonnement

Kimi K3 raisonne toujours ; il est impossible de désactiver le raisonnement. reasoning_effort fixe son intensité : max (par défaut) pour le travail le plus difficile, high pour la plupart des tâches, low pour les étapes simples et rapides. Le raisonnement est renvoyé dans reasoning_content, à côté de content. Les tokens de raisonnement sont facturés comme des tokens de sortie et comptent dans max_completion_tokens.

Dans les conversations à plusieurs tours et les appels d'outils, renvoyez chaque message assistant sans le modifier, y compris son reasoning_content.

Entrée image

Kimi K3 accepte les images sous forme de data URI base64. Une URL d'image publique n'est pas acceptée et renvoie 400, comme sur l'API de Kimi.

{"role": "user", "content": [
  {"type": "image_url", "image_url": {"url": "data:image/png;base64,<BASE64_DATA>"}},
  {"type": "text", "text": "Describe this image."}
]}

Mise en cache du contexte

La mise en cache est automatique : un préfixe de prompt répété est lu depuis le cache au tarif réduit de l'entrée en cache. prompt_cache_options.ttl choisit combien de temps un préfixe écrit reste en cache, 5m (par défaut) ou 1h ; choisissez 1h lorsque vos requêtes sont espacées de plus de cinq minutes. usage.prompt_tokens_details.cached_tokens indique les tokens lus depuis le cache et cache_write_tokens les écritures en cache facturées pour la requête.

Dimensions de facturation

Consultez les tarifs actuels sur la page du modèle. Une requête est facturée en fonction des tokens qu'elle utilise :

  • tokens d'entrée,
  • tokens d'entrée en cache (cached_tokens),
  • tokens d'écriture en cache (cache_write_tokens),
  • tokens de sortie, y compris le raisonnement.

Les prix ne varient pas avec la longueur du contexte. Le montant est calculé à partir de l'usage renvoyé avec la réponse terminée. Une requête qui échoue n'est pas facturée. Les enregistrements d'usage de votre compte indiquent le montant exact de chaque requête.

Sortie

Une requête Chat Completions non-streaming renvoie :

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1790585961,
  "model": "kimi-k3",
  "choices": [{
    "index": 0,
    "finish_reason": "stop",
    "message": {"role": "assistant", "reasoning_content": "...", "content": "..."}
  }],
  "usage": {
    "prompt_tokens": 90,
    "completion_tokens": 57,
    "total_tokens": 147,
    "cached_tokens": 90,
    "prompt_tokens_details": {"cached_tokens": 90, "cache_write_tokens": 0}
  }
}

Avec "stream": true, chaque chunk contient un delta avec reasoning_content ou content. Avec stream_options.include_usage, un dernier chunk avec un tableau choices vide porte l'usage avant data: [DONE].

API Responses et Codex

POST /v1/responses accepte le corps Responses : input, instructions, max_output_tokens, reasoning.effort (low, high, max), text.format (json_schema), tools (function et l'outil personnalisé apply_patch), tool_choice, stream, prompt_cache_options, prompt_cache_key et safety_identifier. Le raisonnement est renvoyé sous forme d'élément reasoning avec une partie summary_text, et un flux transporte des événements numérotés de response.created à response.completed. L'API est sans état : previous_response_id et conversation sont ignorés, envoyez donc toute la conversation dans input. L'outil web_search est ignoré.

Pour utiliser Kimi K3 dans Codex, ajoutez un provider à ~/.codex/config.toml et définissez SEEDROUTER_API_KEY :

model = "kimi-k3"
model_provider = "seedrouter"
model_context_window = 1048576

[model_providers.seedrouter]
name = "SeedRouter"
base_url = "https://api.seedrouter.ai/v1"
env_key = "SEEDROUTER_API_KEY"
wire_api = "responses"

Format Anthropic Messages

Le code écrit pour l'API Anthropic Messages peut aussi appeler Kimi K3 : envoyez le corps Messages à /v1/messages avec "model": "kimi-k3". system, max_tokens, tools, tool_choice (auto, none) et output_config.effort (low, high, max) sont appliqués, et metadata.user_id et cache_control sont acceptés. stop_sequences (jusqu'à 5), tool_choice any et output_config.format sont acceptés mais n'ont aucun effet. Le raisonnement est renvoyé sous forme de blocs thinking. Les images sont transmises comme sources base64.

Erreurs

Les erreurs utilisent {"error": {"code": ..., "message": "..."}} (le point de terminaison Messages utilise le format d'erreur d'Anthropic). Le code est un code du catalogue d'erreurs commun. Les requêtes échouées ne sont pas facturées.

Conseils

  • Commencez avec le niveau de raisonnement high et ne passez à max que pour les problèmes les plus difficiles ; low convient aux étapes simples et rapides.
  • Définissez max_completion_tokens assez haut pour le raisonnement et la réponse : c'est un budget unique pour les deux.
  • Placez le contexte long et réutilisé au début du prompt afin que les requêtes ultérieures le lisent depuis le cache, et utilisez le TTL 1h lorsque les requêtes sont espacées.

Ressources associées