# API プロトコル

> LMU AI は 3 つの受信プロトコル（Anthropic、OpenAI 互換、Gemini ネイティブ）をサポートしています。正しい Base URL とエンドポイントを選び、エラーを回避するための一覧表です。

URL: https://docs.lmuai.com/ja/docs/guide/api-protocols



LMU AI は 3 つの受信プロトコルをサポートしています：**Anthropic、OpenAI 互換、Gemini ネイティブ v1beta**。すべてのエンドポイントは `sk-` で始まる LMU AI API キーを使用し、実際に呼び出せるモデルはキーのグループによって決まります。

<Callout type="info" title="まず押さえておくべき 2 点">
  * **「どのプロトコルか」** はクライアント、SDK、ユースケースによって決まります。Anthropic SDK は `/v1/messages`、OpenAI SDK は `/v1/chat/completions` または `/v1/responses`、Gemini ネイティブの画像呼び出しは `/v1beta/models/{model}:generateContent` を使用します。
  * **「どのモデルを呼び出せるか」** は API キーの **グループ**（サブスクリプション / チャージプランの背後にある上流アカウント）によって決まり、これは受信プロトコルとは **別の次元** です。

  つまり：間違ったプロトコルはそのまま 401 / 404 を返します。正しいプロトコルでもグループの範囲外のモデルを指定すると、モデル利用不可エラーが返ります。
</Callout>

<Callout type="warn" title="最も多いエラーは間違ったプロトコルが原因">
  * **Anthropic プロトコル** の Base URL には `/v1` サフィックスを **含めません**
  * **OpenAI プロトコル** の SDK Base URL には通常 `/v1` サフィックスを **含めます**
  * **Gemini ネイティブプロトコル** は `https://api.lmuai.com` をホストとして使い、完全な `/v1beta/...` パスを呼び出します

  間違えると 400 / 401 / 404 が発生します。ツールを設定したりコードを書いたりする前に、クライアントがどのプロトコルを想定しているか確認してください。
</Callout>

***

## プロトコルを一目で選ぶ [#プロトコルを一目で選ぶ]

| プロトコル                   | Base URL                   | 代表的なツール                                                                                                                       |
| ----------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Anthropic プロトコル**     | `https://api.lmuai.com`    | Claude Code（CLI / デスクトップ / VS Code 拡張機能）、公式 `anthropic` SDK、Cherry Studio、Claude / 中国系モデルを使う Kilo Code、その他 Anthropic 互換クライアント |
| **OpenAI 互換**           | `https://api.lmuai.com/v1` | Codex CLI、Codex App、Cursor / Cline / Roo Code / OpenCode、公式 `openai` SDK、GPT を使う VS Code 拡張機能、その他 OpenAI 互換クライアント             |
| **Gemini ネイティブ v1beta** | `https://api.lmuai.com`    | Gemini ネイティブ SDK / HTTP クライアント、Gemini のテキストから画像・画像から画像、モデル一覧と `generateContent`                                               |

3 つのプロトコルはいずれも `sk-` で始まる LMU AI キーを使用します：

* Anthropic プロトコル：`Authorization: Bearer <YOUR_API_KEY>` または `x-api-key: <YOUR_API_KEY>`
* OpenAI 互換：`Authorization: Bearer <YOUR_API_KEY>`
* Gemini ネイティブ：`x-goog-api-key: <YOUR_API_KEY>` を推奨、Bearer も受け付けます

***

## Anthropic プロトコル [#anthropic-プロトコル]

**Base URL:** `https://api.lmuai.com`（`/v1` **なし**）

**エンドポイント：**

* `POST /v1/messages` — メッセージ会話
* `POST /v1/messages/count_tokens` — トークンカウント
* `GET /v1/models` — 利用可能なモデル一覧

**Python SDK の例：**

```python
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.lmuai.com",
    api_key="sk-xxxxxxxx",
)

resp = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.content[0].text)
```

**curl の例：**

```bash
curl -X POST https://api.lmuai.com/v1/messages \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role":"user","content":"Hello"}]
  }'
```

<Callout type="info" title="なぜ SDK の base_url は /v1 なしなのに curl は /v1 ありなのか？">
  Anthropic 公式 SDK の `base_url` の慣例は `/v1` を省略することです。SDK は内部で `/v1/messages` のようなパスを付加します。手動で curl を書くときは完全なパス `/v1/messages` を書きます。どちらも同じエンドポイントを指します。
</Callout>

***

## OpenAI プロトコル [#openai-プロトコル]

**Base URL:** `https://api.lmuai.com/v1`（`/v1` **あり**）

**エンドポイント：**

* `POST /chat/completions` — 標準の Chat Completions API
* `POST /responses` — OpenAI Responses API（`/responses/{id}` サブパスを含む）
* `POST /images/generations`, `POST /images/edits` — 画像生成 / 編集

**Python SDK の例：**

```python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.lmuai.com/v1",
    api_key="sk-xxxxxxxx",
)

resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
```

**curl の例：**

```bash
curl -X POST https://api.lmuai.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "messages": [{"role":"user","content":"Hello"}]
  }'
```

***

## Gemini ネイティブプロトコル [#gemini-ネイティブプロトコル]

**Base URL:** `https://api.lmuai.com`

**主なエンドポイント：**

* `GET /v1beta/models` — Gemini ネイティブモデルの一覧
* `GET /v1beta/models/{model}` — 特定モデルの照会
* `POST /v1beta/models/{model}:generateContent` — テキスト生成、テキストから画像、画像から画像
* `POST /v1beta/models/{model}:streamGenerateContent?alt=sse` — ストリーミング生成

**認証：**

```http
x-goog-api-key: YOUR_API_KEY
```

