跳到正文

帳戶與目錄 API

查詢密鑰可用的模型、剩餘額度,以及公開價格目錄。

端點驗證回傳內容
GET /v1/models密鑰(兩種標頭皆可)這把密鑰所含分組提供的模型
GET /v1/usage密鑰(僅 Bearer)這把密鑰還能花多少,以及它的額度
GET /api/v1/models/pricing無需驗證附牌價的公開模型目錄

三個端點都不計費,也都不要求餘額為正。

列出模型

GET /v1/models 接受 Authorization: Bearer sk-… 或 x-api-key: sk-…;GET /v1/usage 只認 Authorization: Bearer sk-…。

curl https://api.hop-base.com/v1/models \
  -H "Authorization: Bearer sk-your-key"

清單只包含密鑰所含分組的模型(綁定多個分組時為全部分組的聯集),一次回傳完整清單(不分頁)。OpenAI 相容分組的密鑰拿到 OpenAI 格式的清單:

{
  "object": "list",
  "data": [
    {
      "id": "gpt-6-astra",
      "object": "model",
      "created": 1790222400,
      "owned_by": "hopbase",
      "capabilities": ["chat", "reasoning"],
      "context_window": 1050000,
      "context_length": 1050000,
      "max_input_tokens": 1050000,
      "max_output_tokens": 128000
    }
  ]
}

Claude 分組的密鑰拿到 Anthropic 格式:

{
  "object": "list",
  "data": [
    {
      "id": "claude-sonnet-5-5",
      "object": "model",
      "type": "model",
      "display_name": "Claude Sonnet 5.5",
      "created_at": "2026-09-28T00:00:00Z"
    }
  ],
  "has_more": false,
  "first_id": "claude-sonnet-5-5",
  "last_id": "claude-haiku-4-5-20251001"
}
欄位型別含義
data[].idstring請求裡要傳的模型 ID,也是唯一應該依賴的欄位
data[].capabilitiesstring[]例如 chat、reasoning、image_generation
data[].image_onlyboolean圖片模型為 true,其他模型不回傳
data[].context_window、context_length、max_input_tokensinteger,Token同一個值的三種寫法,照顧不同用戶端;未公布時不回傳
data[].max_output_tokensinteger,Token未公布時不回傳
data[].createdinteger,Unix 秒本次回應的時間,不是發布日期
data[].display_name、created_atstring僅 Claude 分組;created_at 是模型發布日期(RFC 3339)

has_more、first_id、last_id 只為相容 SDK 保留:清單從不分頁,不要拿它們翻頁。除 id 外,部分模型可能缺少其他欄位;遇到不認識的欄位按選填處理。

餘額與計價幣種:USD

自 2026-10-01 起,帳戶餘額、密鑰額度、扣費與使用記錄一律以美元(USD)計價:模型按官方美元價乘以分組倍率扣費,主控台與 GET /v1/usage 顯示的都是美元金額。

  • 既有餘額:切換時已按固定比例換算為美元,可用量不變;分組價格與密鑰都不變。
  • 單次扣費:為相容已接入的程式,回應裡的 cost 與 X-HopBase-Cost 仍是同一筆扣費的人民幣金額(最多 6 位小數),currency 恆為 CNY;實際從餘額扣除的美元金額讀 cost_usd 與 X-HopBase-Cost-USD,與「使用記錄」一致。見扣費。
  • 增值:付款幣別、手續費與到帳金額以「增值」頁付款前顯示的為準,手續費單獨列出、不計入到帳金額;人民幣對公轉帳或線下增值的到帳美元金額以客服確認為準。

餘額與額度

curl https://api.hop-base.com/v1/usage \
  -H "Authorization: Bearer sk-your-key"

下例是一把額度為 $10、已用 $2 的密鑰:

{
  "is_active": true,
  "balance": 8,
  "remaining": 8,
  "unit": "USD",
  "ledger_currency": "USD",
  "balance_cny": 54.4,
  "balance_usd": 8,
  "quota": {
    "remaining": 8,
    "api_key_remaining": 8,
    "total": 10,
    "used": 2,
    "unlimited": false,
    "remaining_cny": 54.4,
    "remaining_usd": 8,
    "api_key_remaining_cny": 54.4,
    "api_key_remaining_usd": 8,
    "total_cny": 68,
    "total_usd": 10,
    "used_cny": 13.6,
    "used_usd": 2
  }
}
欄位型別含義
balancenumber,美元這把密鑰此刻還能花的額度,取值規則見表下
remainingnumber,美元與 balance 相同
is_activebooleanbalance 大於 0 時為 true
unitstring恆為 "USD",與 ledger_currency 一致
ledger_currencystring不帶後綴的金額的幣別,為 "USD"(2026-10-01 之前為 "CNY")
quota.remainingnumber,美元與 balance 相同
quota.api_key_remainingnumber,美元這把密鑰的剩餘額度;密鑰沒設額度時等於帳戶餘額
quota.totalnumber,美元密鑰額度;0 表示密鑰沒設額度
quota.usednumber,美元這把密鑰累計已扣費金額
quota.unlimitedboolean密鑰沒設額度時為 true

balance 的取值規則:

  • 密鑰沒設額度:即帳戶餘額。
  • 密鑰設了額度:即密鑰剩餘額度。
  • 團隊成員與部門的密鑰還會再按成員、部門本期剩餘額度封頂。

不帶後綴的金額指 balance、remaining、quota.remaining、quota.api_key_remaining、quota.total、quota.used。

每個金額都另有人民幣與美元兩個帶後綴的欄位:

欄位型別含義
balance_cny、balance_usdnumberbalance 的人民幣與美元金額
quota.remaining_cny、quota.remaining_usdnumberquota.remaining 的人民幣與美元金額
quota.api_key_remaining_cny、quota.api_key_remaining_usdnumber 或 nullquota.api_key_remaining 的人民幣與美元金額;密鑰沒設額度時為 null
quota.total_cny、quota.total_usdnumber 或 nullquota.total 的人民幣與美元金額;密鑰沒設額度時為 null
quota.used_cny、quota.used_usdnumberquota.used 的人民幣與美元金額
金額單位:美元:

balance、remaining 和不帶後綴的 quota.* 都是美元金額,與主控台餘額和「使用記錄」裡顯示的數字一致。需要人民幣時讀帶後綴的 _cny 欄位:對應 _usd 金額的人民幣金額(固定換算,不是即時匯率)。金額最多保留 8 位小數。2026-10-01 之前這些欄位是人民幣數值(當時 ledger_currency 為 "CNY"),按 ledger_currency 或 _cny / _usd 欄位對帳的腳本無需修改。

設了額度的密鑰仍然從帳戶餘額裡扣費:帳戶餘額先用完時,即使這裡的 balance 顯示還有額度,請求也會回傳 402。

這個端點不使用標準錯誤結構,出錯時回傳如下:

情況狀態碼message
沒傳密鑰,或不是 sk- 開頭的密鑰401"missing or invalid api key"
密鑰不存在或已停用401"invalid api key"
密鑰已過期200"api key expired"
團隊成員已停用200"member disabled"

第一種 401 的完整回應內容:

{"is_active": false, "balance": 0, "message": "missing or invalid api key"}

這兩種 200 回應同樣帶 ledger_currency 和 balance_cny / balance_usd(皆為 0)。

請以 is_active 判斷,不要只看 HTTP 狀態碼。逐筆扣費明細請在主控台「使用記錄」查看。

單次請求、單個任務與單筆記錄的扣費

同步請求與非同步任務的每筆扣費都給出兩種幣別:cost_usd 是實際從餘額扣除的美元金額,與主控台「使用記錄」裡這一筆相同;cost 是同一筆扣費的人民幣金額,為相容已接入的程式恆為人民幣,因此 currency 恆為 CNY。cost_usd 最多 8 位小數,cost 取 6 位。

