Provisioning-Schlüssel
Ein Provisioning-Schlüssel ermöglicht es Ihrem Backend, Inferenz-API-Schlüssel programmatisch — ohne dass sich jemand in der Konsole anmeldet. Ideal für SaaS-Produkte, die einen Schlüssel pro Endkunde, pro Gerät oder pro CI-Job ausgeben.
Ein Provisioning-Schlüssel kann jeden Inferenzschlüssel in seinem Workspace erstellen, ändern und löschen. Behandeln Sie ihn wie ein Admin-Anmeldedaten: Speichern Sie ihn nur serverseitig und geben Sie ihn niemals an Browser oder mobile Clients weiter.
Funktionsweise
- Ein Owner oder Admin erstellt einen Provisioning-Schlüssel in Konsole → Provisioning-Schlüssel. Er trägt das Präfix
sk-syn-prov-. - Ihr Backend ruft die
/api/provisioning/*Endpunkte mit diesem Schlüssel auf, um Inferenzschlüssel zu erstellen (Präfixsk-syn-). - Jeder Inferenzschlüssel ist auf denselben Workspace beschränkt und kann ein USD-Ausgabenlimit sowie undurchsichtige
metadatatags. - Geben Sie die Inferenzschlüssel an Ihre Kunden weiter. Widerrufen Sie jeden einzelnen jederzeit — das Löschen eines Provisioning-Schlüssels beeinflusst nicht die bereits erstellten Inferenzschlüssel.
Provisioning-Schlüssel selbst werden nur in der Konsole erstellt — es gibt keine API zum Erzeugen eines Provisioning-Schlüssels. Öffnen Sie Konsole → Provisioning-Schlüssel (nur Owner / Admin).
Authentifizierung
Übergeben Sie den Provisioning-Schlüssel als Bearer-Token. Er funktioniert nur bei /api/provisioning/* — ein Provisioning-Schlüssel kann keine Inferenzaufrufe tätigen, und ein normaler Inferenzschlüssel kann diese Verwaltungs-Endpunkte nicht aufrufen (beide geben 401 wrong_key_kind).
Authorization: Bearer sk-syn-prov-... Inferenzschlüssel erstellen
POST /api/provisioning/keys
| Parameter | Typ | Beschreibung |
|---|---|---|
name | string | Menschenlesbare Bezeichnung für den Schlüssel (z. B. "Device abc-123"). |
quota | number | Ausgabenlimit in USD. Weglassen oder auf 0 setzen für unbegrenzt. |
allowed_models | string | Kommagetrennte Modell-Allowlist (z. B. "claude-haiku-4-5"). Leer = alle Modelle, auf die der Workspace zugreifen kann. |
ip_whitelist | string | Kommagetrennte IP-/CIDR-Allowlist für Anfragen mit diesem Schlüssel. Leer = keine Einschränkung. |
expires_at | string | Optionaler RFC3339-Ablaufzeitstempel. Weglassen für keinen Ablauf. |
include_byok_in_limit | boolean | Bei true zählen BYOK-Aufrufe zum Kontingent dieses Schlüssels zum Upstream-Listenpreis. Standard false. |
metadata | object | Undurchsichtige JSON-Tags, die Sie definieren (z. B. {"tenant_id":"acme"}). Wortgetreu gespeichert, max. 8 KB. Nur zum Auflisten / Filtern — beeinflusst niemals die Authentifizierung. |
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 onceDie Antwort gibt den vollständigen Schlüssel im key Feld genau einmal. Speichern Sie ihn sofort — er kann später nicht abgerufen werden.
{
"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"
} Inferenzschlüssel auflisten
GET /api/provisioning/keys
Listet jeden Inferenzschlüssel im Workspace auf. Filtern Sie nach jedem Metadatenfeld mit ?metadata.<key>=<value>; mehrere Filter werden mit AND kombiniert.
# 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-..." Abrufen, aktualisieren & löschen
Adressieren Sie einen einzelnen Inferenzschlüssel über seine numerische id:
- GET
/api/provisioning/keys/{id}— einen Schlüssel abrufen. - PATCH
/api/provisioning/keys/{id}— aktualisierenname,quota,status,allowed_models,ip_whitelist,expires_at,include_byok_in_limit, odermetadata. Die Felderkindund Abstammungsfelder können nicht geändert werden. - DELETE
/api/provisioning/keys/{id}— einen Schlüssel widerrufen. Sofort wirksam.
# 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-..." Kontingente & Ausgabenkontrolle
quota ist ein USD-Limit pro Inferenzschlüssel. Die Nutzung wird nach jeder Anfrage erfasst, daher kann ein Schlüssel sein Limit in einem kurzen Abrechnungsfenster bei hoher Parallelität geringfügig überschreiten — dimensionieren Sie Limits mit einem kleinen Puffer für hochwertige Modelle. Lesen Sie die aktuellen Ausgaben eines Schlüssels aus used_usd in den Auflistungs- / Abrufantworten.
Versehen Sie Schlüssel bei der Erstellung mit metadata (Tenant, Gerät, Umgebung), damit Sie sie später per Filter auflisten, prüfen und massenhaft widerrufen können. Auf diese Weise erstellte Schlüssel erscheinen auch in Konsole → API-Schlüssel mit einem Programmatisch Quell-Badge und ihre Tags.
Sie dimensionieren USD-Obergrenzen pro Schlüssel? Der LLM API cost calculator rechnet das erwartete Token-Volumen eines Kunden in einen monatlichen Ausgabenbetrag um, den Sie als quota festlegen können.