Claude Messages
1 つの BeatAPI キーで、同じ Anthropic Messages エンドポイントから Claude Fable 5.1、Opus 5.5、Sonnet 5.5、Haiku 5.5 を呼び出せます。
- 1 つのエンドポイント
POST /v1/messagesで、現行の Claude モデルすべてを呼び出せます。modelを変えるだけで切り替わります。 - テキストと画像の入力、テキスト出力、ストリーミング、ツール呼び出し、拡張思考、プロンプトキャッシュに対応しています。
- Anthropic SDK で使えます。base URL を
https://direct.beatapi.io(/v1なし)にし、BeatAPI のキーを使ってください。 - Claude モデルは Anthropic Messages のみで呼び出します。
/v1/responsesを呼ぶと400が返ります。
テキストリクエストの base URL には https://direct.beatapi.io を推奨します。Cloudflare の 100 秒制限を受けないため、長時間のノンストリーミングリクエストが途中で切れません。https://api.beatapi.io も使え、ネットワークから direct.beatapi.io に届かない場合の代替になります。キー、モデル、価格はどちらも同じです。画像・動画 API は https://api.beatapi.io のみを使います。
このエンドポイントをテスト画面で開きます。BeatAPI の API キーを入力して送信してください。実際に呼び出され、ご自身の残高から課金されます。
モデル
次の ID のいずれかを model として送ります。それぞれ独立したモデルで、互いのエイリアスではありません。
- 価格は基本ティアで、割引適用後です。長文コンテキストのティア、キャッシュ入力価格、キャッシュ書き込み価格はこの表に含まれません。価格表を参照してください。
—はカタログが数値を公開していないことを示します。
このファミリーの旧 ID は引き続き使え、旧モデルにまとめています。
クイックスタート
サーバー側で anthropic パッケージをインストールし、キーは BEATAPI_API_KEY に置いて、ブラウザーのコードには入れないでください。以下はリクエスト例であり、実際のモデル出力の記録ではありません。
回答は 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 ヘッダー(例:anthropic-version: 2023-06-01)を付けてください。キーは x-api-key、または Authorization: Bearer <key> で送ります。どちらでも動くので、既存の Anthropic クライアントは base URL を変えるだけで使えます。
Claude モデルは Anthropic Messages のみで呼び出します。/v1/responses を呼ぶと 400 が返ります。
リクエストパラメーター
標準の Anthropic Messages フィールドを受け付けます。リクエスト形式が互換であっても、すべてのベータ機能やサーバーツールに対応しているとは限りません。使うオプションは必ずテストしてください。
model
string
必須
正確なモデル ID。
指定できる値:claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5
- まだ使える旧 ID(
claude-opus-5、claude-sonnet-5、claude-haiku-4-5-20251001)は旧モデルにあります。 - キーで
GET /v1/modelsを呼ぶと、そのキーで有効なモデルを確認できます。
max_tokens
integer
必須
生成するトークン数の上限。思考も含みます。
- 必ず明示的に指定してください。省略または
0の場合は既定の上限が適用され、その値は想定より小さいことがあります。 - 受け付ける最大値は 1,073,741,823 で、これを超えると
400 bad_requestです。上の表にあるモデルの最大出力以下にしてください。 max_tokensはリクエストに必要な残高の見積もりにも使われます。実際の出力が短くても、極端に大きな値は402 insufficient_creditsで拒否されることがあります。必要な分だけ指定してください。
messages
object[]
必須
会話の内容で、古いメッセージから順に並べます。各メッセージは role(user または assistant)と content を持ちます。content は文字列、またはコンテンツブロックの配列です。
- よく使うブロックの種類:
text、image(base64 または URL)、tool_use(assistant メッセージ内)、tool_result(user メッセージ内)。 messagesが空または欠けていると400 bad_requestになります。
例
system
string | object[]
任意
システムプロンプト。文字列、または text ブロックの配列です。ブロックに cache_control を付けると、長く変わらない先頭部分をキャッシュできます。
例
stream
boolean
任意デフォルト: false
回答をサーバー送信イベントとして返します。下のストリーミングの節を参照してください。
デフォルト:false
stop_sequences
string[]
任意
この文字列が出たら生成を止めます。このとき stop_reason は "stop_sequence" になります。
tools
object[]
任意
モデルが呼び出せるツール。各ツールは name、description、input_schema(JSON Schema)を持ちます。モデルがツールを呼ぶと stop_reason は "tool_use" になります。ツールを実行し、次のメッセージの tool_result ブロックで結果を返してください。
例
tool_choice
object
任意
tools を使うかどうか、どう使うかの指定。
指定できる値:{"type":"auto"}, {"type":"any"}, {"type":"tool","name":"..."}, {"type":"none"}
autoはモデルが判断し、anyはいずれかのツールを必ず使い、toolは名前を指定したツールを必ず使い、noneはツールの使用を禁止します。
例
thinking
object
任意
拡張思考。type でオンとオフを切り替えます。思考トークンは max_tokens に含まれ、出力トークンとして課金されます。
指定できる値:adaptive, enabled, disabled
thinking.typeは上の値のいずれかです。enabledではthinking.budget_tokens(1,024 以上でmax_tokens未満の整数)も指定します。thinking.displayはsummarizedまたはomittedです。新しいモデルでは、summarizedを指定しないと思考テキストが返らないことがあります。- 適応型思考の深さは
output_config.effortで指定します。
モデルごとの注意
claude-fable-5-1:{"type":"adaptive"}を使い、深さはoutput_config.effortで指定します。budget_tokensは拒否されます。claude-opus-5-5:{"type":"adaptive"}を使い、深さはoutput_config.effortで指定します。budget_tokensは拒否されます。claude-sonnet-5-5:{"type":"adaptive"}を使い、深さはoutput_config.effortで指定します。budget_tokensは拒否されます。
例
output_config.effort
string
任意
モデルがどれだけ推論するか。まず high から始め、自分のワークロードで 1 段階下げた場合と上げた場合を比べてください。
指定できる値:low, medium, high, xhigh, max
cache_control
object
任意
プロンプトキャッシュ。system、messages、tools のブロックに付けると、そのブロックまでをキャッシュします。リクエストの最上位にも指定できます。ttl は 5m(既定)または 1h です。
指定できる値:{"type":"ephemeral"}
- キャッシュ読み取り、5 分のキャッシュ書き込み、1 時間のキャッシュ書き込みは別々に計量されます。キャッシュされた先頭部分は、新規の入力ではなくキャッシュ読み取りとして課金されます。
- ヒットの状況は
usage.cache_read_input_tokensとusage.cache_creation_input_tokensで確認できます。
例
ツール呼び出しのループ
stop_reason が tool_use のときは、返ってきた assistant メッセージをそのまま messages に追加し、ツールを実行して、結果を次の user メッセージの tool_result ブロックで送ります。同じ tools をもう一度送ってください。
レスポンス
ストリーミングなしの呼び出しは JSON オブジェクトを 1 つ返します。以下は省略した例です。
レスポンスのフィールド
ストリーミング
"stream": true を指定します。レスポンスは Anthropic 形式のサーバー送信イベントのストリームで、Anthropic SDK と互換です。
- イベントは
message_start、ping、content_block_start、content_block_delta、content_block_stop、message_delta、message_stopの順に届きます。 - テキストは
text_delta、ツールの入力はinput_json_delta(断片をつないでから解析します)、思考テキストはthinking_deltaで届きます。 stop_reasonと最終的な出力トークン数はmessage_deltaに入っています。- レスポンスは
text/event-streamです。ストリーミングなしの場合はapplication/jsonです。モデルを呼ぶ前に起きた失敗は、ストリームイベントではなく、HTTP ステータス付きの通常の JSON エラーで返されます。 - 明示的なタイムアウトを設定し、ストリーミングレスポンスを安全に再接続してください。
エラー
HTTP エラー早見表
認証、ルーティング、レート制限、存在しないモデルの失敗はモデルを呼ぶ前に起き、BeatAPI のエンベロープ(error.code、error.message、retryable、request_id)で返ります。それ以外の失敗は Anthropic の形式 {"type": "error", "error": {"type", "message"}} のままで、コードは error.type、request id は message の末尾にあります。詳しくはエラーを参照してください。
全エラーコード表と再試行ポリシーはエラーを参照してください。
注意事項
- Claude モデルは Anthropic Messages のみで呼び出します。OpenAI Responses では提供されません。
- 思考トークンは出力トークンとして課金され、
max_tokensに含まれます。思考と回答の両方に足りる出力枠を確保してください。 - キーは信頼できるサーバーだけに置き、レスポンスのリクエスト ID を記録し、再試行は
429、500、503に限ってください。
認証
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
リクエスト
正確なモデル ID。
まだ使える旧 ID(claude-opus-5、claude-sonnet-5、claude-haiku-4-5-20251001)は旧モデルにあります。
キーで GET /v1/models を呼ぶと、そのキーで有効なモデルを確認できます。
claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5
生成するトークン数の上限。思考も含みます。
必ず明示的に指定してください。省略または 0 の場合は既定の上限が適用され、その値は想定より小さいことがあります。
受け付ける最大値は 1,073,741,823 で、これを超えると 400 bad_request です。上の表にあるモデルの最大出力以下にしてください。
max_tokens はリクエストに必要な残高の見積もりにも使われます。実際の出力が短くても、極端に大きな値は 402 insufficient_credits で拒否されることがあります。必要な分だけ指定してください。
会話の内容で、古いメッセージから順に並べます。各メッセージは role(user または assistant)と content を持ちます。content は文字列、またはコンテンツブロックの配列です。
よく使うブロックの種類:text、image(base64 または URL)、tool_use(assistant メッセージ内)、tool_result(user メッセージ内)。
messages が空または欠けていると 400 bad_request になります。
システムプロンプト。文字列、または text ブロックの配列です。ブロックに cache_control を付けると、長く変わらない先頭部分をキャッシュできます。
回答をサーバー送信イベントとして返します。下のストリーミングの節を参照してください。
この文字列が出たら生成を止めます。このとき stop_reason は "stop_sequence" になります。
モデルが呼び出せるツール。各ツールは name、description、input_schema(JSON Schema)を持ちます。モデルがツールを呼ぶと stop_reason は "tool_use" になります。ツールを実行し、次のメッセージの tool_result ブロックで結果を返してください。
tools を使うかどうか、どう使うかの指定。
auto はモデルが判断し、any はいずれかのツールを必ず使い、tool は名前を指定したツールを必ず使い、none はツールの使用を禁止します。
{"type":"auto"}, {"type":"any"}, {"type":"tool","name":"..."}, {"type":"none"}
拡張思考。type でオンとオフを切り替えます。思考トークンは max_tokens に含まれ、出力トークンとして課金されます。
thinking.type は上の値のいずれかです。enabled では thinking.budget_tokens(1,024 以上で max_tokens 未満の整数)も指定します。
thinking.display は summarized または omitted です。新しいモデルでは、summarized を指定しないと思考テキストが返らないことがあります。
適応型思考の深さは output_config.effort で指定します。
claude-fable-5-1: {"type":"adaptive"} を使い、深さは output_config.effort で指定します。budget_tokens は拒否されます。
claude-opus-5-5: {"type":"adaptive"} を使い、深さは output_config.effort で指定します。budget_tokens は拒否されます。
claude-sonnet-5-5: {"type":"adaptive"} を使い、深さは output_config.effort で指定します。budget_tokens は拒否されます。
adaptive, enabled, disabled
プロンプトキャッシュ。system、messages、tools のブロックに付けると、そのブロックまでをキャッシュします。リクエストの最上位にも指定できます。ttl は 5m(既定)または 1h です。
キャッシュ読み取り、5 分のキャッシュ書き込み、1 時間のキャッシュ書き込みは別々に計量されます。キャッシュされた先頭部分は、新規の入力ではなくキャッシュ読み取りとして課金されます。
ヒットの状況は usage.cache_read_input_tokens と usage.cache_creation_input_tokens で確認できます。
{"type":"ephemeral"}
レスポンス
ストリーミングなしの呼び出しは JSON オブジェクトを 1 つ返します。以下は省略した例です。
メッセージ ID。サポートや請求の照合のため、リクエスト ID と一緒に記録してください。
実際に回答したモデル。
end_turn は回答が完結したこと、max_tokens は max_tokens に達したこと、ほかに stop_sequence、モデルがツールを呼んだ場合は tool_use。