最小限のテキストから画像の例：

```bash
curl --request POST \
  'https://api.lmuai.com/v1beta/models/gemini-3.1-flash-image:generateContent' \
  -H 'x-goog-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "an orange cat wearing an astronaut helmet"}]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
    }
  }'
```

<Callout type="info" title="Gemini の画像エンドポイントは /v1/chat/completions ではありません">
  Gemini の画像モデルはネイティブの `generateContent` を使用します。テキストから画像、画像から画像、1K / 2K / 4K、Base64 パースの詳細については、[Gemini Image API](/ja/docs/api/gemini-image) を参照してください。

  GPT 画像モデルは [GPT Image API](/ja/docs/api/gpt-image)、Grok 画像モデルは [Grok Image API](/ja/docs/api/grok-image) を参照してください。大規模なオフライン Gemini ジョブについては [Gemini Batch Image API](/ja/docs/api/gemini-image-batch) を参照してください。
</Callout>

***

## プロトコルと利用可能なモデルは別物 [#protocol-vs-models]

キーが呼び出せるモデルは、**そのグループにマウントされている上流アカウントによって完全に決まり**、どのプロトコルで呼び出すかとは無関係です：

| グループの上流                        | 実際に呼び出せるモデル                                                         |
| ------------------------------ | ------------------------------------------------------------------- |
| OpenAI アカウントのみ                 | GPT シリーズのみ                                                          |
| Claude アカウントのみ                 | Claude シリーズのみ（OpenAI プロトコルで呼び出しても、バックエンドがプロトコルを変換しますが、モデル範囲は変わりません） |
| 中国系モデルの上流のみ（例：GLM / Kimi）      | 対応する中国系モデルのみ                                                        |
| バックエンドでモデルルーティングを設定（マルチ上流グループ） | モデル名によって異なる上流にルーティングされ、ブランドをまたぐこともあります — 正確な範囲はグループ設定によります          |

したがって：

* Anthropic、OpenAI 互換、Gemini ネイティブのいずれのプロトコルを選ぶかは受信リクエストの形式を決めるだけで、実際のモデル範囲は依然として API キーのグループによって決まります。
* 現在のキーが呼び出せるモデルを確認するには、**API Keys** の詳細ページでグループのモデル一覧を確認するか、コンソールの **Available Models** ページを確認してください。

***

## Claude Max グループについて [#claude-max-グループについて]

<Callout type="warn" title="Claude Max グループは Anthropic プロトコルのみをサポートします">
  **Claude Max グループは Claude Code 専用** であり、**Anthropic プロトコル**（`https://api.lmuai.com`）のみを使用できます。

  Claude Max プランのグループのキーを使用している場合：

  * ✅ Claude Code（CLI / デスクトップ / VS Code 拡張機能）で動作します
  * ❌ Codex CLI、Cursor、Cherry Studio、その他 OpenAI プロトコルを使うツールでは **使用できません**
  * ❌ `https://api.lmuai.com/v1` として入力することは **できません**

  OpenAI プロトコルのツールを使用するには、従量課金 / 通常サブスクリプショングループのキーに切り替えてください（実際に利用可能なモデルは購入したプラングループによって異なります）。
</Callout>

***

## トラブルシューティング [#troubleshooting]

| 症状                                | よくある原因                                                                                                      | 対処法                                                               |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `401 Unauthorized`                | Base URL のプロトコルが間違っている / キーの入力ミス / IDE を再起動していない                                                            | Base URL がツールのプロトコルと一致しているか確認し、IDE を再起動して設定を再読み込みする               |
| `404 Not Found`                   | OpenAI プロトコルの URL に `/v1` がない、Anthropic の URL に誤って `/v1` を含めている、または Gemini パスが `/v1beta/models/...` になっていない | 上の表と照らし合わせて Base URL と完全なエンドポイントを再確認する                            |
| モデル利用不可 / `No available accounts` | グループの範囲外のモデルを呼び出した（例：Claude Max グループで GPT を呼び出す）                                                            | **Available Models** ページでグループに実際に含まれるモデルを確認するか、対象モデルを含むグループに切り替える |
| `429 Too Many Requests`           | 日次クォータを使い切った                                                                                                | [FAQ](/ja/docs/guide/faq#issue-2) を参照                             |

その他のトラブルシューティングは [FAQ](/ja/docs/guide/faq) を参照してください。

***

## 次のステップ [#次のステップ]

プロトコルと Base URL を正しく設定したら、使いたいツールを選びましょう：

* [CC Switch（ワンクリックインポート、Claude Code ユーザーに推奨）](/ja/docs/tools/cc-switch)
* [Claude Code CLI](/ja/docs/tools/claude-code) · [デスクトップ](/ja/docs/tools/claude-code-desktop) · [VS Code 拡張機能](/ja/docs/tools/claude-code-vscode)
* [Codex CLI · Windows](/ja/docs/tools/codex-cli-windows) · [Mac/Linux](/ja/docs/tools/codex-cli-mac) · [サーバー](/ja/docs/tools/codex-cli-server)
* [Codex App デスクトップ](/ja/docs/tools/codex-app) · [VS Code / Cursor / Trae 拡張機能](/ja/docs/tools/vscode-plugin)
* [OpenCode](/ja/docs/tools/opencode) · [Cherry Studio](/ja/docs/tools/cherry) · [IDEA Kilo Code](/ja/docs/tools/kilo-code-idea) · [Hermes Agent](/ja/docs/tools/hermes)
* [Gemini Image API](/ja/docs/api/gemini-image) · [GPT Image API](/ja/docs/api/gpt-image) · [Grok Image API](/ja/docs/api/grok-image) · [Gemini Batch Image API](/ja/docs/api/gemini-image-batch)
