ナビゲーションにスキップ

Claude Sonnet 5 API

Claude Sonnet 5 を呼び出すには model: "claude-sonnet-5" を指定します。以下の例では Anthropic Messages を使って同期リクエストを送信します。

以下は実装例であり、実際のモデル出力を記録したものではありません。キーはサーバーの環境変数 BEATAPI_API_KEY に保存し、cURL の例では <BEATAPI_API_KEY> を自分のキーに置き換えてください。ブラウザー側のコードにキーを含めないでください。

リクエストの送信

POST https://api.beatapi.io/v1/messages

サーバー側のプロジェクトに @anthropic-ai/sdk をインストールしてください。

import Anthropic from "@anthropic-ai/sdk";
const apiKey = process.env.BEATAPI_API_KEY;
if (!apiKey) throw new Error("Set BEATAPI_API_KEY in your server environment.");
const client = new Anthropic({
apiKey,
baseURL: "https://api.beatapi.io",
});
const message = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Review this API change: an optional nickname field may be absent or null. List the caller assumptions, serializer changes and regression cases needed to preserve compatibility." }],
});
if (message.stop_reason !== "end_turn") {
throw new Error(`Handle the stop reason before accepting the result: ${message.stop_reason}`);
}
const text = message.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("\n");
if (!text.trim()) throw new Error("The response contains no text answer.");
console.log(text);
console.log({ id: message.id, model: message.model, usage: message.usage });

max_tokens: 1024 はこの例で設定した出力予算であり、モデルの最大出力上限ではありません。SDK がエンドポイントのパスを付けるため、SDK のベース URL には /v1 を含めません。

cURL

curl --request POST \
--url https://api.beatapi.io/v1/messages \
--header 'Authorization: Bearer <BEATAPI_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Review this API change: an optional nickname field may be absent or null. List the caller assumptions, serializer changes and regression cases needed to preserve compatibility."
}
]
}'

結果の取得と検証

SDK は Messages 形式のレスポンスをそのまま返します。type が text のブロックからのみテキストを取得し、実際のレスポンスの stop_reason と usage を確認してください。この例では end_turn を受け入れます。max_tokens は回答が途中で切れた可能性がある状態、tool_use はアプリケーションによるツール処理が必要な状態として扱い、タスクの完了とみなさないでください。

HTTP 200 が返っても、回答がタスクの要件を満たしているとは限りません。アプリケーション側で内容を検証してください。これらのテキストリクエストは直接結果を返すため、/v1/tasks をポーリングする必要はありません。

GET /v1/models でアカウントが利用できるモデル ID を確認してください。この最小構成の例は、追加の推論設定、サンプリング、キャッシュ制御、ホスト型ツール設定への対応を示すものではありません。