管理金鑰

管理金鑰讓你用自己的程式碼管理工作區:為客戶或裝置建立推論金鑰並設定上限,讀取用量、日誌和設定。它不能呼叫模型。

⚠

權限範圍允許的事,管理金鑰在整個工作區都能做。請把它留在你的伺服器上,只給它用得到的權限範圍,並限制為你伺服器的 IP 位址。

建立管理金鑰

  1. 在主控台開啟 API 金鑰 › 管理金鑰,點選建立管理金鑰。管理員和工作區擁有者可以建立。
  2. 選擇金鑰歸誰所有、帶哪些權限範圍。
  3. 複製金鑰。它以 sk-syn-admin- 開頭,只顯示一次。

權限範圍

一個權限範圍對應管理 API 的一部分。寫入權限包含對應的讀取權限。金鑰沒有相應的權限範圍時,請求會回傳 403 insufficient_scope。

權限範圍可存取的內容端點
keys.read
keys.write
推論金鑰及其上限 /api/v1/keys
billing.read 工作區的用量、費用和餘額 /api/v1/billing/*
logs.read 請求、鏈路和工作階段。不含提示詞和回答。 /api/v1/requests
/api/v1/traces
/api/v1/sessions
usage.read 依標籤彙總的用量 /api/v1/usage/labels
prompts.read
prompts.write
提示詞庫:提示詞、版本和標籤 /api/v1/prompts
evals.read
evals.write
測試集和評測執行紀錄 /api/v1/prompts/{id}/test-sets
/api/v1/prompts/{id}/eval-runs
audit.read 稽核日誌 /api/v1/audit-logs
members.read 成員和邀請 /api/v1/members
/api/v1/invites
byok.read BYOK 設定。不含供應商金鑰。 /api/v1/byok
exports.read 匯出目的地,不含憑證 /api/v1/export-destinations

金鑰歸誰所有

  • 你。你離開工作區後,金鑰會被停用。你還在工作區但不再是管理員時,請求會回傳 403 key_creator_not_authorized。
  • 工作區。建立者離開或角色變更後,金鑰照常可用。適合 CI 和整合。建立者離開時,這把金鑰會連同用它建立的推論金鑰一起移交給工作區擁有者,全部照常可用。

歸屬在建立金鑰時選定,之後無法變更。

驗證

把金鑰當作 Bearer token 傳送。管理金鑰只能用於管理 API:/v1/ 底下的模型端點會拒絕它;反過來,管理 API 也會拒絕推論金鑰(sk-syn-),回傳 401 wrong_key_kind。

Authorization: Bearer sk-syn-admin-...

建立推論金鑰

POST /api/v1/keys

參數類型說明
name*string顯示在主控台和用量資料中。必填。
limit_usdnumber花費上限,單位為美元。不傳則不設上限;但如果管理金鑰所代表的成員在這個工作區有每日限額,就一定要傳:不能高於該限額,而且 limit_reset 要設為 daily。
limit_resetstring花費何時歸零:永不、每日、每週或每月。
allowed_modelsstring[]金鑰可以呼叫的模型。留空表示全部;如果管理金鑰所代表的成員只能使用部分模型,留空就是這些模型。不在該成員清單中的模型會被拒絕。
ip_allowliststring[]允許使用這把金鑰的 IP 位址或 CIDR 範圍。留空表示不限。
expires_atstring金鑰的失效時間,RFC 3339 格式。
include_byok_in_limitboolean用你自己的供應商金鑰送出的請求是否計入上限。預設計入。
rate_limitobject金鑰本身的每分鐘上限:請求數(rpm)和 token 數(tpm)。0 表示不限。
metadataobject你為金鑰加上的標籤,例如租戶 ID 或裝置 ID。列出金鑰時可以依它篩選。
curl https://synthorai.io/api/v1/keys \
  -H "Authorization: Bearer sk-syn-admin-..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: device-abc-123" \
  -d '{
    "name": "Device abc-123",
    "limit_usd": 5.0,
    "limit_reset": "monthly",
    "allowed_models": ["claude-haiku-4-5"],
    "metadata": { "tenant_id": "acme", "device_id": "abc-123" }
  }'

回應的 key 欄位是完整金鑰,只回傳這一次。請立即存好:之後再讀取,只會拿到 key_prefix。

{
  "data": {
    "id": 42,
    "key": "sk-syn-d4f0...e91b",
    "key_prefix": "sk-syn-d4f0...",
    "name": "Device abc-123",
    "enabled": true,
    "status": "enabled",
    "limit_usd": 5.0,
    "used_usd": 0,
    "limit_reset": "monthly",
    "allowed_models": ["claude-haiku-4-5"],
    "ip_allowlist": [],
    "expires_at": null,
    "include_byok_in_limit": true,
    "rate_limit": { "rpm": 0, "tpm": 0 },
    "metadata": { "tenant_id": "acme", "device_id": "abc-123" },
    "created_via": "provisioning_api",
    "created_at": "2026-10-01T12:00:00Z"
  },
  "meta": { "request_id": "01a1..." }
}

想安全地重試建立請求,請帶上 Idempotency-Key 標頭。用同一個值重送,會得到第一次的回應,但不含金鑰明文。同一個鍵在 24 小時內都會回傳這份回應,即使資源已被刪除;要重新建立,請換一個新的鍵。

列出和篩選金鑰

GET /api/v1/keys

用 ?metadata.<name>=<value> 可依任意 metadata 欄位篩選。結果分頁回傳:把 meta.next_cursor 當作 cursor 傳入,即可取得下一頁。

# all keys
curl https://synthorai.io/api/v1/keys \
  -H "Authorization: Bearer sk-syn-admin-..."

# only keys tagged tenant_id=acme, 50 at a time
curl "https://synthorai.io/api/v1/keys?metadata.tenant_id=acme&limit=50" \
  -H "Authorization: Bearer sk-syn-admin-..."

讀取、修改、輪換和刪除

  • GET /api/v1/keys/{id} 回傳單一金鑰。
  • PATCH /api/v1/keys/{id} 只修改你傳入的欄位。"enabled": false 會停用金鑰,但不會刪除它。
  • POST /api/v1/keys/{id}/rotate 為金鑰換一組新的金鑰值,舊的立即失效。
  • DELETE /api/v1/keys/{id} 刪除金鑰,使用它的請求會立即回傳 401。
# stop a key without deleting it
curl -X PATCH https://synthorai.io/api/v1/keys/42 \
  -H "Authorization: Bearer sk-syn-admin-..." \
  -H "Content-Type: application/json" \
  -d '{ "enabled": false }'

# give it a new secret
curl -X POST https://synthorai.io/api/v1/keys/42/rotate \
  -H "Authorization: Bearer sk-syn-admin-..."

# delete it
curl -X DELETE https://synthorai.io/api/v1/keys/42 \
  -H "Authorization: Bearer sk-syn-admin-..."

管理金鑰代表一位成員操作:通常是它的建立者;如果金鑰屬於工作區且建立者已離開,則代表工作區擁有者。它只能修改、輪換和刪除這位成員的金鑰,包括它自己建立的;對其他成員的金鑰會回傳 403 not_key_creator,用擁有者的管理金鑰也一樣。在專屬執行個體上,工作區的任何管理金鑰都能管理所有成員的金鑰,和管理員在主控台中能做的一樣。管理員停用的金鑰只有管理員能重新啟用,其他人啟用會回傳 403 disabled_by_admin。

上限和花費

limit_usd 是金鑰最多能花多少,used_usd 是已經花了多少。達到上限後,status 會變成 limit_reached,請求會被拒絕,直到你調高上限或週期重設。

✓

把你自己的客戶 ID 或裝置 ID 寫進 metadata,之後依它篩選,就能看到這位客戶的所有金鑰和每一把的花費。

正在為每把金鑰訂花費上限?用 LLM API 成本計算機 把客戶預估的 token 用量換算成每月金額,直接填進 limit_usd。

錯誤

錯誤沿用管理 API 的統一格式:error.code 說明原因,error.message 說明如何處理;在 /api/provisioning/keys 上,同樣的錯誤碼會放在 error.type 中。以下是管理金鑰和金鑰 API 特有的錯誤碼。

錯誤碼HTTP 狀態碼含義
key_creator_not_authorized403管理金鑰的建立者已不再是管理員或擁有者。
key_owner_not_member403金鑰所代表的成員已不在工作區中。
not_key_creator403你要修改、輪換或刪除的金鑰屬於其他成員。
disabled_by_admin403金鑰已被管理員停用,只有管理員能重新啟用。
key_policy_refused400金鑰超出了所屬成員的限制:每日限額、可用模型,或工作區允許的 IP 範圍。具體是哪一項,請看回傳的訊息。
key_policy_unavailable503暫時讀不到這些限制,請稍後再試。

Provisioning 金鑰和 /api/provisioning

管理金鑰推出之前簽發的金鑰(sk-syn-prov-)仍可使用,帶有 keys.read 和 keys.write 兩個權限範圍。舊路徑 /api/provisioning/keys 仍然可用,欄位名稱維持原樣(quota、status)。新的整合請用 /api/v1/keys。

管理 API 還涵蓋帳單、請求日誌、提示詞和工作區設定,詳見 API 總覽和 OpenAPI 文件。