API Hop ドキュメント
共通 Chat Completions
`model` パラメータでテキストモデルを切り替えられる統一チャット API です。リクエスト形式は OpenAI Chat Completions と互換性があります。
https://api.apihop.ai/v1/chat-completionsmodel パラメータでテキストモデルを切り替えられる統一チャット 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 を明示的に設定してください。
POST https://api.apihop.ai/v1/chat-completions認証
すべてのリクエストに Bearer Token 認証が必要です。
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:メッセージの内容
例:
[
{"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 はサンプリングへの効果を証明しません。 出力予算には、モデルの思考と最終テキストの両方を収める必要があります。
リクエスト例
{
"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トークン使用量の統計です。
成功時の例
{
"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 では次のように返されます。
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}code:プラットフォームの数値エラーコードです。HTTP ステータスとは別で、文字列ではありませんmessage:人が読めるエラーの説明ですtype:api_errorrequestId:トラブルシューティング用の任意のリクエスト識別子です
| HTTP ステータス | code | 意味 |
|---|---|---|
| 400 | 10000 | 無効なリクエスト |
| 401 | 20000 | 認証情報がないか無効 |
| 402 | 40000 | 残高不足 |
| 403 | 20001 | アクセス拒否、またはこのキーではモデルを利用不可 |
| 404 | 30000 | モデルまたはリソースが見つからない |
| 409 | 30001 | リクエストの競合 |
| 422 | 10001 | 検証エラー |
| 429 | 40001 | レート制限を超過 |
| 500 | 50003 | 内部エラー |
| 502 | 50000 | 上流プロバイダーのエラー |
| 503 | 50001 | サービスを利用不可 |
| 504 | 50002 | ゲートウェイのタイムアウト |
まず HTTP ステータスでリクエストが成功したかを確認し、その後で数値の code を比較してアプリケーション固有の処理を行ってください。code を "400" のような文字列と比較したり、HTTP ステータスと同じだと想定したり、message を安定したエラー識別子として解析したりしないでください。messages がない場合や型が誤っている場合は、プロバイダーを呼び出す前に HTTP 400 と code: 10000 で拒否されます。
このエラー形式は Chat Completions の HTTP レスポンスに適用されます。すでに開始した SSE ストリーム内のエラーや、他の API プロトコルには適用されません。モデルカタログとネイティブプロトコルのエンドポイントには、それぞれドキュメントに記載された固有のエラー形式があります。