API Hop

ドキュメント

API Hop ドキュメント

共通 Chat Completions

`model` パラメータでテキストモデルを切り替えられる統一チャット API です。リクエスト形式は OpenAI Chat Completions と互換性があります。

POSThttps://api.apihop.ai/v1/chat-completions

model パラメータでテキストモデルを切り替えられる統一チャット API です。リクエスト形式は OpenAI Chat Completions と互換性があります。

Claude Sonnet 4.6(claude-sonnet-4-6)は上流の供給元では対応していますが、現在 RequestBeam では公開されていません。現時点の連携における既定モデルではありません。モデルを呼び出す前に、自分の API キーによる GET https://api.apihop.ai/v1/models のレスポンスでアクセス権を確認してください。

このエンドポイントは、既定では 1 つの完全な JSON レスポンスを返します。SSE ストリーミングが必要な場合は、stream: true を明示的に設定してください。

text
POST https://api.apihop.ai/v1/chat-completions

認証

すべてのリクエストに Bearer Token 認証が必要です。

http
Authorization: Bearer YOUR_API_KEY

認証に失敗した場合は、次の点を確認してください。

  • API キーが正しいか
  • その API Base URL に対してキーが有効か
  • リクエストヘッダーの綴りが正しいか
  • プロキシが認証ヘッダーを書き換えていないか

リクエストボディ

modelstring必須既定値: gpt-5.4

