API-Schlüssel widerrufen
POST /v1/api-keys/{key_id}:revoke · Berechtigung api-keys:write · optionaler Idempotency-Key
Widerruft einen Schlüssel sofort. Der Widerruf ist nicht rückgängig zu machen; der Schlüssel wird spätestens nach 30 Sekunden abgelehnt. Ein rotierter Schlüssel, dessen Überlappung noch läuft, wird ebenfalls sofort widerrufen. Ein Schlüssel, der im Dashboard erstellt wurde, und jeder von dort aus rotierte Schlüssel können nur von sich selbst oder im Dashboard widerrufen werden (permission_escalation).
Anfrage
| Parameter | Ort | Beschreibung |
|---|---|---|
key_id |
Pfad | ID des API-Schlüssels (key_…). |
Body:
Der Body ist optional; ohne ihn gelten alle Standardwerte.
| Feld | Typ | Beschreibung |
|---|---|---|
reason |
string | Optional. manual (Standard) oder leaked. |
Antwort
200 OK. Das Schlüsselobjekt mit gesetztem revoked_at und revoke_reason.
{
"id": "key_0000000000000000000000001z",
"name": "ci",
"type": "restricted",
"permissions": ["users:read"],
"allowed_cidrs": [],
"last4": "xxxx",
"created_by": "key_…",
"created_at": "2026-10-01T10:00:00Z",
"expires_at": "2027-10-01T10:00:00Z",
"last_used_at": null,
"last_used_ip": null,
"rotated_from": null,
"revoked_at": "2026-10-02T10:00:00Z",
"revoke_reason": "leaked"
}
Fehler
| HTTP | code |
Wann |
|---|---|---|
| 401 | unauthenticated |
Der Schlüssel fehlt, ist ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Dem Schlüssel fehlt die erforderliche Berechtigung. |
| 403 | permission_escalation |
Die Anfrage würde einem Schlüssel mehr Berechtigungen, einen breiteren Netzwerkbereich oder einen späteren Ablauf als der aufrufende Schlüssel hat geben, ein restricted-Schlüssel versucht, über seine eigenen Berechtigungen hinaus zu erstellen, zu rotieren oder zu widerrufen, oder ein anderer Schlüssel versucht, einen Schlüssel zu rotieren oder zu widerrufen, der im Dashboard erstellt wurde. |
| 404 | not_found |
Der Schlüssel existiert in dieser Umgebung nicht. |
| 409 | conflict |
Der Schlüssel ist bereits widerrufen. |
| 422 | validation_failed |
Der Body ist ungültig: reason ist weder manual noch leaked. |
Beispiel
curl -X POST "https://api.eu.keenauth.com/v1/api-keys/key_0000000000000000000000001z:revoke" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"reason":"leaked"}'