ドキュメント

API ドキュメント

OpenAI 互換 API。base URL の1行変更で切り替え可能。

概要

Infer Mesh は OpenAI 互換の AI モデル集約プロキシです。統一 API エンドポイントで複数ベンダーのモデルにアクセスできます。

完全互換

OpenAI SDK 互換でコード変更不要

自動フェイルオーバー

上流不安定時に自動でバックアップへ切替

透明な課金

トークン使用量ベースで明確な料金

クイックスタート

API キー作成とエンドポイント変更の 2 ステップで開始できます。

Python(推奨)

bash
pip install openai
python
from openai import OpenAI

client = OpenAI(
    base_url="https://infermesh.io/v1",
    api_key="your-api-key",   # create in console
)

response = client.chat.completions.create(
    model="claude-sonnet-4-6",   # or any supported model ID
    messages=[{"role": "user", "content": "Hello!"}],
)

print(response.choices[0].message.content)

Node.js / TypeScript

typescript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://infermesh.io/v1",
  apiKey: "your-api-key",
});

const response = await client.chat.completions.create({
  model: "gpt-4o",
    messages: [{ role: "user", content: "Hello!" }],
});

console.log(response.choices[0].message.content);

cURL

bash
curl https://infermesh.io/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "deepseek-v3",
    "messages": [
            {"role": "user", "content": "Hello!"}
    ]
  }'

認証

すべてのリクエストに API キーを HTTP ヘッダーで指定してください。コンソールで作成後、ヘッダーに設定します:

bash
Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx

API キーを公開リポジトリやフロントエンドに露出しないでください。漏えい時は即座に失効・再発行してください。

Chat Completions

POST/v1/chat/completions

OpenAI Chat Completions 互換の会話生成リクエストを作成します。

リクエストパラメータ

パラメータ必須説明
modelstringはいモデル ID(例: claude-sonnet-4-6)
messagesarrayはい会話メッセージ配列
streambooleanいいえストリーミング有効化(既定: false)
max_tokensintegerいいえ最大出力トークン数
temperaturenumberいいえサンプリング温度(0.0 - 2.0)
toolsarrayいいえ関数呼び出しツール定義

Embeddings

POST/v1/embeddings

テキストをベクトル埋め込みに変換し、意味検索や RAG に利用できます。

リクエストパラメータ

パラメータ必須説明
modelstringはい埋め込みモデル ID(例: text-embedding-3-small)
inputstring | string[]はいベクトル化するテキスト(単一・複数対応)
encoding_formatstringいいえ返却形式(通常 float)
bash
curl https://infermesh.io/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "text-embedding-3-small",
        "input": "hello, vector search test"
  }'

Models List

GET/v1/models

利用可能な全モデル一覧を取得します。

bash
curl https://infermesh.io/v1/models \
  -H "Authorization: Bearer your-api-key"

Responses

POST/v1/responses

OpenAI Responses 互換エンドポイント。単発応答とストリーミングの両方に対応。

リクエストパラメータ

パラメータ必須説明
modelstringはいモデル ID
inputstring | object | arrayいいえ入力内容(一般的には文字列)
streambooleanいいえストリーミング返却(既定: false)
max_output_tokensintegerいいえ最大出力トークン数
bash
curl https://infermesh.io/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "gpt-4o",
        "input": "Introduce yourself in one sentence.",
    "stream": false
  }'

Messages(Anthropic)

POST/v1/messages

Anthropic Messages API 互換エンドポイントで、Claude Code などの Anthropic ネイティブクライアントをサポートします。認証には x-api-key ヘッダー(または Authorization: Bearer)を使用します。

x-api-key ヘッダーが優先されます。Authorization: Bearer 形式も互換として使用できます。

リクエストパラメータ

パラメータ必須説明
modelstringはいモデル ID(例:claude-sonnet-4-6)
messagesarrayはい会話メッセージ配列(Anthropic 形式)
systemstringいいえシステムプロンプト(任意)
max_tokensintegerいいえ最大出力トークン数
streambooleanいいえストリーミング出力を有効にする(デフォルト false)
bash
curl https://infermesh.io/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'
python
import anthropic

client = anthropic.Anthropic(
    api_key="your-api-key",
    base_url="https://infermesh.io",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Claude!"}],
)

print(message.content[0].text)

ストリーミング

stream: true に設定すると SSE ストリーミング応答が有効になります。

python
response = client.chat.completions.create(
    model="claude-sonnet-4-6",
                        messages=[{"role": "user", "content": "Write a short poem about AI."}],
    stream=True,
)

for chunk in response:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

関数呼び出し

OpenAI 形式の Function Calling(Tool Use)に対応し、外部ツール連携が可能です。

python
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get current weather for a specified city",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "City name, e.g. 'Seattle'",
                    }
                },
                "required": ["city"],
            },
        },
    }
]

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "What's the weather in Beijing today?"}],
    tools=tools,
)

Claude Code

Claude Code は Anthropic 公式の AI コーディングツールです。設定ファイル(~/.claude/settings.json)に以下の環境変数を設定することで、Infer Mesh をプロキシとして使用できます:

json
{
  "autoUpdatesChannel": "latest",
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "your-api-key",
    "ANTHROPIC_BASE_URL": "https://infermesh.io",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4.5",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4.6",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4.6"
  }
}

この設定により、Claude Code のすべてのリクエストが Infer Mesh を経由し、アクセス制御・使用量トラッキング・マルチモデルルーティングが利用できます。

自動フェイルオーバー

上流のエラーやタイムアウト時、利用可能な別ノードへ自動リトライして連続性を確保します。

bash
# Set fallback models in request body (priority order)
{
  "model": "claude-opus-4-6",
  "fallback_models": ["gpt-4o", "gemini-3-1-pro"],
  "messages": [...]
}

負荷分散

高負荷時は負荷分散モードで複数ノードへ自動配信し、遅延を低減できます。

レート制限

レート制限やアカウント等級による区別は一切ありません。残高がある限り、制限なく API をご利用いただけます。