申請流程
要使用 Claude Messages API,首先到 Ace Data Cloud 控制台 取得您的 API Token,留作備用。
如果你尚未登入或註冊,會自動跳轉到登入頁面邀請你註冊和登入,完成後會自動返回目前頁面。
一個 API Token 即可呼叫平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 儲值通用餘額。
📘 完整文件:Claude Messages API →
基本使用
Claude Messages API 的請求路徑為/v1/messages,與 Anthropic 官方 API 保持一致。我們至少需要提供三個必填參數:
model:選擇使用的 Claude 模型。最新旗艦為claude-fable-5-1(100 萬 Token 上下文、最大輸出 128K Token);原claude-fable-5仍相容保留。messages:輸入的訊息陣列,每條訊息包含role(角色)和content(內容),其中role支援user和assistant。max_tokens:最大輸出 token 數,用於限制單次回覆的長度。
system:系統提示詞,用於設定模型的行為和角色。temperature:生成隨機性,0-1 之間,值越大回覆越發散。stream:是否使用串流回應,設為true可實現逐字返回效果。stop_sequences:自訂停止序列,模型遇到這些文字時會停止生成。top_p:核採樣參數,與 temperature 配合控制生成的隨機性。top_k:僅從機率最高的 K 個選項中採樣。tools:工具定義,用於讓模型呼叫外部函式。tool_choice:控制模型如何使用提供的工具。cache_control:在請求的最後一個可快取內容區塊處自動建立快取斷點;也可寫在具體內容區塊上。
cURL 範例
Python 範例
id:本次訊息的唯一識別碼。type:始終為message。role:始終為assistant。content:回覆內容陣列,每個元素包含type(如text)和對應的內容。model:處理請求的模型名稱。stop_reason:停止原因。穩定取值包括end_turn、max_tokens、stop_sequence、tool_use、pause_turn(可把目前 assistant 內容原樣回傳以繼續)、refusal和model_context_window_exceeded。stop_sequence:如果因自訂停止序列而停止,顯示匹配的停止序列文字。stop_details:當stop_reason為refusal時,可能包含拒絕類別和說明。usage:token 使用統計。input_tokens是未快取輸入;cache_creation_input_tokens和cache_read_input_tokens分別是快取寫入與讀取;output_tokens是全部輸出 token 數。若返回output_tokens_details.thinking_tokens,該值是output_tokens的子集,計算總量或費用時不要再次相加。該明細沒有權威計數時可能為null或省略。usage.cache_creation:可選的快取寫入 TTL 明細,包含ephemeral_5m_input_tokens與ephemeral_1h_input_tokens。物件存在時,兩項之和等於cache_creation_input_tokens;欄位為null或省略表示目前回應沒有可用的 TTL 拆分,不能按0解讀。usage.cost:非串流回應可能包含 Ace Data Cloud 記錄的額度消耗物件,其中amount是本次實際消耗、currency是計量單位,list_amount是折扣前金額(如有)。Fable 5.1 的官方快取讀取基價為 12.50 和 $20/百萬 Token;平台實際價格按方案折扣換算。
系統提示詞
Claude Messages API 支援透過system 欄位設定系統提示詞,用於定義模型的行為、角色和上下文。
Python 範例
system 提示詞,可以精確地控制 Claude 的角色和行為方式。
串流回應
此介面也支援串流回應,將stream 參數設為 true 即可獲得逐步回傳的效果,非常適合在網頁中實作逐字顯示。
Python 範例
event: 和 data: 為前綴。串流事件類型包括:
message_start:訊息開始,包含訊息的基本資訊和模型名稱。content_block_start:內容區塊開始。content_block_delta:內容區塊增量更新,包含新產生的文字片段。content_block_stop:內容區塊結束。message_delta:訊息層級的增量更新,包含stop_reason和最終的usage資訊。output_tokens_details.thinking_tokens的權威值只應從最後一個message_delta.usage讀取,不要跨事件累加。message_stop:訊息結束。
content_block_delta 事件包含了逐步產生的文字內容,透過拼接所有 text_delta 即可獲得完整回覆。
JavaScript 範例
多輪對話
如果您想要串接多輪對話功能,需要在messages 陣列中交替排列 user 和 assistant 角色的訊息,將之前的對話歷史一併傳入。
Python 範例
messages 中傳遞完整的對話歷史,Claude 可以結合上下文進行準確的回答。
深度思考模型
Claude 的 thinking 與 thinking summary 是兩個不同概念:模型可以進行內部推理,但 API 不會回傳原始思維鏈。需要展示推理過程時,API 回傳的是經過處理的摘要。 目前模型建議使用 adaptive thinking,並透過output_config.effort 控制整體推理投入:
display: "summarized"回傳可讀的思考摘要;它不是原始思維鏈。display: "omitted"回傳thinking: "",但仍保留 opaquesignature以支援後續對話。- Fable 5.1、Fable 5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 的 display 預設值為
omitted;Opus 4.6、Sonnet 4.6 及更早支援 thinking 的模型預設使用summarized。 - Display 只影響回傳內容和串流延遲,不關閉推理,也不減少 thinking token 的計費。
- 是否預設啟用 thinking 與 display 預設值是兩個獨立問題。Opus 5、Sonnet 5 預設啟用 adaptive thinking;對 Opus 5,省略
thinking等同於 adaptive,省略output_config.effort等同於high。Opus 4.8、4.7 和 4.6 需要明確啟用。 - Thinking 與最終正文共同占用
max_tokens輸出預算。預算過小時,thinking 可能占用大部分額度,使正文為空或被截斷;請提高max_tokens,或使用low/mediumeffort 控制推理投入。 - 對允許關閉 thinking 的模型,可傳入
thinking: {"type":"disabled"};disabled 僅能與low、medium或high搭配,xhigh/max會回傳 400。 budget_tokens僅用於仍支援固定思考預算的舊模型。新模型應使用thinking.type=adaptive和output_config.effort;Fable 5.1 的 thinking 始終開啟,不能明確關閉。- 多輪對話和工具呼叫時,應將 assistant 回傳的完整 thinking 區塊及 signature 原樣傳回;不要修改或自行產生 signature。
- 部分相容路由無法無損處理
redacted_thinking或明確關閉 thinking,此時會回傳參數錯誤,而不會靜默捨棄或改變請求語義。
summarized 會產生 thinking_delta;omitted 不產生 thinking_delta,只保留 thinking 區塊生命週期和 signature_delta。
視覺模型
Claude 支援多模態輸入,可以同時處理文字和圖像。在 Messages API 中,透過將content 設為陣列格式,並傳入圖像內容區塊即可使用視覺能力。
使用 Base64 編碼圖像
使用 URL 圖像
cURL 範例
image/jpeg、image/png、image/gif、image/webp。
文件與 PDF
PDF 使用document 內容區塊,支援 Base64 與 URL 兩種穩定來源。Base64 來源必須使用 application/pdf:
{"type":"url","url":"https://example.com/report.pdf"}。document 還支援 text/plain 與由 text/image 區塊組成的 content 來源;可選欄位包括 title、context 和 citations。Files API 的 file_id 來源屬於獨立 beta 功能,不在本介面的穩定契約內。
提示快取
頂層cache_control 會自動把快取斷點放在最後一個可快取區塊上:
cache_control 寫在 text、image、document、tool_use、tool_result 內容區塊或工具定義上。ttl 支援 5m(預設)與 1h;請透過 usage.cache_creation_input_tokens 和 usage.cache_read_input_tokens 判斷快取寫入與命中。
當回應提供 usage.cache_creation 時,ephemeral_5m_input_tokens + ephemeral_1h_input_tokens = cache_creation_input_tokens。若 cache_creation 為 null 或省略,表示只有快取寫入總量、沒有權威 TTL 拆分;此時不要將任一 bucket 當作已知的 0,計費和總量仍以 aggregate 欄位為準。
回傳結果範例:
工具呼叫(Tool Use)
Claude Messages API 原生支援工具呼叫功能,允許模型在需要時呼叫您預先定義的工具/函數。Python 範例
content 會包含 tool_use 類型的內容區塊:
stop_reason 為 tool_use,表示模型需要呼叫工具。收到該結果後,您需要執行工具函數並將結果以 tool_result 的形式回傳給模型:
與 Chat Completion API 的差異
Ace Data Cloud 同時提供兩種 Claude API 格式,兩者的主要差異如下: Messages API 的usage.input_tokens 僅表示未快取輸入,cache_read_input_tokens 與 cache_creation_input_tokens 是獨立計費分桶;三者會分別依對應價格計算。
如果您的系統已經串接了 OpenAI 格式的 API,可以使用 Chat Completion API 來無縫切換。如果您需要使用 Claude 的全部原生能力,建議使用 Messages API。
錯誤處理
公開介面的錯誤回應使用 Ace Data Cloud 平台 envelope:error.code 是穩定錯誤碼,error.message 是說明,trace_id 用於排查請求。常見 HTTP 狀態包括:
400:請求參數或協定內容無效。401:授權權杖無效、缺失或過期。403:禁止存取、餘額不足或配額受限。404:API 或模型不存在。413:請求本文過大。429:請求過多。500/503/504:服務錯誤、暫時無法使用或處理逾時。
錯誤回應範例
error.code 處理。