ドキュメントに掲載されているテキストモデル ID です(アクセス権は GET https://api.apihop.ai/v1/models で確認してください)。

  • OpenAI:gpt-5.4、gpt-5.5、gpt-5.6-sol、gpt-5.6-terra、gpt-6-astra
  • Anthropic:claude-fable-5、claude-fable-5-1、claude-opus-4-6、claude-opus-4-7、claude-opus-4-8、claude-opus-5、claude-opus-5-5、claude-sonnet-5、claude-sonnet-5-5
  • DeepSeek:deepseek-v4-flash、deepseek-v4-pro、deepseek-v4.1-flash

(V4.1 Flash は別個のモデル ID であり、デプロイと有効化の後にのみ利用できます。GET https://api.apihop.ai/v1/models を確認してください)。

  • Gemini:gemini-3.6-flash、gemini-3.7-flash、gemini-3.8-flash、gemini-3.5-flash-lite、gemini-4-argon(デプロイと有効化の後)
  • Kimi:kimi-k3
  • MiniMax:minimax-m3

完全な一覧と、現在の API キーから見えるモデルについては、モデルカタログを参照してください。 最新の利用可否は、自分の API キーによる GET https://api.apihop.ai/v1/models のレスポンスを基準にしてください。 ファミリー別のモデル選択に関する注意点や使用例については、DeepSeek、Gemini、Kimi、MiniMax のガイドを参照してください。

messagesobject[]必須

チャットメッセージです。各メッセージには次の項目を含めてください。

  • role:system、user、assistant のいずれか
  • content:メッセージの内容

例:

json
  [
    {"role": "system", "content": "You are a helpful Python tutor."},
    {"role": "user", "content": "How should I learn programming?"}
  ]

モデル固有のサンプリング制限: gpt-6-astra は従来の temperature、top_p、top_logprobs を受け付けません。古いクライアントが含める場合でも、これらのフィールドを省略してください。RequestBeam の GPT-6 Astra Playground でも、従来のサンプリングとペナルティの設定は非表示になります。記録された連携の再確認では、claude-sonnet-5 も top_p を拒否したため、このモデルでも省略してください。任意フィールドがプロキシを通過したことは、選択した上流モデルがそのフィールドに対応する証明にはなりません。

temperaturenumber既定値: 1.0

サンプリング温度です。OpenAI 互換クライアントでは通常 0 から 2 を使用しますが、最終的な検証は選択したモデルが行います。

max_tokensinteger

任意の最大出力トークン数で、正の整数を指定します。省略すると、選択したモデルの上流側の既定値を使用します。既定値と上限はモデルや上流の設定によって異なります。

モデルによっては、予算に最終テキストだけでなく推論トークンも含まれます。予算が小さいと、finish_reason: "length" が返される、回答が途中で切れる、最終テキストの生成前に予算を使い切る、といった結果になる可能性があります。予算を増やすと費用が増える場合があります。

max_completion_tokensinteger

互換性のために用意された、任意の max_tokens の代替フィールドです。予算に関する注意事項は同じです。モデルによっては片方のフィールドしか受け付けないため、モデルを切り替えるときは最小限のボディから始めてください。両方を省略すると上流側の既定値を使用します。

streamboolean既定値: false

レスポンスをストリーミングするかどうかを指定します。

  • true:Server-Sent Events を返す
  • false:1 つの完全なレスポンスを返す
top_pnumber既定値: 1.0

ニュークリアスサンプリングのパラメータです。OpenAI 互換クライアントでは通常 0 から 1 を使用します。最終的な検証は選択したモデルが行います。

frequency_penaltynumber既定値: 0

頻度ペナルティです。OpenAI 互換クライアントでは通常 -2.0 から 2.0 を使用します。最終的な検証は選択したモデルが行います。

presence_penaltynumber既定値: 0

存在ペナルティです。OpenAI 互換クライアントでは通常 -2.0 から 2.0 を使用します。最終的な検証は選択したモデルが行います。

stopstring | array

停止シーケンス、または停止シーケンスの配列です。受け付ける個数と動作は、選択したモデルによって決まります。

ninteger既定値: 1

生成するレスポンスの数です。引用符付きの文字列ではなく、1 のような数値を使用してください。

モデルによるパラメータの違い

現在のテキストモデルは、最小限のストリーミング・非ストリーミングのチャットリクエストに対応しています。ただし、任意パラメータを受け付けるか、どのような効果があるかは、選択したモデルとその互換性実装によって異なります。

2026-09-26 の直近の再確認では、claude-fable-5 が temperature: 0 を受け付け、テキストを返しました。同じ再確認で、claude-sonnet-5 は top_p: 0.9 を HTTP 400 と top_p is deprecated で拒否しました。このモデルでは top_p を省略してください。 受け付けられたことは、サンプリングへの効果も、他のモデルや後のリクエストでの動作も保証しません。すべてのサンプリングパラメータに対応していると想定しないでください。

2026-09-26 の OpenAI の確認では、gpt-5.6-sol と gpt-5.6-terra が stop を受け付けました。パラメータを受け付けるかどうかは上流の変更で変わる場合があり、停止シーケンスが有効に働くことの証明にはなりません。

ネイティブな OpenAI 互換 Chat の転送では、上流リクエストの top_p と stop を保持します。Chat を Responses に変換するルートでは top_p を保持しますが、stop は転送しません。フィールドを転送することは、上流での対応や効果の証明にはなりません。どちらのフィールドも、すべてのルートにわたるプラットフォーム全体の保証はありません。

モデルを切り替えるときは最小限のリクエストから始め、サンプリング、停止シーケンス、高度なツールのパラメータを個別に確認してください。停止シーケンスについては、HTTP ステータスだけでなく実際のテキストと停止理由を確認してください。HTTP 200 はサンプリングへの効果を証明しません。 出力予算には、モデルの思考と最終テキストの両方を収める必要があります。

リクエスト例

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

レスポンス

idstring

レスポンスの一意な識別子です。

objectstring

オブジェクトの種類です。通常は chat.completion、ストリーミングでは chat.completion.chunk です。

createdinteger

作成時刻を表す Unix タイムスタンプです。

modelstring

レスポンスに含まれるモデル識別子です。

choicesarray

生成された選択肢です。メッセージの内容、インデックス、終了理由を含みます。

usageobject

トークン使用量の統計です。

成功時の例

json
{
  "id": "chatcmpl-9876543210",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "I am an AI assistant that can help with writing, coding, and analysis."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 42,
    "total_tokens": 70
  }
}

エラーレスポンス

コードの一覧、プロトコルごとの違い、診断手順については、エラーコードとトラブルシューティングを参照してください。

Chat Completions の HTTP エラーは、SSE ストリーム開始前に返された上流の HTTP エラーも含め、フラットな JSON ボディを使用します。たとえば HTTP 402 では次のように返されます。

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}
  • code:プラットフォームの数値エラーコードです。HTTP ステータスとは別で、文字列ではありません
  • message:人が読めるエラーの説明です
  • type:api_error
  • requestId:トラブルシューティング用の任意のリクエスト識別子です
HTTP ステータスcode意味
40010000無効なリクエスト
40120000認証情報がないか無効
40240000残高不足
40320001アクセス拒否、またはこのキーではモデルを利用不可
40430000モデルまたはリソースが見つからない
40930001リクエストの競合
42210001検証エラー
42940001レート制限を超過
50050003内部エラー
50250000上流プロバイダーのエラー
50350001サービスを利用不可
50450002ゲートウェイのタイムアウト

まず HTTP ステータスでリクエストが成功したかを確認し、その後で数値の code を比較してアプリケーション固有の処理を行ってください。code を "400" のような文字列と比較したり、HTTP ステータスと同じだと想定したり、message を安定したエラー識別子として解析したりしないでください。messages がない場合や型が誤っている場合は、プロバイダーを呼び出す前に HTTP 400 と code: 10000 で拒否されます。

このエラー形式は Chat Completions の HTTP レスポンスに適用されます。すでに開始した SSE ストリーム内のエラーや、他の API プロトコルには適用されません。モデルカタログとネイティブプロトコルのエンドポイントには、それぞれドキュメントに記載された固有のエラー形式があります。