同步請求(對話、生圖、語音)

計費的同步請求在三個回應標頭裡回傳本次實際扣費:

回應標頭含義
X-HopBase-Cost本次請求扣費的人民幣金額(與 X-HopBase-Cost-USD 為同一筆扣費),如 0.0816
X-HopBase-Cost-USD本次請求實際從餘額扣除的美元金額,與使用記錄裡這一筆相同,如 0.012
X-HopBase-CurrencyX-HopBase-Cost 的幣別,恆為 CNY

非串流的 JSON 回應還會在根物件的 usage 裡帶同樣的 cost、cost_usd 與 currency:

{
  "id": "chatcmpl-abc",
  "object": "chat.completion",
  "model": "gpt-5.6-sol",
  "choices": [{ "index": 0, "message": { "role": "assistant", "content": "ok" }, "finish_reason": "stop" }],
  "usage": { "prompt_tokens": 9, "completion_tokens": 1, "total_tokens": 10, "cost": 0.001197, "cost_usd": 0.000176, "currency": "CNY" }
}
  • 回應原本沒有 usage 時會新增一個,例如語音合成 POST /v1/t2a_v2 的 JSON 回應。usage 裡原有的欄位(如 xAI 的 cost_in_usd_ticks)保持不變。
  • usage 已經帶有 cost、cost_usd 或 currency、或者不是物件時,回應主體保持原樣,請讀回應標頭。
  • 二進位回應(如語音合成回傳的音訊)只有回應標頭。
  • 串流(SSE)回應都不帶:回應標頭在生成開始前已經送出,最後的用量事件原樣下發。串流請求的扣費請在主控台「使用記錄」查看。
  • 生圖耗時超過約 40 秒時,伺服器會先送出 200 回應標頭再寫保活空白,此時回應標頭裡沒有扣費,請讀回應主體的 usage.cost / usage.cost_usd。
  • 沒有扣費的回應(如模型列表、未計費的錯誤)都不帶。失敗的請求仍產生扣費時,錯誤回應帶回應標頭,錯誤主體保持原樣。
  • HopBase 自動重試時只對最終完成的那一次計費,回傳的就是這一次的金額。多分組密鑰按實際服務的分組計價。
  • 設定了銷售倍率的密鑰,回傳的是從你餘額實際扣除的金額,不含加價。
  • 用戶端在回應到達前中斷連線時,本次仍按實際用量計費,可在「使用記錄」查看。

非同步任務查詢(圖片與影片)

任務結束後,根物件的 usage 帶 cost_usd(本任務實際從餘額扣除的美元金額)、cost(同一筆扣費的人民幣金額)與 currency(cost 的幣別,恆為 CNY)。0 表示失敗且未扣費;單查任務時只有建立任務的密鑰能看到這些欄位。

{
  "id": "vt-1",
  "status": "completed",
  "usage": { "cost": 3.4, "cost_usd": 0.5, "currency": "CNY" }
}

任務列表(如不帶任務 ID 的 GET /v1/video/tasks)裡,每個終態任務的 usage 也帶同樣的 cost、cost_usd 與 currency。列表按帳戶列出,同一帳戶其他密鑰建立的任務同樣帶金額。

主控台使用記錄

「使用記錄」頁面讀取 GET /api/v1/user/usage 與 GET /api/v1/user/usage/stats(主控台登入驗證,不接受 sk- 密鑰)。

每筆記錄帶 ledger_currency(2026-10-01 起為 USD)、cost_cny、cost_usd,即這筆記錄扣費的人民幣與美元金額;頁面按美元顯示。

統計結果帶 ledger_currency、total_charged_cny、total_charged_usd,by_model、by_key、by_group、by_department、by_member 的每一項帶 cost_cny / cost_usd。

統計裡原有的 total_cost 是乘分組倍率之前的官方美元原價,不是你的扣費;扣費請看 total_charged_*。

