チャット

Anthropic MessagesとClaude Code

ClaudeモデルはAnthropicのMessages APIにも対応しています。ベース URLとキーを変更するだけで、AnthropicのSDK、Claude Code、それらに対応したツールを使用できます。

POST/v1/messages

ベース URLはhttps://api.zurelay.comです(SDKが/v1/messagesを追加します)。キーはx-api-keyまたはAuthorization: Bearerで、anthropic-version: 2023-06-01とともに送信してください。ここで利用できるのはClaudeモデルのみです。その他のモデルには/v1/chat/completionsを使用してください。

AnthropicのSDKを使う

import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
)
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
system="You are a careful code reviewer.",
messages=[{"role": "user", "content": "Review this function: def add(a, b): return a - b"}],
)
print(message.content[0].text)

AnthropicのMessages APIの機能はそのまま利用できます(metadataは当社側で処理します)。文字列またはブロック形式のsystem(プロンプトキャッシュ用のcache_controlを含む)、tools、thinking、output_config、stop_sequences、temperature、同じイベントを使うストリーミング、anthropic-betaヘッダーに対応します。画像とPDFはimageブロックとdocumentブロックで送信します。詳しくは画像、PDF、音声、動画をご覧ください。AnthropicはOpus 4.7以降のClaudeでtemperature、top_p、top_kを受け付けないため、これらのモデルではリクエストをエラーにせず、該当する値を除外します。

思考

Claudeはリクエストに必要な思考量を自動で判断します。思考の強さはoutput_config.effortでlow、medium、high、xhigh(非常に高い)、maxから設定できます。思考の要約をthinkingブロックで受け取るには、thinkingにdisplay: "summarized"を追加してください。

import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
)
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=32000,
thinking={"type": "adaptive", "display": "summarized"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "How many primes are there below 1,000?"}],
)
for block in message.content:
print(block.thinking if block.type == "thinking" else block.text)
  • Claude Opus 5.5とFableモデルは常に思考します。Opus 5.5はレベルを指定しない限りmedium、Fableはhighです。思考しないよう指定した場合はlowで動作します。
  • Claude Sonnet 5.5とOpus 5はデフォルトでhigh、Claude Haiku 5.5はmediumで思考します。Opus 4.6から4.8はthinkingを送った場合のみ思考します。Opus 4.6にはxhighがないため、highで動作します。
  • 従来の形式であるthinking: { type: "enabled", budget_tokens }は、すべてのClaudeモデルで使用できます。これを受け付けないモデルでは、最も近いレベルで適応的に思考します。Claude Haiku 4.5はこの形式にのみ対応しており、適応的思考を送ると予算が設定されます。
  • 思考に使ったトークンは出力トークンとして課金されるため、xhigh と max では max_tokens にその分の余裕を持たせ、長い回答はストリーミングしてください。レベルを指定すると、実際に使用されたレベルが x-zurelay-reasoning-effort ヘッダーに示されます。

プロンプトキャッシュ

キャッシュの仕組みは Anthropic と同じです。キャッシュしたいブロック、またはリクエスト全体に cache_control を指定すると5分間保持されます。1時間保持するには "ttl": "1h" を追加します。入力の各部分には、Anthropic と同じ方法で課金されます:

入力課金単価使用量での表示
キャッシュから読み取りモデルのキャッシュ読み取り単価cache_read_input_tokens
キャッシュに5分間書き込み入力単価の1.25倍ephemeral_5m_input_tokens
キャッシュに1時間書き込み入力単価の2倍ephemeral_1h_input_tokens
その他すべて入力単価input_tokens

2種類の書き込みは usage.cache_creation に分けて表示され、cache_creation_input_tokens はその合計です。各モデルのページでキャッシュ料金を確認できます。書き込みとして課金されるのは、キャッシュを指定した部分だけです。cache_control のないリクエストでは、キャッシュから読み取られなかった部分すべてに入力単価が適用されます。5分間の保持を指定した入力に、1時間分の料金が適用されることはありません。

Claude Code

5つの環境変数(ベース URL、API キー、3つのモデルエイリアス)で Claude Code の接続先を Zurelay に設定し、通常どおり実行します:

シェル
export ANTHROPIC_BASE_URL="https://api.zurelay.com"
export ANTHROPIC_AUTH_TOKEN="$ZURELAY_API_KEY"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-5-5"
claude

設定を保存するには、~/.claude/settings.json の env ブロックに同じ値を記入します。詳しい手順と、Cursor、Cline などのガイドは 連携 にあります。

Claude Code の /effort レベルは output_config.effort としてモデルに渡されるため、xhigh と max は Anthropic と同じように動作します。Ultracode は Claude Code の設定であり、effort レベルではありません。セッションのレベルで動作します(--effort ultracode で Claude Code を起動した場合は xhigh)。

トークン数の計算

POST/v1/messages/count_tokens

/v1/messages と同じリクエストボディを受け取り、そのリクエストの推定トークン数を { "input_tokens": 1234 } として返します。無料です。

エラー

エラーは Anthropic と同じ形式({ "type": "error", "error": { "type", "message" } })で返され、意味は エラーのページ と同じです。code は含まれないため、HTTP ステータスと error.type を確認してください。

一部の Claude モデルは、/v1/chat/completions 経由でしか PDF を読み取れません。/v1/messages に送ると、使用すべきエンドポイントがエラーに示されます。各モデルが読み取れる形式は 画像、PDF、音声、動画 の表で確認できます。
  • ヒント: Anthropic と Zurelay ではトークン数の計算結果が多少異なる場合があります。課金にはレスポンス内の使用量が適用されます。

ご質問や不足している情報はありますか? サポートチームにお問い合わせください。通常1分以内にメールで回答します。