Claude API 接続ガイド:Anthropic ネイティブインターフェースとキー設定
極智時代(AzzTimes)ゲートウェイを使用して Anthropic Claude モデルを呼び出すための手順。インターフェース、認証、curl 例、リクエスト/レスポンス構造、SSE ストリーミング、エラーコードについて解説します。
一、概要
極智時代(AzzTimes)は、開発者の皆様に Anthropic Messages API(/v1/messages) 互換の中継接続サービスを提供しています。リクエストを当サイトのゲートウェイに送信し、認証キーを「ユーザーセンター - API キー」で作成した sk- で始まるキーに置き換えるだけで、既存のコードを変更することなく直接 Claude シリーズモデルを利用できます。
現在利用可能なモデルは「モデル広場」に準拠します(例:claude-sonnet-5、claude-opus-5、claude-sonnet-4-6、claude-opus-4-8 など)。詳細なリストと単価は GET /v1/models でいつでも確認可能です。
二、インターフェースアドレス
| メソッド | パス | 説明 |
|---|---|---|
| POST | /v1/messages | 中継転送エンドポイント。リクエストボディは Anthropic /v1/messages ペイロードに準拠 |
| GET | /v1/models | モデルと単価のリスト(認証不要) |
ゲートウェイアドレス:https://www.relay-api.com。リクエストパスは上記表の通り指定してください。
三、認証方法
「ユーザーセンター → API キー」で作成した sk-xxxxxxxx 形式のキーを使用します。呼び出し時には以下のいずれかの方法でヘッダーに含めてください:
- Authorization ヘッダー:
Authorization: Bearer sk-あなたのキー(推奨、多くの SDK と互換性があります) - x-api-key ヘッダー:
x-api-key: sk-あなたのキー
キーが無効、停止中、または残高不足の場合は 401 / 403 エラーが返されます。まずはキーの状態とアカウント残高を確認してください。
四、クイックスタート(curl)
4.1 非ストリーミング対話
curl -X POST https://www.relay-api.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-あなたのキー" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "自己紹介を一言でお願いします"}
]
}'
4.2 System プロンプトと複数回対話の例
curl -X POST https://www.relay-api.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-你的密钥" \
-d '{
"model": "claude-opus-5",
"max_tokens": 2048,
"system": "あなたは厳格な技術ドキュメントエンジニアです。",
"messages": [
{"role": "user", "content": "Claude Messages API の認証ヘッダーは何ですか?"},
{"role": "assistant", "content": "x-api-key または Authorization: Bearer を使用します。"},
{"role": "user", "content": "ストリーミングリクエストの例も挙げてください。"}
],
"metadata": {"request_id": "demo-001"}
}'
metadata.request_id は利用ログに記録され、「ユーザーセンター → 利用明細」で照合する際に便利です。
五、リクエストパラメータ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | はい | モデル名(例: claude-sonnet-5) |
| max_tokens | int | はい | 最大出力トークン数。推奨 1〜64000 |
| messages | array | はい | 対話メッセージ。{role, content} 形式。role は user / assistant |
| system | string | いいえ | システムプロンプト |
| temperature | number | いいえ | サンプリング温度。デフォルト 1.0、範囲 0〜1 |
| top_p | number | いいえ | 核サンプリング。デフォルト 0.999 |
| stream | bool | いいえ | ストリーミング出力の可否。デフォルト false |
| stop_sequences | array | いいえ | 停止シーケンス |
| metadata.request_id | string | いいえ | 照合用カスタムリクエスト ID |
六、レスポンス構造
非ストリーミングリクエストは標準的な Anthropic Messages 構造を返します:
{
"id": "msg_01ABCDEFG",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5",
"content": [
{"type": "text", "text": "こんにちは!Claude です。"}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 12,
"output_tokens": 18,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0
}
}
| フィールド | 説明 |
|---|---|
| id | メッセージのユニーク ID |
| content[].type | コンテンツブロックタイプ(text / thinking など) |
| content[].text | テキスト内容 |
| stop_reason | 停止理由:end_turn / max_tokens / stop_sequence |
| usage.input_tokens | 入力トークン数(課金対象) |
| usage.output_tokens | 出力トークン数(課金対象) |
| usage.cache_read_input_tokens | キャッシュヒット入力トークン数(キャッシュ読み取り料金適用) |
| usage.cache_creation_input_tokens | キャッシュ書き込みトークン数(キャッシュ書き込み料金適用) |
七、ストリーミング出力
リクエストボディに "stream": true を含めると、サーバーから SSE(Server-Sent Events) で順次レスポンスが返されます。イベントタイプは Anthropic に準拠しています:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_...", "model": "claude-sonnet-5"}}
event: content_block_delta
data: {"type": "content_block_delta", "delta": {"type": "text_delta", "text": "こんにちは"}}
event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn"}, "usage": {"output_tokens": 18}}
event: message_stop
data: {"type": "message_stop"}
クライアントは data: 行を JSON として解析し、event: 行と空行を無視してください。message_stop を受け取るとストリーム終了です。課金はサーバー側でリクエスト単位の合計 usage に基づいて行われます。
八、主なエラーコード
| HTTP ステータス | 意味 | 対処法 |
|---|---|---|
| 400 | リクエスト不正(モデル名不足、非対応モデル等) | レスポンスの message を確認し修正してください |
| 401 | API キー未設定または無効 | Authorization / x-api-key ヘッダーを確認 |
| 403 | キー停止中、残高不足、または権限不足 | チャージ、キー状態確認、または権限設定を確認 |
| 404 | モデルが存在しない | GET /v1/models で利用可能なモデルを確認 |
| 429 | リクエスト過多(レート制限) | 指数バックオフによる再試行を行ってください |
| 500 | 内部サーバーエラー | 時間を置いて再試行、解決しない場合はサポートへ連絡 |
エラーレスポンスは {"code": ステータスコード, "message": "エラー説明", "data": null} 形式となります。
九、利用料金と残高
- 各呼び出しは、トークン使用量 × モデル単価 × 路線倍率でリアルタイムに計算されます。詳細は
GET /v1/modelsを参照してください。 - ログイン後、「ユーザーセンター → API 利用状況」で履歴(モデル、トークン、費用、ステータス)を確認できます。
- 残高が不足すると 403 エラーが返されます。チャージを行うと直ちに利用可能になります。
