API ドキュメント
OpenAI 互換 API。base URL の1行変更で切り替え可能。
概要
Infer Mesh は OpenAI 互換の AI モデル集約プロキシです。統一 API エンドポイントで複数ベンダーのモデルにアクセスできます。
完全互換
OpenAI SDK 互換でコード変更不要
自動フェイルオーバー
上流不安定時に自動でバックアップへ切替
透明な課金
トークン使用量ベースで明確な料金
クイックスタート
API キー作成とエンドポイント変更の 2 ステップで開始できます。
Python(推奨)
pip install openaifrom 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
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
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 ヘッダーで指定してください。コンソールで作成後、ヘッダーに設定します:
Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxAPI キーを公開リポジトリやフロントエンドに露出しないでください。漏えい時は即座に失効・再発行してください。
Chat Completions
/v1/chat/completionsOpenAI Chat Completions 互換の会話生成リクエストを作成します。
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | モデル ID(例: claude-sonnet-4-6) |
messages | array | はい | 会話メッセージ配列 |
stream | boolean | いいえ | ストリーミング有効化(既定: false) |
max_tokens | integer | いいえ | 最大出力トークン数 |
temperature | number | いいえ | サンプリング温度(0.0 - 2.0) |
tools | array | いいえ | 関数呼び出しツール定義 |
Embeddings
/v1/embeddingsテキストをベクトル埋め込みに変換し、意味検索や RAG に利用できます。
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | 埋め込みモデル ID(例: text-embedding-3-small) |
input | string | string[] | はい | ベクトル化するテキスト(単一・複数対応) |
encoding_format | string | いいえ | 返却形式(通常 float) |
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
/v1/models利用可能な全モデル一覧を取得します。
curl https://infermesh.io/v1/models \
-H "Authorization: Bearer your-api-key"Responses
/v1/responsesOpenAI Responses 互換エンドポイント。単発応答とストリーミングの両方に対応。
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | モデル ID |
input | string | object | array | いいえ | 入力内容(一般的には文字列) |
stream | boolean | いいえ | ストリーミング返却(既定: false) |
max_output_tokens | integer | いいえ | 最大出力トークン数 |
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)
/v1/messagesAnthropic Messages API 互換エンドポイントで、Claude Code などの Anthropic ネイティブクライアントをサポートします。認証には x-api-key ヘッダー(または Authorization: Bearer)を使用します。
x-api-key ヘッダーが優先されます。Authorization: Bearer 形式も互換として使用できます。
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | モデル ID(例:claude-sonnet-4-6) |
messages | array | はい | 会話メッセージ配列(Anthropic 形式) |
system | string | いいえ | システムプロンプト(任意) |
max_tokens | integer | いいえ | 最大出力トークン数 |
stream | boolean | いいえ | ストリーミング出力を有効にする(デフォルト false) |
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!"}
]
}'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 ストリーミング応答が有効になります。
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)に対応し、外部ツール連携が可能です。
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 をプロキシとして使用できます:
{
"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 を経由し、アクセス制御・使用量トラッキング・マルチモデルルーティングが利用できます。
自動フェイルオーバー
上流のエラーやタイムアウト時、利用可能な別ノードへ自動リトライして連続性を確保します。
# Set fallback models in request body (priority order)
{
"model": "claude-opus-4-6",
"fallback_models": ["gpt-4o", "gemini-3-1-pro"],
"messages": [...]
}負荷分散
高負荷時は負荷分散モードで複数ノードへ自動配信し、遅延を低減できます。
レート制限
レート制限やアカウント等級による区別は一切ありません。残高がある限り、制限なく API をご利用いただけます。