API リファレンス
ZetaAPI のエンドポイント、認証、互換フォーマット、エラーコード、レート制限。OpenAI と Anthropic の両フォーマットを透過し、SDK 変更不要。
更新日 2026-04-17
Base URL
https://api.staging.cosmos-router.com
- OpenAI 互換エンドポイントは
/v1/* - Anthropic 互換エンドポイントは
/v1/messages - 両フォーマットは同じ API キーを共用
認証
すべてのリクエストに Authorization: Bearer sk-xxxxx が必要です:
curl https://api.staging.cosmos-router.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxx" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "hi"}]}'
Anthropic フォーマットは x-api-key も受け付けます(公式と同じ):
curl https://api.staging.cosmos-router.com/v1/messages \
-H "x-api-key: sk-xxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-4-6", "max_tokens": 1024, "messages": [{"role": "user", "content": "hi"}]}'
エンドポイント一覧
| エンドポイント | プロトコル | 説明 |
|---|---|---|
POST /v1/chat/completions | OpenAI | チャット補完、SSE ストリーミング対応 |
POST /v1/completions | OpenAI | 旧来のテキスト補完(旧モデル向け) |
POST /v1/embeddings | OpenAI | ベクトル埋め込み |
POST /v1/messages | Anthropic | Claude ネイティブ形式、prompt cache 対応 |
GET /v1/models | OpenAI | 現在のアカウントで利用可能なモデル一覧 |
対応モデルファミリー
- Claude:
claude-opus-4-8、claude-opus-4-7、claude-sonnet-4-6 - GPT:
gpt-5.5、gpt-5.3-chat、gpt-5.3-codex、gpt-5.2-codex、gpt-4o、o3、o4-mini - Gemini:
gemini-3-pro-preview、gemini-2.5-pro、gemini-3-flash-preview、gemini-flash-latest - DeepSeek / Qwen / Kimi / MiniMax などのオープンソース・国産モデル
モデルと価格はデプロイごとに更新されます。上表は代表例です。完全なモデル一覧と最新の価格倍率は 料金ページ が正です。
ストリーミング応答(SSE)
リクエストに "stream": true を設定するだけ:
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Python でクイックソートを書いて"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
SSE は data: {...}\n\n 形式を返し、最後は data: [DONE] で終了します。OpenAI / Anthropic 公式と完全に同一です。
Prompt Cache
OpenAI モデル
自動キャッシュで、追加パラメータは不要。繰り返しの前置部は自動的にキャッシュヒット価格で課金されます(入力価格の 50% 以下、モデルによる)。
Claude(Anthropic 形式)
system または messages のブロックに明示的に指定します:
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "長いシステムプロンプト...",
"cache_control": { "type": "ephemeral" }
}
],
"messages": [...]
}
キャッシュヒット価格は入力価格の 10% で、公式と同じです。詳細は Prompt Cache コスト実測。
エラーコード
| HTTP | Code | 説明 | 推奨対応 |
|---|---|---|---|
| 400 | invalid_request_error | パラメータ誤り(フィールド欠落・形式誤り・モデル名誤り) | リクエストボディを確認 |
| 401 | authentication_error | キーが無効または失効 | キーを再生成 |
| 402 | insufficient_quota | 残高不足 | コンソールでチャージ |
| 403 | permission_error | そのキーは当該モデルにアクセス不可 | キーの権限を確認 |
| 404 | not_found_error | モデル名のスペルミス | /v1/models を参照 |
| 429 | rate_limit_error | レート制限に到達 | 指数バックオフで再試行 |
| 500 | internal_error | プラットフォーム内部エラー | 障害統計に計上。公開ルールに基づき補償を申請可能 |
| 502 / 503 | upstream_error | 上流障害、チャネル切替中 | クライアントは即時再試行可 |
| 504 | timeout_error | 上流タイムアウト | クライアントは即時再試行可 |
エラーボディの形式は OpenAI と同じです:
{
"error": {
"type": "invalid_request_error",
"message": "model 'gpt-4-vision' not found",
"code": null
}
}
レート制限
- 既定:600 RPM / 300k TPM(キー単位、アカウント単位ではない)
- 企業・ヘビーユーザーはコンソールで上限引き上げを申請可
- 超過時は
429とRetry-Afterヘッダー(秒)を返す
障害の自動切替
上流チャネルの可用率が異常に低下すると、プラットフォームは自動でバックアップチャネルへトラフィックを切り替えます。ほとんどの場合クライアントに影響はありません。
SLA 補償は 暦月 + SKU 大区分で計算されます。現在は申請制(担当者による審査・確定)です。申請方法と補償段階は サービス補償の申請 を参照(設計背景:補償ルールをプロダクトに)。
SDK 対応
- Python:公式の
openai・anthropicSDK をそのまま使用、base_urlを変えるだけ - Node.js:
openai/@anthropic-ai/sdkも同様 - Go / Rust / Java:base URL をカスタマイズできる OpenAI 互換ライブラリなら何でも可