API Hop

文件目錄

API Hop 文件

通用聊天補全

透過 `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 發布,因此不是已啟用的預設整合模型。呼叫任何模型前,請以您自己的 GET https://api.apihop.ai/v1/models 回應確認存取權限。

此端點預設傳回一個完整 JSON 回應。需要 SSE 串流時,請明確設定 stream: true。

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

驗證

所有請求均需要 Bearer Token 驗證。

http
Authorization: Bearer YOUR_API_KEY

若驗證失敗,請檢查:

  • API 金鑰是否正確
  • 金鑰是否適用於此 API 基礎網址
  • 請求標頭拼寫是否正確
  • 代理是否改寫授權標頭

請求主體

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 金鑰可見的模型,請見模型目錄。以您自己的 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

選填的最大輸出 token,必須為正整數。省略此欄位會使用所選模型的上游預設值;預設值與上限依模型及上游設定而異。

依模型而定,預算可能同時包含推理 token 與最終文字。預算過小可能造成 finish_reason: "length"、答案截斷,或在產生最終文字前耗盡。提高預算可能增加費用。

max_completion_tokensinteger

max_tokens 的選填相容替代欄位,適用相同預算注意事項。模型可能僅接受其中一個欄位,切換模型時請從最小請求主體開始。兩者均省略時使用上游預設值。

streamboolean預設: false

是否串流回應。

  • true:傳回 Server-Sent Events
  • false:傳回完整回應
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 這樣的數字,而非加引號的字串。

模型參數差異

目前的文字模型支援最小的串流與非串流 Chat 請求,但選填參數是否接受及其效果,取決於所選模型與其相容實作。

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

Token 用量統計。

成功範例

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 錯誤使用扁平 JSON 主體,也包含 SSE 串流開始前傳回的上游 HTTP 錯誤。例如 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 協定。模型目錄與原生協定端點各有文件記載的錯誤格式。