Kimi Messages
1 つの BeatAPI キーで、Anthropic Messages 形式から Kimi K3 を呼び出せます。
- 1 つのエンドポイント
POST /v1/messagesで Kimi K3 を呼び出せます。 - ストリーミングとツール使用に対応し、100 万トークンのコンテキストウィンドウを備えています。
- Anthropic SDK で使えます。base URL を変え、BeatAPI のキーを使うだけです。すべてのリクエストに
anthropic-versionヘッダーを付けてください。 tool_choiceはモデルに渡されますが、すべてのモデルが従うわけではありません。thinkingは効きません。下のパラメーター一覧を参照してください。
テキストリクエストの base URL には https://direct.beatapi.io を推奨します。Cloudflare の 100 秒制限を受けないため、長時間のノンストリーミングリクエストが途中で切れません。https://api.beatapi.io も使え、ネットワークから direct.beatapi.io に届かない場合の代替になります。キー、モデル、価格はどちらも同じです。画像・動画 API は https://api.beatapi.io のみを使います。
このエンドポイントをテスト画面で開きます。BeatAPI の API キーを入力して送信してください。実際に呼び出され、ご自身の残高から課金されます。
モデル
次の ID を model として送ります。
- 価格は基本ティアで、割引適用後です。長文コンテキストのティア、キャッシュ入力価格、キャッシュ書き込み価格はこの表に含まれません。価格表を参照してください。
—はカタログが数値を公開していないことを示します。
クイックスタート
サーバーに @anthropic-ai/sdk または anthropic パッケージをインストールし、キーは BEATAPI_API_KEY に置いてください。ブラウザのコードには書かないでください。SDK は anthropic-version ヘッダーを自動で付けます。以下はリクエスト例であり、実際のモデル出力の記録ではありません。
回答は content の text ブロックから読み取り、続けて stop_reason と usage を確認します。HTTP 200 だけでは回答がタスクを満たす証拠になりません。内容はアプリケーション側で検証してください。テキストのリクエストは直接結果を返すので、/v1/tasks をポーリングする必要はありません。
エンドポイントと認証
POST https://direct.beatapi.io/v1/messages
x-api-key
string
必須
BeatAPI のキー。Authorization: Bearer <BEATAPI_API_KEY> も使えます。
すべてのリクエストに anthropic-version ヘッダー(例:2023-06-01)を付けてください。Anthropic SDK は自動で付けます。認証は x-api-key でも Authorization: Bearer <BEATAPI_API_KEY> でも使えます。
リクエストパラメーター
リクエストは Anthropic Messages の形式です。以下のフィールドは有効です。最後の 2 つは SDK から送れますが、結果は変わりません。このページに載っていないフィールドは、効果があるとは限りません。
model
string
必須
正確なモデル ID。
指定できる値:kimi-k3
- 各 ID は独立したモデルで、他のモデルの別名ではありません。
- キーで
GET /v1/modelsを呼ぶと、そのキーで有効なモデルを確認できます。
max_tokens
integer
必須
生成するトークン数の上限。推論の分も含みます。
- ゲートウェイは、指定値を上の表の最大出力と照合しません。その数値以下に収めてください。
max_tokensは、リクエストに必要な残高の見積もりにも使われます。極端に大きい値だと、実際の出力が短くても402 insufficient_creditsで拒否されることがあります。必要な分だけ指定してください。
推論型モデルは先に推論を出力します。max_tokens が小さすぎると推論で使い切られ、text ブロックが空になって stop_reason が max_tokens になります。推論と本文の両方に余裕を持たせ、max_tokens が出たら値を増やしてください。
messages
object[]
必須
会話の内容。古いメッセージが先頭です。各メッセージには role(user または assistant)と content(文字列、またはブロックの配列)があります。
- テキストブロック(
text)、モデルのツール要求(tool_use)、あなたが返す結果(tool_result)が有効です。 tool_resultブロックには、応答先のtool_useブロックのtool_use_idを付ける必要があります。
system
string | object[]
任意
システムプロンプト。文字列、またはテキストブロックの配列。複数のテキストブロックは 1 つのシステムプロンプトに連結されます。
stream
boolean
任意デフォルト: false
回答をサーバー送信イベント(SSE)として返します。下の「ストリーミング」を参照してください。
デフォルト:false
temperature
number
任意
サンプリング温度。top_p とはどちらか一方だけ調整してください。
top_p
number
任意
nucleus sampling のしきい値。
stop_sequences
string[]
任意
生成を止める文字列の配列。
tools
object[]
任意
モデルが呼び出せるツールの定義。各ツールは name、description、input_schema で有効になります。モデルは tool_use ブロックで応答します。結果は次の user メッセージの tool_result ブロックで返してください。
tool_choice
object
任意
モデルが tools をどう使うかを指定します。{"type": "auto"} はモデルに任せ(既定)、{"type": "any"} はいずれかのツールを、{"type": "tool", "name": "..."} は指定したツールを必ず呼ばせ、{"type": "none"} はツールを呼ばせません。disable_parallel_tool_use: true で 1 回の回答につき呼び出しを 1 つに限ります。tools がないときは無視されます。この設定はモデルに渡されますが、すべてのモデルが従うわけではありません。実測(2026-10-15)では DeepSeek は無視し、Qwen は any には従い、ツール指定には従いませんでした。呼び出しがあるかは回答の tool_use ブロックで確認してください。
thinking
object
任意
効きません。推論のオンとオフを切り替えず、推論の予算も設定しません。もともと推論するモデルは推論を続け、その内容は thinking ブロックとして返ります。
レスポンス
非ストリーミングの呼び出しは JSON オブジェクトを 1 つ返します。以下は省略した例です。
レスポンスのフィールド
ストリーミング
"stream": true を指定します。ストリームは message_start で始まり message_stop で終わります。間のブロックは content_block_start、content_block_delta、content_block_stop イベントで届き、message_delta が stop_reason を運びます。
- レスポンスは
text/event-streamです。ストリーミングしない場合はapplication/jsonです。 - テキストは
text_deltaイベントで届きます。推論型モデルは、テキストブロックの前にthinking_deltaイベントでthinkingブロックを送ります。ツールの引数はinput_json_deltaイベントで届きます。 - モデルを呼び出す前に失敗した場合は、ストリームイベントではなく、HTTP ステータス付きの通常の JSON エラーが返ります。
- 明示的なタイムアウトを設定し、ストリーミングの再接続は安全に行ってください。
エラー
HTTP エラー早見表
認証、ルーティング、レート制限、存在しないモデルの失敗はモデルを呼ぶ前に起き、BeatAPI のエンベロープ(error.code、error.message、retryable、request_id)で返ります。それ以外の失敗は Anthropic の形式 {"type": "error", "error": {"type", "message"}} のままで、コードは error.type、request id は message の末尾にあります。詳しくはエラーを参照してください。
全エラーコード表と再試行ポリシーはエラーを参照してください。
注意事項
- Kimi は Chat Completions と OpenAI Responses でも呼び出せます。
- Kimi K3 は既定で思考してから回答します。推論トークンは出力トークンに数えられ、出力として課金されます。
- すべてのリクエストに
anthropic-versionを付けてください。thinkingには頼らないでください。効果がありません。 - API キーは信頼できるサーバーにだけ置き、レスポンスのリクエスト ID を記録し、再試行は
429、500、503に限ってください。
認証
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
リクエスト
正確なモデル ID。
各 ID は独立したモデルで、他のモデルの別名ではありません。
キーで GET /v1/models を呼ぶと、そのキーで有効なモデルを確認できます。
kimi-k3
生成するトークン数の上限。推論の分も含みます。
ゲートウェイは、指定値を上の表の最大出力と照合しません。その数値以下に収めてください。
max_tokens は、リクエストに必要な残高の見積もりにも使われます。極端に大きい値だと、実際の出力が短くても 402 insufficient_credits で拒否されることがあります。必要な分だけ指定してください。
推論型モデルは先に推論を出力します。max_tokens が小さすぎると推論で使い切られ、text ブロックが空になって stop_reason が max_tokens になります。推論と本文の両方に余裕を持たせ、max_tokens が出たら値を増やしてください。
会話の内容。古いメッセージが先頭です。各メッセージには role(user または assistant)と content(文字列、またはブロックの配列)があります。
テキストブロック(text)、モデルのツール要求(tool_use)、あなたが返す結果(tool_result)が有効です。
tool_result ブロックには、応答先の tool_use ブロックの tool_use_id を付ける必要があります。
システムプロンプト。文字列、またはテキストブロックの配列。複数のテキストブロックは 1 つのシステムプロンプトに連結されます。
回答をサーバー送信イベント(SSE)として返します。下の「ストリーミング」を参照してください。
サンプリング温度。top_p とはどちらか一方だけ調整してください。
nucleus sampling のしきい値。
生成を止める文字列の配列。
モデルが呼び出せるツールの定義。各ツールは name、description、input_schema で有効になります。モデルは tool_use ブロックで応答します。結果は次の user メッセージの tool_result ブロックで返してください。
モデルが tools をどう使うかを指定します。{"type": "auto"} はモデルに任せ(既定)、{"type": "any"} はいずれかのツールを、{"type": "tool", "name": "..."} は指定したツールを必ず呼ばせ、{"type": "none"} はツールを呼ばせません。disable_parallel_tool_use: true で 1 回の回答につき呼び出しを 1 つに限ります。tools がないときは無視されます。この設定はモデルに渡されますが、すべてのモデルが従うわけではありません。実測(2026-10-15)では DeepSeek は無視し、Qwen は any には従い、ツール指定には従いませんでした。呼び出しがあるかは回答の tool_use ブロックで確認してください。
効きません。推論のオンとオフを切り替えず、推論の予算も設定しません。もともと推論するモデルは推論を続け、その内容は thinking ブロックとして返ります。
レスポンス
非ストリーミングの呼び出しは JSON オブジェクトを 1 つ返します。以下は省略した例です。
メッセージ ID。サポート対応や請求の照合のため、リクエスト ID と合わせて記録してください。
実際に回答したモデル。
コンテンツブロック:thinking(推論型モデルが回答の前に返す)、text、tool_use。
end_turn は回答が完結、tool_use はツール呼び出しの要求、max_tokens は max_tokens に達したこと、stop_sequence は停止文字列に一致したことを示します。
input_tokens と output_tokens。推論は出力に数えます。呼び出しは実際のトークン使用量で計量されます。

