---
title: "New API をセルフホスト：Claude・OpenAI・Gemini を1つのゲートウェイにまとめ、Claude Code と Codex から使う"
description: "Zenavo で New API を自分のサーバーにデプロイし、複数のモデルプロバイダーを1つの API にまとめます。メンバーごとにキーと利用枠を発行し、Claude Code、Codex CLI、Open WebUI から接続する方法を説明します。"
date: 2026-11-12
language: ja-JP
url: https://zenavo.app/ja-JP/blog/self-host-new-api
---

# New API をセルフホスト：Claude・OpenAI・Gemini を1つのゲートウェイにまとめ、Claude Code と Codex から使う

あるメンバーは Claude Code を使い、別のメンバーは Codex CLI を使い、さらに別の人は Open WebUI でチャットしている。ツールごとにプロバイダーのキーのコピーを持ち、利用料は別々の請求書に載り、誰が何を使ったのか、どのキーを無効にすればよいのか、誰にも分からない状態です。

[New API](https://github.com/QuantumNous/new-api) はオープンソースのモデルゲートウェイです。OpenAI、Anthropic、Gemini などのプロバイダーのキーを New API の背後に置き、各メンバーやツールには New API が発行するキーを渡します。キーごとに使えるモデルと利用枠を設定できます。OpenAI Chat Completions、Responses、Anthropic Messages、Gemini の各形式に対応しているため、主要なコーディングツールをそのまま接続できます。

このガイドでは、Zenavo の New API テンプレートを使って、レンタルまたは所有しているサーバーでゲートウェイを動かします。サーバー、Zenavo、上流のモデル API の料金はそれぞれ別に請求されます。New API はリクエストを転送して計測するだけで、モデルの呼び出しが安くなるわけではありません。New API はチーム向けのメンバー別キー発行と利用枠管理に向いています。自分や少人数のコーディングエージェント（Claude Code や Codex）でプロトコル変換とフェイルオーバーを行いたい場合は、より軽量な [Magpie](https://zenavo.app/ja-JP/blog/self-host-magpie) もご覧ください。

## New API をデプロイする

Zenavo に [Linux サーバーを接続](https://docs.zenavo.app/ja-JP/servers/add-a-server)し、[New API テンプレート](https://zenavo.app/deploy?template=new-api)を開いて、サーバーを選んでデプロイします。

現在、テンプレートは次のように設定されます。

| 設定 | 値または用途 |
|---|---|
| イメージ | `calciumion/new-api:latest` |
| HTTP ポート | `3000` |
| ボリューム | `/data`。デフォルトの SQLite データベースとログを保存します |
| `SESSION_SECRET` | プロジェクト作成時に生成されます。ログインセッションの署名に使います |
| `TZ` | `UTC`。必要に応じてお使いのタイムゾーンに変更してください |

`latest` は上流の最新版に追従します。長期間使う場合は、サービスの **Settings** にある **Source** で動作確認済みのタグを指定し、そのタグを記録しておいてください。

## ドメインを設定し、すぐに初期設定を済ませる

new-api サービスの **Networking** タブで、`ai.example.com` などのドメインをポート `3000` に割り当て、サーバーを指す A レコードを追加して、HTTPS が有効になるのを待ちます。詳しくは[ドメインと HTTPS](https://docs.zenavo.app/ja-JP/networking/domains) をご覧ください。

最初にアクセスすると New API のセットアップウィザードが開き、管理者アカウントを作成します。ゲートウェイにプロバイダーのキーを登録すると、そのキーで費用が発生し得るようになります。ドメインにアクセスできるようになったら、すぐに自分でセットアップを済ませ、システム設定で新規ユーザーが自分で登録できるかどうかを確認してください。自分やチームで使う場合は、一般登録をオフにし、管理者としてアカウントを作成します。

## プロバイダーのチャネルを追加する

New API では、上流への接続のそれぞれを **チャネル** と呼びます。**Channels** ページでチャネルを追加します。プロバイダーの種類を選び、そのプロバイダーの API キーと提供するモデルを入力して保存し、**Test** をクリックして応答が返ることを確認します。

いくつかのポイントがあります。

- プロバイダーのキーはチャネルにだけ入力し、Zenavo の変数、スクリーンショット、チャットには決して書かないでください。
- 「Anthropic official」のように分かりやすい名前をチャネルに付けておくと、ログが読みやすくなり、チャネルを無効にするのも簡単です。
- 必要なモデルだけを提供してください。一覧にあるモデルが、プロバイダーのアカウントで呼び出せるとは限りません。
- プロバイダーの公式 API キーを使い、その利用規約に従ってください。個人向けのチャットサブスクリプションを API として転売したり共有したりしないでください。

## キーと利用枠を配布する

**Tokens** ページで、メンバーやツールごとにキーを作成し、使えるモデル、利用枠、有効期限を設定します。この `sk-` キーは New API が発行したものです。漏洩した場合はここで削除すればよく、プロバイダーのキーをローテーションする必要はありません。

キーはメンバーごと、ツールごとに発行してください（例：「Alex – Claude Code」「Alex – Open WebUI」）。利用状況が分かりやすくなり、1つを無効にしてもほかに影響しません。

## Claude Code を接続する

Claude Code は環境変数を使って、リクエストをカスタムの Anthropic Messages エンドポイントに送信できます。お使いのコンピューターで次のように実行します。

```bash
export ANTHROPIC_BASE_URL="https://ai.example.com"
export ANTHROPIC_AUTH_TOKEN="sk-あなたの-new-api-トークン"
claude
```

`ANTHROPIC_BASE_URL` にはドメインだけを指定し、`/v1` は付けないでください。Claude Code が自分で `/v1/messages` を付け加えます。Claude Code が要求するモデル名がチャネルのモデル名と異なる場合は、New API のチャネルでモデル名をマッピングするか、Claude Code の `/model` でゲートウェイが提供するモデルを選んでください。また、Claude Code から MCP や Skills を使って Zenavo サービスのログ確認、デプロイ、ロールバックまで行いたい場合は、[Claude Code から Zenavo プロジェクトをデプロイ・デバッグする](https://zenavo.app/ja-JP/blog/claude-code-deploy-debug)もご覧ください。

## Codex CLI を接続する

Codex CLI では、カスタムプロバイダーを `~/.codex/config.toml` で定義します。モデルはチャネルが提供するものに置き換えてください。

```toml
model = "チャネルが提供するモデル"
model_provider = "newapi"

[model_providers.newapi]
name = "New API"
base_url = "https://ai.example.com/v1"
env_key = "NEWAPI_API_KEY"
wire_api = "responses"
```

続いて `export NEWAPI_API_KEY="sk-…"` を実行し、`codex` を起動します。Claude Code とは異なり、こちらの `base_url` には `/v1` を含めます。

## Open WebUI と LobeHub を接続する

[Open WebUI](https://zenavo.app/ja-JP/blog/self-host-open-webui) を運用している場合は、**Settings → Admin → Connections** を開き、OpenAI 互換の接続を追加します。Base URL には `https://ai.example.com/v1` を、API キーには Open WebUI 専用に作成したトークンを指定します。[LobeHub](https://zenavo.app/ja-JP/blog/self-host-lobehub) を使っている場合も、同様にプロバイダー設定または `OPENAI_PROXY_URL` に `https://ai.example.com/v1` を指定します。

両方が同じ Zenavo プロジェクトにある場合（Open WebUI のプロジェクトに **Add Service → Templates** で New API を追加した場合）は、代わりにプライベートネットワークの `http://new-api.zenavo.internal:3000/v1` を使ってください。リクエストがサーバーの外に出ることはありません。詳しくは[プライベートネットワーク](https://docs.zenavo.app/ja-JP/networking/private)をご覧ください。

## バックアップとアップグレード

New API は、アカウント、チャネル、トークンを `/data` ボリュームに保存しています。プロバイダーのキーも含まれるため、バックアップはキーそのものと同じように厳重に管理してください。

メンテナンスの時間帯にプロジェクトを停止し、new-api サービスの **Backup & Restore** タブからボリュームをバックアップしてから、プロジェクトを再開します。手元に保管するためのコピーもダウンロードしておきましょう。アップグレードの前にはリリースノートを読み、先にバックアップを取ってください。アップグレードでデータベースのスキーマが変わった場合、古いイメージに戻しても元に戻らないことがあります。その場合は、アップグレード前のバックアップから復元してください。

## よくある質問

**Claude Code で 404 が返る、または接続できない場合は？**
`ANTHROPIC_BASE_URL` の末尾が `/v1` になっていないか確認してください。そのうえで New API のログを見て、リクエストが届いているか、どのモデルを要求しているかを確認します。

**Codex でモデルが存在しないと表示される場合は？**
`config.toml` の `model` は、チャネルが提供していて、かつトークンで許可されているモデルである必要があります。また、`wire_api` が `responses` になっていることも確認してください。

**New API は会話内容を保存しますか？**
呼び出しと利用量は記録されます。どの項目が記録されるかは、バージョンと設定によって異なります。リクエストは引き続き上流のプロバイダーに送られるため、ゲートウェイを自分のサーバーで動かしても、データがそのサーバーの中にとどまるわけではありません。

**小さなサーバーでも足りますか？**
New API 自体は軽量で、負荷の大部分は同時リクエストから生じます。多くの人が同時に長い回答をストリーミングする場合は、サーバーのメモリと帯域幅に注意してください。

まずは [New API テンプレート](https://zenavo.app/deploy?template=new-api)から始めましょう。最初にセットアップを済ませて一般登録をオフにし、続いてチャネルを追加し、トークンを発行して、コーディングツールを接続してください。
