Kimi K3
Kimi K3 を公式の Chat Completions、Responses、Anthropic Messages API で呼び出せます。100万トークンのコンテキストウィンドウ、常時有効の推論、推論強度は自由に選択できます。
Kimi K3 は、長期にわたるコーディング、エージェント、ナレッジワーク向けの Moonshot AI のフラッグシップモデルです。回答の前に必ず推論し、その深さは reasoning_effort で選べます。公式の Kimi リクエストを SeedRouter に送信します: ベース URL と API キーを変更し、ボディはそのままにします。
モデル ID
| モデル ID | コンテキストウィンドウ | 最大出力 | 推論強度 | デフォルトの推論強度 |
|---|---|---|---|---|
kimi-k3 | 1,048,576トークン | 1,048,576トークン(デフォルト 131,072) | low、high、max | max |
入力: テキストと画像。出力: テキスト。現在の料金はモデルページをご確認ください。
クイックサンプル
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."}]
}'エンドポイント
| フォーマット | メソッドとパス | 認証 |
|---|---|---|
| Chat Completions | POST https://api.seedrouter.ai/v1/chat/completions | Authorization: Bearer <key> |
| Responses | POST https://api.seedrouter.ai/v1/responses | Authorization: Bearer <key> |
| Anthropic Messages | POST https://api.seedrouter.ai/v1/messages | x-api-key: <key> または Authorization: Bearer <key>、加えて anthropic-version |
3 つのエンドポイントはいずれも、ストリーミングの有無にかかわらず Kimi の公式レスポンスフォーマットを返します。API キーはサーバー側のコードに保管してください。
パラメータ
Chat Completions のフィールド:
| 名前 | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
model | string | はい | — | kimi-k3。 |
messages | object[] | はい | — | テキストメッセージ。画像は image_url パートとして渡します(画像入力を参照)。 |
max_completion_tokens | integer | いいえ | 131072 | 最大 1048576。推論トークンを含みます。max_tokens は同じ上限の非推奨の名前です。 |
reasoning_effort | enum | いいえ | max | low、high、max。それ以外の値は 400 を返します。 |
stop | string or string[] | いいえ | — | 最大 5 つのシーケンス。 |
response_format | object | いいえ | {"type": "text"} | text、json_object、json_schema(json_schema.name と json_schema.schema を指定)。 |
tools | object[] | いいえ | — | 関数ツール。 |
tool_choice | string or object | いいえ | auto | auto と none が適用されます。required と関数の指定は受け付けられますが、呼び出しは強制されません。 |
stream | boolean | いいえ | false | サーバー送信イベントとしてストリーミングします。 |
stream_options.include_usage | boolean | いいえ | false | 最後に使用量のチャンクを追加します。 |
prompt_cache_options | object | いいえ | {"mode": "implicit", "ttl": "5m"} | mode: implicit。ttl: 5m または 1h。 |
prompt_cache_key、safety_identifier、prediction | — | いいえ | — | 受け付けられます。 |
logprobs、top_logprobs | — | いいえ | — | 受け付けられます(top_logprobs は 0~20)が、対数確率は返されません。 |
temperature、top_p、n、presence_penalty、frequency_penalty | — | いいえ | 1.0、0.95、1、0、0 | 固定値です。それ以外の値は 400 を返すため、指定しないでください。 |
推論と推論強度
Kimi K3 は常に推論し、オフにする方法はありません。reasoning_effort で推論の量を設定します: 最も難しい作業には max(デフォルト)、ほとんどのタスクには high、高速でシンプルな処理には low を使います。推論は content と並んで reasoning_content に返されます。推論トークンは出力トークンとして請求され、max_completion_tokens にカウントされます。
マルチターンの会話とツール呼び出しでは、各 assistant メッセージを reasoning_content も含めて変更せずに送り返してください。
画像入力
Kimi K3 は画像を base64 data URI として受け取ります。公開画像の URL は受け付けられず 400 を返します。これは Kimi 自身の API と同じです。
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,<BASE64_DATA>"}},
{"type": "text", "text": "Describe this image."}
]}コンテキストキャッシュ
キャッシュは自動です: 繰り返されるプロンプトのプレフィックスはキャッシュから読み込まれ、より低いキャッシュ入力のレートで請求されます。prompt_cache_options.ttl で、書き込まれたプレフィックスをキャッシュに保持する期間を 5m(デフォルト)または 1h から選びます。リクエストの間隔が 5 分を超える場合は 1h を選んでください。usage.prompt_tokens_details.cached_tokens はキャッシュから読み込まれたトークンを、cache_write_tokens はそのリクエストで請求されたキャッシュ書き込みを示します。
請求ディメンション
モデルページの現在のレートをご覧ください。リクエストは使用するトークンで請求されます:
- 入力トークン、
- キャッシュされた入力トークン(
cached_tokens)、 - キャッシュ書き込みトークン(
cache_write_tokens)、 - 出力トークン(推論を含む)。
料金はコンテキストの長さによって変わりません。請求は完成したレスポンスで報告された usage から差し引かれます。失敗したリクエストは請求されません。アカウントの使用記録にすべてのリクエストの正確な請求額が表示されます。
出力
非ストリーミングの Chat Completions リクエストは次を返します:
{
"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}
}
}"stream": true の場合、各チャンクには reasoning_content または content を含む delta が入ります。stream_options.include_usage を指定すると、data: [DONE] の前に、空の choices 配列を持つ最後のチャンクで使用量が返されます。
Responses API と Codex
POST /v1/responses は Responses のボディを受け付けます: input、instructions、max_output_tokens、reasoning.effort(low、high、max)、text.format(json_schema)、tools(function と apply_patch カスタムツール)、tool_choice、stream、prompt_cache_options、prompt_cache_key、safety_identifier。推論は summary_text パートを持つ reasoning アイテムとして返され、ストリームには response.created から response.completed までの番号付きイベントが流れます。この API はステートレスです: previous_response_id と conversation は無視されるため、会話全体を input で送信してください。web_search ツールは無視されます。
Codex で Kimi K3 を使うには、~/.codex/config.toml に provider を追加し、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"Anthropic Messages フォーマット
Anthropic Messages API 向けに書かれたコードからも Kimi K3 を呼び出せます: "model": "kimi-k3" を指定して Messages ボディを /v1/messages に送信します。system、max_tokens、tools、tool_choice(auto、none)、output_config.effort(low、high、max)が適用され、metadata.user_id と cache_control は受け付けられます。stop_sequences(最大 5 つ)、tool_choice any、output_config.format は受け付けられますが効果はありません。推論は thinking ブロックとして返されます。画像は base64 ソースとして渡します。
エラー
エラーは {"error": {"code": ..., "message": "..."}} を使用します(Messages エンドポイントは Anthropic のエラー形式を使用します)。code は共通エラーカタログのコードです。失敗したリクエストは請求されません。
ヒント
- 推論強度は
highから始め、最も難しい問題の場合のみmaxに切り替えます。lowは高速でシンプルな処理に向いています。 max_completion_tokensは回答だけでなく推論にも十分な高さに設定します: これは両者のための 1 つの予算です。- 長く再利用されるコンテキストはプロンプトの先頭に置き、後のリクエストがキャッシュから読み込めるようにします。リクエストの間隔が空く場合は
1hの TTL を使います。