公開模型目錄

curl https://api.hop-base.com/api/v1/models/pricing

無需密鑰。回應允許任意網站跨來源讀取,最多快取 5 分鐘(Cache-Control: public, max-age=300)。價格是未乘分組倍率的美元牌價;各模型你實際支付的價格見登入後的模型廣場。

{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "platform": "openai",
      "models": [
        {
          "id": "gpt-6-astra",
          "name": "GPT-6 Astra",
          "context_window": 1050000,
          "capabilities": ["chat", "reasoning"],
          "vendor": "openai",
          "category": "chat",
          "input": 10,
          "cached_input": 1,
          "output": 50,
          "long_context": {
            "threshold": 272000,
            "input_multiplier": 2,
            "cached_multiplier": 2,
            "output_multiplier": 1.5
          },
          "price_unit": "token"
        }
      ]
    },
    {
      "platform": "minimax",
      "models": [
        {
          "id": "speech-2.8-hd",
          "name": "MiniMax Speech 2.8 HD",
          "capabilities": ["tts"],
          "vendor": "minimax",
          "series": "minimax-speech",
          "category": "audio",
          "input": 100,
          "output": 0,
          "price_unit": "character"
        }
      ]
    }
  ]
}
欄位型別含義
codeinteger成功為 0
data[].platformstring模型接入所屬的協定族,不是模型廠商
models[].idstring要傳的模型 ID
models[].namestring顯示名稱
models[].vendorstring模型廠商,例如 openai、google;可能不回傳
models[].seriesstring主控台裡把多個版本歸為一組所用的系列;可能不回傳
models[].categorystringchat、image、video、audio 或 embedding
models[].capabilitiesstring[]例如 chat、reasoning、image_generation、image_edit、video_generation、tts
models[].context_windowinteger,Token未公布時不回傳
models[].price_unitstring本條目所有價格的計量單位,取值見下表
models[].input、cached_input、outputnumber,美元 / price_unit不適用快取時不回傳 cached_input;語音模型只用 input
models[].long_contextobject有長上下文件位時回傳,規則見表下
models[].imageobject按解析度檔位的每張價格,例如 {"1k": …, "2k": …, "4k": …}
models[].video_tokensobject按檔位的影片價格,單位跟隨 price_unit

platform 例如 openai、claude、gemini、kling;模型廠商看 vendor。

price_unit價格單位
token每百萬 Token
second每秒影片
image每張圖
character每百萬計費字元

輸入 Token 超過 threshold 時,整筆請求按 input_multiplier / cached_multiplier / output_multiplier 計費。

video_tokens 按解析度、有無聲音、有無參考素材分檔。price_unit 為 token 時是每百萬影片 Token,為 second 時是每秒。鍵名是歷史沿用。

同一模型透過多個分組提供時,可能出現在多個 platform 下。今後可能新增欄位,不認識的欄位請忽略。

回應標頭

回應標頭何時回傳含義
x-request-id每個回應本次請求的 ID,回報問題時請附上
Retry-After並行上限觸發的 429;已知等待時間的 429 與 503重試前需等待的秒數
Retry-After-Ms並行上限觸發的 429,以及其他已知等待時間的 429同一等待時間,單位毫秒
X-HopBase-Cost計費的同步請求(非串流)本次請求扣費的人民幣金額,見扣費
X-HopBase-Cost-USD同 X-HopBase-Cost本次請求實際從餘額扣除的美元金額
X-HopBase-Currency同 X-HopBase-CostX-HopBase-Cost 的幣別,恆為 CNY

HopBase 不會在回應標頭裡回傳你的並行上限、在途請求數或剩餘餘額。餘額請用 GET /v1/usage 查詢,上限見並行、逾時與計費。部分模型回應會帶有自身的限流標頭(x-ratelimit-*、anthropic-ratelimit-*),它們描述的不是你帳戶或密鑰的上限,不要據此限流。

下一步