一、概要
極智APIは、開発者の皆様に 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 | メッセージ一意識別子 |
| 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 を受信したらストリーム終了です。課金はサーバー側でリクエスト全体の使用量に基づいて計算され、ストリーミングとは独立しています。
八、一般的なエラーコード
| HTTPステータスコード | 意味 | 対処方法 |
|---|---|---|
| 400 | リクエストパラメータ不正(model/max_tokens不足、モデル未有効化など) | レスポンスのmessageを確認し修正 |
| 401 | APIキー未設定または無効 | Authorization / x-api-keyヘッダーを確認 |
| 403 | キー停止中、残高不足、または当該モデルへのアクセス権なし | チャージ、キーのステータス確認、または権限調整 |
| 404 | 要求したモデルが存在しない | GET /v1/models で利用可能なモデルを確認 |
| 429 | リクエスト過多または制限超過 | バックオフ再試行(指数バックオフ) |
| 500 | サービス内部エラー | しばらく待ってから再試行。改善しない場合はサポートへ連絡 |
エラーレスポンスは一律 {"code": ステータスコード, "message": "エラー説明", "data": null} という構造です。
九、使用量と残高
- 各呼び出しは、トークン使用量 × モデル単価 × ルート倍率に基づきリアルタイムで減算されます。単価とルートは
GET /v1/modelsを参照してください。 - ログイン後、「ユーザーセンター → API利用状況」から呼び出し履歴(モデル、トークン、料金、ステータス)を確認できます。
- 残高不足時は403が返され、チャージを行うと即時回復します。
Base URLの注記:当サイトは /v1beta/models/... および /v1beta/v1beta/models/... (ならびに /v1/... および /v1/v1/...)も受け付けるため、クライアントが /v1 や /v1beta を自前で補完しても呼び出しに影響はありません。Base URLはドメインルートまたは /v1beta を含むアドレスのいずれも利用可能です。モデルIDはコンソールの「トークン」ページ右上にある「モデルID」からコピーしてください。
