エンドポイントと API パス
QCode.cc の Anthropic / OpenAI API プロトコル(Gemini パスは現在利用不可)、3 つのアクセスドメイン、BASE_URL の正しい書き方
API キーが必要ですか? 登録する →エンドポイントと Base URL →
このページでは QCode.cc が提供する 3 種類の API プロトコル、3 つのアクセスドメイン、そして BASE_URL の正しい指定方法をまとめて説明します。同じ API キーで 3 つのプロトコルすべてが使えます — プロトコルはリクエストのパスによって決まり、バックエンドが自動でルーティングします。
どの選択肢でも Key の使い方は同じです。まだ選んでいない場合はプランの選び方をご覧のうえ、ダッシュボードで Key を取得してください。
1. API プロトコル¶
QCode.cc は Anthropic Messages と OpenAI の 2 プロトコルに対応しています。Google Gemini プロトコルのパスもありますが、QCode は現在 Gemini 系モデルを一時的に提供停止しており、このパスは利用できません。以下の Gemini 関連の記述はプロトコル参考用です:
| プロトコル | 主なクライアント | パス |
|---|---|---|
| Anthropic Messages | Claude Code / Claude Agent SDK / Cline / Aider | /api/v1/messages または等価な /claude/v1/messages |
| OpenAI Chat Completions | OpenAI 公式 SDK / LangChain / DeepSeek-TUI など汎用クライアント | /openai/v1/chat/completions |
| OpenAI Responses | Codex CLI(Codex には必須) | /openai/v1/responses |
| Google Gemini API | Gemini CLI / OpenCode(google provider)/ Google @google/genai SDK |
/gemini/v1beta/models/{model}:generateContent(現在利用不可) |
リクエストボディのスキーマは各公式 API(Anthropic POST /v1/messages / OpenAI POST /v1/chat/completions / OpenAI POST /v1/responses / Google POST /v1beta/models/{model}:generateContent)と同一です。
注意:
/api、/claude、/openai/v1はいずれもパスプレフィックスであり、単独のエンドポイントではありません。SDK が/v1/messages、/chat/completions、/responsesなどを自動で付加します。curl https://api.qcode.cc/apiを直接実行すると HTML の紹介ページ(HTTP 200)が返ります。エラーではありませんが、パスが使える証拠にもなりません。確認は下記の第 5 節にある POST 自己テストを使ってください。
2. どのモデルがどのプロトコルで使えるか¶
プロトコルはリクエストパスで決まりますが、すべてのモデルファミリーがすべてのプロトコルで 使えるわけではありません。 下表が唯一の正典であり、他のページはこの表に従います。
| モデルファミリー | Anthropic/api/v1/messages |
OpenAI Chat/openai/v1/chat/completions |
OpenAI Responses/openai/v1/responses |
Gemini/gemini/v1beta/… |
|---|---|---|---|---|
Claude(claude-opus-* / -sonnet-* / -haiku-* / -fable-*) |
✅ | ❌ | ❌ | — |
GPT 系(gpt-6.1-sol / gpt-6-sol / gpt-5.6-terra) |
❌ | ✅ | ✅ Codex はこちら | — |
| GLM / Kimi / DeepSeek / Qwen | ✅ | ✅ | ❌ | — |
| Gemini 系(QCode では現在提供なし) | — | — | — | 利用不可 |
🔴 Claude モデルは Anthropic プロトコルでしか使えません。 claude-… を
/openai/v1/chat/completions に指定すると次が返ります:
{"error":{"code":"model_not_available_on_endpoint",
"message":"Model 'claude-sonnet-5' is not available on this endpoint. Claude models are served only through the Anthropic Messages API: use a base URL ending in /api (or /claude) and send POST /v1/messages. OpenAI-compatible endpoints do not serve Claude models. / Claude 模型只能走 Anthropic Messages 接口:BASE_URL 以 /api(或 /claude)结尾,请求 POST /v1/messages;OpenAI 兼容接口不提供 Claude 模型。",
"param":"model",
"type":"invalid_request_error"}}
この検証は認証より前に走ります —— 無効なキーでもこのエラーが先に出ます。つまり
model_not_available_on_endpoint はプロトコルの選択ミスであってキーの問題ではありません。
キーが不正な場合は Invalid API key が返ります。両者を混同しないでください。
この制限は Claude 固有であり、「クロスプロトコルは一律不可」ではありません:
- 中国系 4 ファミリー(GLM / Kimi / DeepSeek / Qwen)は Anthropic と OpenAI Chat の両方で動作
- GPT 系は OpenAI の 2 つの経路を使い、Anthropic 経路では動作しません
ツール選定への影響:OpenAI プロトコルのみ対応でカスタム Anthropic エンドポイントを 持たないクライアント(例:DeepSeek-TUI、WorkBuddy)は、QCode 経由で Claude モデルを 利用できません(GPT 系と中国系モデルは利用可)。Claude を使うには Anthropic プロトコル対応の クライアント(Claude Code、Cline、Zed、Cursor の Anthropic パスなど)を選んでください。
3. 3 つのアクセスドメイン¶
3 つのドメインが提供する機能は同一で、違いはネットワークルーティングのみ:
| ドメイン | 対象地域 | スキーム | 備考 |
|---|---|---|---|
api.qcode.cc |
グローバル(Route 53 遅延ベース) | HTTPS | 海外ユーザー推奨、最寄りノードへ自動ルーティング |
us.qcode.cc |
北米 / 欧州 | HTTPS | ロサンゼルスノード |
asia.qcode.cc |
アジア | HTTPS | アジアノード(韓国 / 台湾 / 香港) |
同じ API キーで 3 つのドメインすべてを利用でき、いつでも切り替え可能です。
🇨🇳 CN ユーザーへのお知らせ:
asia.qcode.cc(アジアノード、韓国 / 台湾 / 香港の近い方)を推奨します。不安定ならapi.qcode.cc(グローバル Route 53)に切り替えてください。すべてのドメインのリクエストは probe.qcode.cc に報告されます——API Key を入力するとリクエスト詳細、コンテキスト長、使用量などを確認できます。
4. BASE_URL 設定対応表¶
ご利用のツールに応じて下表のとおり設定してください:
| ツール | 環境変数 / 設定キー | 設定値 | SDK が送信する先 |
|---|---|---|---|
| Claude Code | ANTHROPIC_BASE_URL |
https://api.qcode.cc/api |
/api/v1/messages |
| Claude Agent SDK | base_url= コンストラクタ引数 |
https://api.qcode.cc/api |
/api/v1/messages |
| Cline / Aider | Anthropic モードの base URL | https://api.qcode.cc/api |
/api/v1/messages |
| OpenAI Python/JS SDK | base_url= コンストラクタ引数 |
https://api.qcode.cc/openai/v1 |
/openai/v1/chat/completions |
DeepSeek-TUI(openai provider) |
TOML base_url = または OPENAI_BASE_URL |
https://api.qcode.cc/openai/v1 |
/openai/v1/chat/completions |
| Codex CLI | TOML base_url = |
https://api.qcode.cc/openai |
/openai/v1/responses |
OpenCode(google provider) |
baseURL |
https://api.qcode.cc/gemini/v1beta |
/gemini/v1beta/models/{model}:generateContent |
Gemini CLI / Google @google/genai SDK |
base URL | https://api.qcode.cc/gemini |
/gemini/v1beta/models/{model}:generateContent |
Gemini の 2 通りの書き方について:OpenCode の
/v1beta/を自動で付加しないため、baseURLは/gemini/v1betaまで含める必要があります。Gemini CLI と Google 公式@google/genaiSDK は/v1beta/を自動で付加するため、base URL は/geminiまでで十分です(/v1betaまで書くと/gemini/v1beta/v1beta/...となり 404 になります)。⚠️ Gemini は現在ご利用いただけません:QCode は現在 Gemini 系モデルを一時的に提供停止しています。上の Gemini の base URL の 2 行はプロトコル参考用です。Claude、GPT、または中国系モデルをご利用ください。なお Gemini CLI は 2026-06-18 にサポート終了(個人アカウント向けプラン)となり、公式は Google Antigravity CLI への移行を案内しています。
デスクトップクライアントの入れ方:Cherry Studio では上記 4 プロトコルすべてをカスタムで登録できます(Cherry Studio 接続)。ツール別の対応と Claude の可否は ツール互換性一覧、サブスクと API の関係は サブスクリプション・公式 API・QCode Key 参照。
5. curl によるセルフテスト¶
SDK を組み込む前に、パスの可達性とネットワーク疎通は curl で POST を打つだけで確認できます:
KEY="cr_あなたのキー"
# Anthropic プロトコル パステスト
curl -s -o /dev/null -w '%{http_code}\n' -X POST https://api.qcode.cc/api/v1/messages \
-H "Authorization: Bearer $KEY"
# → 400 = パスもキーも OK(ボディ未指定は想定内);401 = キー無効
# OpenAI Chat Completions パステスト
curl -s -o /dev/null -w '%{http_code}\n' -X POST https://api.qcode.cc/openai/v1/chat/completions \
-H "Authorization: Bearer $KEY"
# → 400 / 401 同上
# OpenAI Responses(Codex 用)
curl -s -o /dev/null -w '%{http_code}\n' -X POST https://api.qcode.cc/openai/v1/responses \
-H "Authorization: Bearer $KEY"
# → 400 / 401 同上
# Google Gemini プロトコル パステスト(QCode は現在 Gemini を提供しておらず、このパスは利用不可。参考用)
curl -s -o /dev/null -w '%{http_code}\n' -X POST "https://api.qcode.cc/gemini/v1beta/models/gemini-2.5-pro:generateContent" \
-H "x-goog-api-key: $KEY"
# → 400 / 401 = パス OK
解釈:キー付きで 400(ボディ未指定)または 401(キーの問題)が返れば、パスのマッピングとネットワークは正常です。404 はパスプレフィックスの誤り——上のセクション 4 の表で修正してください。キー付きで 402 が返り、code が *_cost_limit_exceeded の場合も、パスとキーは正常で、そのキーのクォータを使い切っただけです(エラーコード参考参照)。注意:キーなしでこれらのパスにアクセスすると HTML 紹介ページ(HTTP 200)が返ります——それはキーが付いていないサインです。
実際の API キーを使ったエンドツーエンドテスト:
curl -X POST https://api.qcode.cc/api/v1/messages \
-H "x-api-key: YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'
同じパスでドメインを us.qcode.cc / asia.qcode.cc に切り替えても同じ結果が得られるはずです — これにより、その代替ドメインが利用可能であることを確認できます。
6. FAQ¶
Q:curl https://api.qcode.cc/api が 404 を返すのはなぜ?
A:/api はパスプレフィックスでありエンドポイントではないためです。正しいパスは /api/v1/messages です。
Q:/api/v1/messages と /claude/v1/messages に違いはありますか?
A:ありません。両方のプレフィックスが Anthropic Messages プロトコルにルーティングされます。ドキュメントでは Claude エコシステム SDK のデフォルトに合わせて /api を使っています。
Q:1 つの API キーで Claude と Codex(GPT)の両方を呼び出せますか?
A:はい。キーはプロトコル非依存で、プロトコルはリクエストパスで決まります。/api/v1/messages なら Anthropic、/openai/v1/responses なら OpenAI Responses です。QCode は現在 Gemini モデルを提供していません。
Q:Gemini の baseURL は末尾に /v1beta が必要ですか?
A:(QCode は現在 Gemini を提供していないため、以下はプロトコル参考用です。)ツールによって異なります。OpenCode の google provider では必要です(baseURL を /gemini/v1beta に設定)— このプロバイダは /v1beta/ を自動で付加しません。Gemini CLI と Google 公式 @google/genai SDK では不要です(base URL は /gemini まで)— SDK が /v1beta/ を自動で付加するため、手動で追加すると /gemini/v1beta/v1beta/... となり 404 になります。
Q:どのアクセスドメインを選べばいい?
A:中国本土 → asia.qcode.cc(アジアノード、韓国 / 台湾 / 香港の近い方)または api.qcode.cc(グローバル Route 53);北米 / 欧州 → us.qcode.cc。主ドメインが不安定なら別のアクセスドメインに切り替えてください。
Q: 自分のリクエスト履歴を確認できますか?
A:はい。すべてのドメイン(api.qcode.cc / asia.qcode.cc / us.qcode.cc)経由で送信したリクエストは probe.qcode.cc に報告されます。自身の API Key を入力すると、リクエスト一覧、モデル、tokens などを確認できます。
Q:BASE_URL に末尾スラッシュは必要?
A:不要です。多くの SDK は /v1/messages などを自動で付加するので、末尾スラッシュが付いていると //v1/messages となり 404 になります。
QCode を始める
API キーひとつで Claude Code・Codex などに対応。トークン単位の課金で、各モデルの単価は qcode.cc/models に掲載