帳戶與目錄 API

GET /v1/models、GET /v1/usage 與公開的 GET /api/v1/models/pricing:驗證方式、範例回應、欄位型別與單位,以及 HopBase 設定的回應標頭。

三個唯讀端點分別告訴你的程式:這把金鑰能呼叫哪些模型、還能花多少、各模型的牌價是多少。三者都不計費,也都不要求餘額為正。

端點驗證回傳內容
GET /v1/models金鑰:Authorization: Bearer sk-… 或 x-api-key: sk-…這把金鑰所在分組提供的模型
GET /v1/usage金鑰:只認 Authorization: Bearer sk-…這把金鑰還能花多少,以及它的額度
GET /api/v1/models/pricing無需驗證附牌價的公開模型目錄

列出模型

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-opus-5-5",
      "object": "model",
      "type": "model",
      "display_name": "Claude Opus 5.5",
      "created_at": "2026-09-22T00:00:00Z"
    }
  ],
  "has_more": false,
  "first_id": "claude-opus-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 外,部分模型可能缺少其他欄位;遇到不認識的欄位按選填處理。

餘額與額度

curl https://api.hop-base.com/v1/usage \
  -H "Authorization: Bearer sk-your-key"
{
  "is_active": true,
  "balance": 125.4,
  "remaining": 125.4,
  "unit": "USD",
  "quota": {
    "remaining": 125.4,
    "api_key_remaining": 125.4,
    "total": 0,
    "used": 3.12,
    "unlimited": true
  }
}
欄位型別含義
balancenumber這把金鑰此刻還能花的額度。金鑰沒設額度:即帳戶餘額。金鑰設了額度:即金鑰剩餘額度。團隊成員與部門的金鑰還會再按成員、部門本期剩餘額度封頂
remainingnumber與 balance 相同
is_activebooleanbalance 大於 0 時為 true
unitstring恆為 "USD",並不代表幣別,見下方說明
quota.remainingnumber與 balance 相同
quota.api_key_remainingnumber這把金鑰的剩餘額度;金鑰沒設額度時等於帳戶餘額
quota.totalnumber金鑰額度;0 表示金鑰沒設額度
quota.usednumber這把金鑰累計已扣費金額
quota.unlimitedboolean金鑰沒設額度時為 true

金額單位是你的餘額幣別

所有金額都以帳戶餘額的記帳幣別計——與主控台餘額和「使用記錄」裡顯示的數字一致。不要根據 unit 判斷幣別。

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

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

情況狀態碼回應內容
沒傳金鑰,或不是 sk- 開頭的金鑰401{"is_active": false, "balance": 0, "message": "missing or invalid api key"}
金鑰不存在或已停用401"message": "invalid api key"
金鑰已過期200"is_active": false,"message": "api key expired"
團隊成員已停用200"is_active": false,"message": "member disabled"

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

公開模型目錄

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模型接入所屬的協定族(例如 openai、claude、gemini、kling),不是模型廠商——廠商看 vendor
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本條目所有價格的計量單位:token = 每百萬 Token,second = 每秒影片,image = 每張圖,character = 每百萬計費字元
models[].input、cached_input、outputnumber,美元 / price_unit不適用快取時不回傳 cached_input;語音模型只用 input
models[].long_contextobject有長上下文檔位時回傳:輸入 Token 超過 threshold 時,整筆請求按 input_multiplier / cached_multiplier / output_multiplier 計費
models[].imageobject按解析度檔位的每張價格,例如 {"1k": …, "2k": …, "4k": …}
models[].video_tokensobject按檔位(解析度、有無聲音、有無參考素材)的影片價格。單位跟隨 price_unit:token 為每百萬影片 Token,second 為每秒。鍵名是歷史沿用

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

回應標頭

回應標頭何時回傳含義
x-request-id每個回應本次請求的 ID,回報問題時請附上
Retry-After並行上限觸發的 429;已知等待時間的 429 與 503重試前需等待的秒數
Retry-After-Ms並行上限觸發的 429,以及其他已知等待時間的 429同一等待時間,單位毫秒

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

本頁目錄