Provisioning Keys
provisioning key を使うと、バックエンドがプログラムで作成・管理できます 推論 API キー ——誰も Console にログインする必要はありません。エンドカスタマーごと、デバイスごと、または CI ジョブごとに 1 つのキーを発行する SaaS 製品に最適です。
provisioning key は、その workspace 内の いずれの 推論キーを作成、変更、削除できます。admin 認証情報として扱い、サーバー側にのみ保存し、ブラウザやモバイルクライアントには決して配布しないでください。
仕組み
- owner または admin が次の場所で provisioning key を作成します Console → Provisioning Keys. これには次のプレフィックスが付きます
sk-syn-prov-. - バックエンドが次を呼び出します
/api/provisioning/*エンドポイントをそのキーで呼び出して推論キーを作成します(プレフィックスsk-syn-). - 各推論キーは同じ workspace にスコープされ、USD の利用上限と不透明な
metadataタグ。 - 推論キーを顧客に渡します。いつでも個別に取り消せます——provisioning key を削除しても ありません すでに作成済みの推論キーに影響を与えることは
provisioning key 自体は Console でのみ作成できます——provisioning key を発行する API はありません。次を開きます Console → Provisioning Keys (owner / admin のみ)。
認証
プロビジョニングキーを Bearer token として渡します。これは次でのみ機能します のみ 対象: /api/provisioning/* — provisioning key は推論呼び出しを行えず、通常の inference key はこれらの管理エンドポイントを呼び出せません(どちらの場合も次を返します: 401 wrong_key_kind).
Authorization: Bearer sk-syn-prov-... 推論キーを作成する
POST /api/provisioning/keys
| パラメータ | 型 | 説明 |
|---|---|---|
name | string | キーの人間が読めるラベル(例:"Device abc-123")。 |
quota | number | USD 単位の利用上限。省略するか 0 を設定すると無制限。 |
allowed_models | string | カンマ区切りのモデル許可リスト(例:"claude-haiku-4-5")。空 = workspace がアクセスできるすべてのモデル。 |
ip_whitelist | string | このキーで行われるリクエストに対するカンマ区切りの IP / CIDR 許可リスト。空 = 制限なし。 |
expires_at | string | オプションの RFC3339 有効期限タイムスタンプ。省略すると有効期限なし。 |
include_byok_in_limit | boolean | true の場合、BYOK 呼び出しはアップストリームの定価でこのキーのクォータにカウントされます。デフォルトは false。 |
metadata | object | 自分で定義する不透明な JSON タグ(例:{"tenant_id":"acme"})。そのまま保存され、最大 8KB。一覧表示/フィルタリングにのみ使用され、認証には一切影響しません。 |
curl https://synthorai.io/api/provisioning/keys \
-H "Authorization: Bearer sk-syn-prov-..." \
-H "Content-Type: application/json" \
-d '{
"name": "Device abc-123",
"quota": 5.0,
"allowed_models": "claude-haiku-4-5",
"metadata": { "tenant_id": "acme", "device_id": "abc-123" }
}'import requests
resp = requests.post(
"https://synthorai.io/api/provisioning/keys",
headers={"Authorization": "Bearer sk-syn-prov-..."},
json={
"name": "Device abc-123",
"quota": 5.0,
"allowed_models": "claude-haiku-4-5",
"metadata": {"tenant_id": "acme", "device_id": "abc-123"},
},
)
inference_key = resp.json()["key"] # full key — shown only onceレスポンスは次のフィールドで完全なキーを返します key フィールド ちょうど一度だけ. すぐに保存してください——後から取得することはできません。
{
"id": 42,
"key": "sk-syn-d4f0...e91b",
"key_prefix": "sk-syn-d4f0...",
"name": "Device abc-123",
"kind": "inference",
"created_via": "provisioning_api",
"parent_provisioning_id": 7,
"workspace_id": 11,
"quota_usd": 5.0,
"unlimited_quota": false,
"allowed_models": "claude-haiku-4-5",
"metadata": { "tenant_id": "acme", "device_id": "abc-123" },
"created_at": "2026-06-01T12:00:00Z"
} 推論キーを一覧表示する
GET /api/provisioning/keys
workspace 内のすべての推論キーを一覧表示します。任意の metadata フィールドでフィルタリングできます ?metadata.<key>=<value>;複数のフィルターは AND で組み合わされます。
# all keys
curl https://synthorai.io/api/provisioning/keys \
-H "Authorization: Bearer sk-syn-prov-..."
# only keys tagged tenant_id=acme
curl "https://synthorai.io/api/provisioning/keys?metadata.tenant_id=acme" \
-H "Authorization: Bearer sk-syn-prov-..." 取得、更新、削除
数値の id:
- GET
/api/provisioning/keys/{id}——1 つのキーを取得します。 - PATCH
/api/provisioning/keys/{id}——更新しますname,quota,status,allowed_models,ip_whitelist,expires_at,include_byok_in_limit, またはmetadata. 次の項目、すなわちkindおよび系譜フィールドは変更できません。 - DELETE
/api/provisioning/keys/{id}——キーを取り消します。即時に有効になります。
# disable a key (status 2 = disabled)
curl -X PATCH https://synthorai.io/api/provisioning/keys/42 \
-H "Authorization: Bearer sk-syn-prov-..." \
-H "Content-Type: application/json" \
-d '{ "status": 2 }'
# delete a key
curl -X DELETE https://synthorai.io/api/provisioning/keys/42 \
-H "Authorization: Bearer sk-syn-prov-..." クォータと利用管理
quota は推論キーごとの USD 上限です。利用量は各リクエストの後に計測されるため、高い並行性のもとでは、短い精算ウィンドウ内でキーが上限をわずかに超えることがあります——高額なモデルでは上限に少しのバッファを持たせてください。キーの現在の利用額は次から読み取れます used_usd から読み取れます。これは一覧/取得のレスポンスに含まれます。
作成時にキーへタグを付けます metadata (テナント、デバイス、環境)。これにより、後でフィルターで一覧表示、監査、一括取り消しができます。この方法で作成されたキーは次にも表示されます Console → API Keys 次を伴う Programmatic ソースバッジとそのタグ付きで。
キーごとの USD 上限を決めますか?LLM API cost calculator は顧客の想定トークン量を月間支出額に換算し、その値を quota として設定できます。