APIドキュメント

XHuoAPI は OpenAI Chat Completions 形式に対応し、Claude モデルは Anthropic Messages 形式にも対応します。1 つのキーで 70 以上のモデルを利用できます。

インタラクティブ API リファレンス(オンラインで試せます)→

Base URL

https://api.xhuoapi.ai

クイックスタート

  1. コンソール でアカウントを登録
  2. コンソールで API キーを取得
  3. Base URL を https://api.xhuoapi.ai に変更
  4. API の呼び出しを開始

対応エンドポイント

以下の各項目は実際の API キーで検証済みです。表にないエンドポイントは、パスが応答しても動作を保証しません。

最終検証日: · Base URL https://api.xhuoapi.ai

エンドポイント 形式 説明
POST /v1/chat/completions OpenAI すべてのチャットモデル。stream・tools・response_format は deepseek-v3.2 で検証済みで、他のモデルでの対応はベンダーによります。
POST /v1/messages Anthropic Claude モデル(claude-sonnet-4-6 で検証)。認証は x-api-key と Authorization: Bearer のどちらでも可能です。
GET /v1/models OpenAI キーで利用できるすべてのモデルを一覧表示します。
POST /v1/embeddings OpenAI text-embedding-3-small は 1536 次元のベクトルを返します。カタログには text-embedding-3-large と text-embedding-ada-002 もあります(個別には未検証)。

OpenAI SDK の base_url には https://api.xhuoapi.ai/v1 を指定します。Anthropic SDK では https://api.xhuoapi.ai を指定してください。/v1/messages は SDK が付け足します。

認証

すべてのリクエストで HTTP ヘッダーに API キーを含める必要があります:

Authorization: Bearer YOUR_API_KEY

⚠️ セキュリティ注意:API キーをクライアント側のコードに公開しないでください。自社バックエンド経由でリクエストを中継することを推奨します。

チャット補完

チャット補完リクエストを作成します。すべての主要モデルに対応。

POST /v1/chat/completions

リクエストパラメータ

パラメータ 型 必須 説明
model string ✅ モデル名(例:gpt-4o)
messages array ✅ 会話メッセージのリスト
temperature number ❌ サンプリング温度(0-2)、デフォルト 1
max_tokens integer ❌ 生成する最大トークン数
stream boolean ❌ ストリーミング出力の有無、デフォルト false

リクエスト例

curl https://api.xhuoapi.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "user",
        "content": "こんにちは、自己紹介をしてください"
      }
    ],
    "temperature": 0.7
  }'

レスポンス例

{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "こんにちは!私はAIアシスタントです..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 20,
    "total_tokens": 32
  }
}

モデル一覧

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

GET /v1/models

リクエスト例

curl https://api.xhuoapi.ai/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

検証済みのよく使われるモデル

以下のモデルは直近の検証で正常に応答しました(日付は「対応エンドポイント」を参照)。全モデルとグループ別の価格は料金ページにあります。

deepseek-v3.2

DeepSeek

qwen3.8-max

Alibaba · Qwen

glm-5.3

Zhipu · GLM

kimi-k3

Moonshot · Kimi

claude-sonnet-4-6

Anthropic

gpt-4.1-mini

OpenAI

gemini-2.5-flash

Google

ストリーミング

stream: true を設定すると、生成内容をリアルタイムで受信できます。

リクエスト例

curl https://api.xhuoapi.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "ジョークを言って"}],
    "stream": true
  }'

レスポンス形式

ストリーミングレスポンスは Server-Sent Events (SSE) 形式で、各行は data: で始まります:

data: {"id":"chatcmpl-123","choices":[{"delta":{"content":"こん"}}]}

data: {"id":"chatcmpl-123","choices":[{"delta":{"content":"にちは"}}]}

data: [DONE]

ツール呼び出しと JSON モード

OpenAI 形式で tools を渡すと、モデルは呼び出す関数と引数を message.tool_calls に返します。以下のリクエストは検証で get_weather と {"city": "Paris"} を返しました。

curl https://api.xhuoapi.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "deepseek-v3.2",
    "messages": [{"role": "user", "content": "What is the weather in Paris? Use the tool."}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get weather for a city",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]}
      }
    }],
    "tool_choice": "auto"
  }'

"response_format": {"type": "json_object"} を送ると、モデルは有効な JSON だけを返します。プロンプトにも JSON で返すよう書くと結果が安定します。

curl https://api.xhuoapi.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "deepseek-v3.2",
    "messages": [{"role": "user", "content": "Return this JSON exactly: {\"ok\": true}"}],
    "response_format": {"type": "json_object"}
  }'

Anthropic Messages 形式

Claude モデルは Anthropic のリクエスト形式と Anthropic SDK で呼び出せます。Anthropic SDK で書いた既存のコードは base_url とキーを変えるだけです。

POST /v1/messages

2 種類の認証ヘッダーとも検証済みです:x-api-key: YOUR_API_KEY または Authorization: Bearer YOUR_API_KEY。例にある anthropic-version ヘッダーは Anthropic SDK が自動で付けます。

curl https://api.xhuoapi.ai/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"}]
  }'

Python (anthropic SDK)

from anthropic import Anthropic

client = Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.xhuoapi.ai",
)

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

埋め込み

リクエストとレスポンスの形式は OpenAI の /v1/embeddings と同じです。text-embedding-3-small は 1536 次元のベクトルを返します。

POST /v1/embeddings
curl https://api.xhuoapi.ai/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"model": "text-embedding-3-small", "input": "hello"}'

エラー処理

API は標準的な HTTP ステータスコードでリクエスト結果を示します。

ステータスコード 説明
200 リクエスト成功
400 リクエストパラメータが不正
401 API キーが無効または未指定
429 レート制限を超過
404 パスが存在しません(多くは URL の入力ミス)
503 このモデルに現在利用可能な上流がないか、モデル名が存在しません。時間をおいて再試行するか、別のモデルに切り替えてください
500 サーバー内部エラー

エラーレスポンス例

{
  "error": {
    "code": "",
    "message": "Invalid token (request id: ...)",
    "type": "new_api_error"
  }
}

error.message の文言は変わることがあります。メッセージの文字列ではなく HTTP ステータスコードで処理してください。

コード例

Python

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.xhuoapi.ai/v1"
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "こんにちは"}
    ]
)

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

Node.js

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://api.xhuoapi.ai/v1'
});

const response = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'こんにちは' }]
});

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

cURL

curl https://api.xhuoapi.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "こんにちは"}]
  }'

サポートが必要ですか?コンソール または support@xhuoapi.ai までメールでご連絡ください

© 2026 XHuoAPI. All rights reserved.