計算 Message 的 input tokens
對齊 Anthropic `POST /v1/messages/count_tokens`。路由、允許清單與錯誤形狀和建立 Message 相同; 回傳的 `input_tokens` 只是計數,**不計費**。非 Claude 模型沒有對應的計數端點,回傳本機粗估值; `hakila/auto` 的計數一律交給 Claude。
/v1/messages/count_tokens對齊 Anthropic POST /v1/messages/count_tokens。路由、允許清單與錯誤形狀和建立 Message 相同;
回傳的 input_tokens 只是計數,不計費。非 Claude 模型沒有對應的計數端點,回傳本機粗估值;
hakila/auto 的計數一律交給 Claude。
Anthropic 風格的認證 header;與 Authorization: Bearer 擇一即可,兩者都有時以 Bearer 為準。
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
只列出 Hakila 會檢查或改寫的欄位;其餘欄位(system、tools、thinking、stream…)與
Anthropic Messages 規格 完全相同,Claude 模型原樣透傳、
其他模型依 Messages 指南 轉換。
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/messages/count_tokens" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-5", "messages": [ { "role": "user", "content": "用一句話介紹 Hakila" } ] }'{ "input_tokens": 14}建立 Message POST
對齊 Anthropic Messages 規格(`POST https://api.anthropic.com/v1/messages`),給 Claude Code、 Anthropic SDK 等原生客戶端使用,可呼叫平台上所有 chat 模型。 - **Claude 模型**:除了模型路由、金鑰、允許清單與記帳,請求、回應與 SSE 事件都原樣透傳 - **其他模型**(GPT、Gemini、Grok…):轉成各家協定後再轉回 Messages 格式(無狀態); `thinking`/`output_config.effort` 換成各家推理等級,需要回傳的推理資料加密放在 `thinking` block 的 `signature` 或 `redacted_thinking` 的 `data`;Anthropic 伺服器端工具(例如 `web_search_20250305`) 會移除並列在回應 header `X-Hakila-Dropped-Tools`。詳見 [Messages 指南](/docs/guides/messages#非-claude-模型) - 沒有前綴的 `model`(例如 `claude-sonnet-5`)在目錄中只有一個同名模型時補上開發商前綴(`anthropic/claude-sonnet-5`);多個同名模型時回 `400`,沒有時回 `404` - `hakila/auto` 的候選可落在任何供應商;裸名稱 `claude-auto` 視同 `hakila/auto`(給只接受 Claude 名稱的 Claude Desktop 用) - 認證可用 `x-api-key`(Anthropic SDK 預設)或 `Authorization: Bearer` - Claude 模型的 `anthropic-version` 與 `anthropic-beta` header 會轉發給上游 - 錯誤形狀與 Anthropic 一致(`{"type":"error","error":{"type","message"}}`) - 支援 Response Cache header;不支援 Preset(回 `400`) - 上游首字元逾時(預設 30 秒)回傳 `504`
Changelog
Hakila API 與文件的變更紀錄