Référence APIFaire tourner une clé API
POST/v1/api-keys/{id}/rotate

Faire tourner une clé API

Crée une clé de remplacement avec les mêmes scopes, en gardant l'ancienne active le temps d'une période de grâce.

2 min de lectureTélécharger en PDF

Requête exemple

"{\"grace_days\": 7}"

Réponse exemple

"{\"new_key\": \"cof_live_3f8a1c92d4e7b06a5f1c8e2d9b4a7063f2c1e8d5a9b3c7e0f4d6a2b8c1e9f0d3\", \"new_id\": \"key_9Hk2Lm4Np6Qr8St0\", \"new_prefix\": \"cof_live_3f8a1c92...\", \"old_id\": \"key_1Ab2Cd3Ef4Gh5Ij6\", \"grace_until\": \"2026-06-12T09:30:00.000Z\", \"warning\": \"Save this key now - it will not be shown again. Roll callers to the new key before grace_until.\"}"

Effectue une rotation atomique d'une clé API : Coffrify génère une toute nouvelle clé qui hérite des mêmes scopes, du même type (`full` ou `restricted`), du même environnement (`live` ou `test`), de la même liste d'IP autorisées (`allowed_ips`) et du même quota `max_uses` que la clé source. Le comportement notable est la fenêtre de grâce : par défaut l'ancienne clé reste active pendant 7 jours (paramétrable, maximum 30 jours), ce qui permet de déployer la nouvelle clé sans coupure. À l'échéance, un cron quotidien révoque automatiquement l'ancienne clé. Avec grace_days: 0, l'ancienne clé est révoquée immédiatement. La réponse expose la clé en clair une seule et unique fois et l'opération émet l'événement webhook api_key.rotated.

Authentification

Requiert une clé API valide passée via Authorization: Bearer cof_live_... et porteuse du scope api_keys:manage. Une clé sans ce scope reçoit une erreur 403 scope_missing. Comme pour toute écriture, l'en-tête Idempotency-Key est pris en charge : une même clé d'idempotence rejoue la réponse mise en cache plutôt que de créer une seconde clé.

Corps de la requête

Le corps est optionnel : sans corps, la rotation s'effectue avec une fenêtre de grâce de 7 jours.

ChampTypeRequisDescription
grace_daysnumber (entier)NonDurée en jours pendant laquelle l'ancienne clé reste active avant révocation automatique. Défaut : 7. Valeur 0 = révocation immédiate de l'ancienne clé. Bornée côté serveur entre 0 et 30 (toute valeur supérieure est ramenée à 30, toute valeur invalide ou non finie retombe sur 7).

L'identifiant de la clé à faire tourner est fourni dans le chemin ({id}), pas dans le corps. Les autres attributs de la nouvelle clé (scopes, IP, environnement, type, max_uses) ne sont pas modifiables ici : ils sont copiés à l'identique depuis la clé source. Le nom de la nouvelle clé est dérivé automatiquement sous la forme "<nom source> (rotated)".

Réponse

Réponse 201 Created. Le champ new_key contient la clé secrète complète en clair, affichée une seule fois : elle n'est jamais réexposée par la suite (seul son préfixe tronqué reste consultable). new_id est l'identifiant de la nouvelle clé créée, new_prefix son préfixe affichable (préfixe + 8 caractères hexadécimaux + ...), et old_id l'identifiant de la clé source. grace_until est l'horodatage ISO 8601 jusqu'auquel l'ancienne clé reste valide (égal à l'instant courant lorsque grace_days vaut 0). Le champ warning rappelle de sauvegarder la clé immédiatement et de basculer les appelants avant grace_until.

Erreurs

Code HTTPCode erreurQuandRésolution
401missing_api_keyEn-tête Authorization absent.Ajouter Authorization: Bearer cof_live_....
401invalid_api_keyFormat de clé non reconnu, ou clé introuvable.Vérifier le préfixe (cof_live_ / cof_test_ / cof_rk_*) et la validité de la clé.
401revoked_api_key / expired_api_keyLa clé d'appel est révoquée, inactive ou expirée.Émettre une nouvelle clé depuis app.coffrify.com/developer.
403scope_missingLa clé d'appel ne porte pas le scope api_keys:manage.Émettre une clé avec le scope api_keys:manage.
404not_foundAucune clé {id} dans ce workspace (mauvais id ou clé d'un autre workspace).Vérifier l'id via GET /v1/api-keys ; une clé n'est visible que dans son workspace.
429rate_limitedQuota de requêtes/minute du workspace dépassé (endpoint write).Respecter l'en-tête Retry-After puis réessayer.
500internal_errorÉchec en base lors de la lecture, de l'insertion ou de la planification de révocation.Réessayer ; si persistant, contacter le support avec le request_id renvoyé.

Voir aussi

GET/v1/api-keysLister les clés du workspace pour retrouver l'id à faire tourner et suivre les clés en cours de rotation.DELETE/v1/api-keys/{id}Révoquer manuellement une clé (utile pour couper l'ancienne avant la fin de la fenêtre de grâce).POST/v1/webhooks/{id}/rotate-secretFaire tourner le secret de signature d'un webhook, sur un modèle de rotation analogue.