API Hop

文件目錄

API Hop 文件

Claude Messages

原生 Claude Messages 相容 API。此端點使用 Anthropic Messages 請求與回應結構,包含工具呼叫及 Anthropic SSE 事件。

POSThttps://api.apihop.ai/anthropic/v1/messages

原生 Claude Messages 相容 API。此端點使用 Anthropic Messages 請求與回應結構,包含工具呼叫及 Anthropic SSE 事件。

上游供應商支援 Claude Sonnet 4.6(claude-sonnet-4-6),但目前尚未在 RequestBeam 發布,因此不是已啟用的預設整合模型。呼叫任何模型前,請以您自己的 GET https://api.apihop.ai/v1/models 回應確認存取權限。

text
POST https://api.apihop.ai/anthropic/v1/messages

驗證

所有請求均需要 RequestBeam API 金鑰。Anthropic SDK、Claude Code 與相容客戶端通常使用 x-api-key;一般 HTTP 客戶端也可以使用 Bearer Token 驗證。

http
x-api-key: YOUR_REQUESTBEAM_API_KEY
anthropic-version: 2023-06-01
http
Authorization: Bearer YOUR_REQUESTBEAM_API_KEY
anthropic-version: 2023-06-01

請求主體

modelstring必填預設: claude-sonnet-5-5

支援的 Claude 模型 ID。

  • 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

請透過 GET https://api.apihop.ai/v1/models 查看您的 API 金鑰目前可用的模型。

max_tokensinteger必填

輸出 token 的最大數量,必須為安全範圍內的正整數。此預算包含思考與最終文字輸出 token。缺少值、零、負數、小數、字串或超出安全整數範圍的值,會在生成或計費前回傳 HTTP 400 與 invalid_request_error。模型可能另外設有較低上限。

對會產生思考內容的模型,像 128 這樣較小的預算可能僅產生思考區塊,接著以 stop_reason: "max_tokens" 結束,而沒有文字輸出。請依任務與所選模型明確設定預算,為思考與最終答案保留空間。範例值是可編輯的額度,不是上游預設值或模型限制;較大的額度可能增加輸出用量與費用。

messagesobject[]必填

對話訊息。每則訊息包含 role 與 content。

role 支援 user 與 assistant。content 可以是字串或內容區塊陣列。

systemstring | object[]

系統提示詞。Anthropic Messages 使用頂層 system 欄位,而非 messages 中的 system 角色。

streamboolean預設: false

是否傳回 Anthropic SSE 事件。

temperaturenumber

取樣溫度。接受的值與效果依所選模型而異。

top_pnumber

核心取樣參數。接受此參數不代表它一定會改變生成行為。

top_kinteger

Top-k 取樣參數。是否支援取決於所選模型。

stop_sequencesstring[]

停止序列。

含有非空停止序列的請求,會避開已知不支援此功能的模型服務;若沒有相容服務,請求會在生成或計費前回傳 400。

toolsobject[]

Anthropic 工具定義。函式工具通常包含 name、description 與 input_schema。

tool_choiceobject

工具選擇策略,例如 { "type": "auto" } 或 { "type": "tool", "name": "..." }。

thinkingobject

原生 Anthropic 思考設定,受所選模型與供應商支援能力限制。Claude 4.5 使用 { "type": "enabled", "budget_tokens": 1024 };Claude Sonnet/Opus 4.6 也支援自適應思考。請勿對每個模型版本都套用手動預算。工具接續時,請將完整且有序的 assistant 內容原樣傳回,包含 thinking、signature、redacted_thinking 與 tool_use。整個工具往返期間,請維持思考設定及必要的 anthropic-beta 標頭一致。SSE 應串接同一內容區塊的 signature_delta.signature 片段;思考摘要為空不代表可捨棄簽章。供應商帳號存取遭拒屬於上游失敗,並非簽章無效的證據。已識別的 Bedrock 帳號存取拒絕會回傳 HTTP 502 與 api_error,一般客戶端驗證錯誤仍為 HTTP 400。接受請求仍需要已啟用的上游帳號。

metadataobject

請求中繼資料。

提示詞快取

在 system 或訊息內容區塊加入 cache_control: { "type": "ephemeral" }。快取用量可能包含 cache_creation_input_tokens、cache_read_input_tokens,以及支援的 5 分鐘或 1 小時建立區間。1 小時 TTL 也需要對應的 anthropic-beta 標頭。

請求範例

非串流

json
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself in one sentence."
    }
  ],
  "stream": false
}

串流

json
{
  "model": "claude-sonnet-5-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Reply exactly OK."
    }
  ],
  "stream": true
}

回應

非串流回應保留 Anthropic Message 結構。

idstring

回應 ID,例如 msg_...。

typestring

物件類型,通常為 message。

rolestring

通常為 assistant。

modelstring

實際使用的 Claude 模型。

contentobject[]

原生輸出內容區塊,包含 text、tool_use,以及使用時的 thinking。

stop_reasonstring

停止原因,例如 end_turn、max_tokens、stop_sequence 或 tool_use。

usageobject

Token 用量,包含 input_tokens 與 output_tokens。有快取 token 欄位時會一併包含。

成功範例

json
{
  "id": "msg_01...",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-5-5",
  "content": [
    {
      "type": "text",
      "text": "Hello, I am Claude and can help with writing, coding, and analysis tasks."
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 18,
    "output_tokens": 24
  }
}

串流回應

設定 stream: true 時,端點會傳回 Anthropic SSE 事件。常見事件包含:

  • message_start
  • content_block_start
  • content_block_delta
  • content_block_stop
  • ping
  • message_delta
  • message_stop

錯誤回應

完整代碼參考、協定差異及診斷步驟,請見錯誤代碼與疑難排解。

錯誤回應使用 Anthropic 風格結構:

json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid credentials or API key has expired."
  }
}