🔑
Prise en main·Débutant·7 min

Créer une clé API et choisir les bons scopes

Générez une clé API Coffrify, sélectionnez les scopes adaptés à votre cas d'usage et comprenez les contraintes de sécurité (MFA, clés restreintes, expiration).

Télécharger en PDF

L'API Coffrify utilise des clés porteur (Bearer tokens) pour authentifier chaque requête. Deux formats coexistent : les clés full (préfixe cof_live_ ou cof_test_) qui héritent de tous les scopes disponibles, et les clés restricted (préfixe cof_rk_live_ ou cof_rk_test_) dont les permissions sont limitées aux scopes que vous déclarez explicitement. La clé brute n'est retournée qu'une seule fois à la création : conservez-la immédiatement dans votre gestionnaire de secrets.

GET/v1/api-keysLister toutes les clés API du workspace (valeurs brutes non incluses). Scope requis : `api_keys:manage`.POST/v1/api-keysCréer une nouvelle clé API. La valeur brute est retournée une unique fois dans le champ `key`. Scope requis : `api_keys:manage`.GET/v1/api-keys/scopesConsulter le catalogue complet des 43 scopes disponibles. Endpoint public, aucune authentification requise.

Authentification

Les endpoints GET /v1/api-keys et POST /v1/api-keys requièrent le scope api_keys:manage sur la clé appelante. Ce scope est classé risque élevé dans le catalogue Coffrify : il ne peut pas figurer dans les scopes d'une clé restricted. Si vous appelez ces routes avec une clé cof_rk_live_* dépourvue de ce scope, vous recevrez une erreur 403 forbidden_scope. Utilisez donc une clé cof_live_* (full) ou une cof_rk_live_* dont le scope api_keys:manage a été accordé explicitement au moment de sa création.

Corps de la requête (POST)

La création demande un nom, le type de clé (full ou restricted) et, pour une clé restreinte, la liste des scopes. Le tableau ci-dessous détaille les champs acceptés.

ChampTypeRequisDescription
namestringOuiNom lisible de la clé (ex. : "CI Pipeline prod").
key_typestringNonfull (défaut) ou restricted. Les clés restricted ne peuvent pas obtenir api_keys:manage, workspace:manage, workspace:billing, members:manage.
environmentstringNonlive (défaut) ou test. Détermine le préfixe de la clé générée.
scopesstring[]NonScopes accordés. Défaut : ["transfers:read", "transfers:write"]. Ignoré pour les clés full.
descriptionstringNonDescription libre (usage interne).
expires_in_daysnumberNonDurée de vie en jours. Omis = clé sans expiration.
allowed_ipsstring[]NonListe CIDR/IP autorisés. Omis = pas de restriction IP.
max_usesnumberNonNombre maximum d'utilisations. Omis = illimité.
mfa_codestringConditionnelCode TOTP à 6 chiffres (ou code de récupération) si la MFA est activée et que la clé cible un scope à risque élevé ou est de type full.
confirm_sensitivebooleanConditionneltrue requis à la place de mfa_code si la MFA n'est pas configurée et que la clé cible un scope à risque élevé.

Exemples d'appels

L'exemple ci-dessous crée une clé restreinte avec un jeu de scopes minimal. Choisissez votre langage.

# Créer une clé restreinte pour lire et envoyer des transferts
curl -X POST https://api.coffrify.com/v1/api-keys \
-H "Authorization: Bearer cof_live_<VOTRE_CLE>" \
-H "Content-Type: application/json" \
-d '{
"name": "Service envoi fichiers",
"key_type": "restricted",
"environment": "live",
"scopes": ["transfers:read", "transfers:write", "transfers:download"],
"expires_in_days": 90,
"description": "Cle utilisee par le service d envoi automatique."
}'
{
"id": "ak_01j9xkq2aabbccdd",
"name": "Service envoi fichiers",
"description": null,
"key_prefix": "cof_rk_live_3f8a9b2c...",
"key_type": "restricted",
"scopes": ["transfers:read", "transfers:write", "transfers:download"],
"environment": "live",
"allowed_ips": null,
"expires_at": "2026-09-04T14:23:10.000Z",
"max_uses": null,
"created_at": "2026-06-06T14:23:10.000Z",
"key": "cof_rk_live_3f8a9b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a",
"warning": "Save this key now - it will not be shown again."
}

Scopes disponibles (principaux)

Le tableau ci-dessous liste les principaux scopes et leur niveau de risque. Accordez uniquement ceux dont votre intégration a besoin (principe du moindre privilège).

ScopeRisqueDescription
transfers:readFaibleLire la liste des transferts et leurs métadonnées.
transfers:writeMoyenCréer et modifier des transferts.
transfers:downloadMoyenTélécharger les fichiers d'un transfert.
folders:readFaibleLister les dossiers.
folders:writeMoyenCréer et renommer des dossiers.
folders:manageMoyenSupprimer et déplacer des dossiers.
members:readFaibleLister les membres du workspace.
members:inviteMoyenInviter de nouveaux membres.
members:manageElevé (MFA)Gérer les rôles et retirer des membres. Interdit aux clés restricted.
webhooks:readFaibleConsulter les webhooks configurés.
webhooks:manageMoyenCréer, modifier et supprimer des webhooks.
audit:readFaibleLire le journal d'audit.
audit:exportElevé (MFA)Exporter le journal d'audit complet.
analytics:readFaibleStatistiques d'usage et quotas.
api_keys:manageElevé (MFA)Gérer les clés API. Interdit aux clés restricted.
workspace:manageElevé (MFA)Modifier les paramètres du workspace. Interdit aux clés restricted.
workspace:billingElevé (MFA)Accéder à la facturation. Interdit aux clés restricted.
HTTPCode erreurQuandRésolution
400validation_errorname absent du corps.Ajoutez le champ name (obligatoire).
400validation_errorClé restricted avec api_keys:manage, workspace:manage, workspace:billing ou members:manage.Retirez le scope interdit ou utilisez une clé full.
401missing_api_keyAucune clé porteur, ou appel sans contexte utilisateur.Ajoutez Authorization: Bearer cof_live_*.
401mfa_requiredScope à risque élevé, MFA activée, mfa_code absent ou invalide.Incluez mfa_code avec le code TOTP à 6 chiffres ou un code de récupération.
401confirm_requiredScope à risque élevé, MFA non activée, confirm_sensitive absent.Passez "confirm_sensitive": true.
403forbidden_scopeLa clé appelante ne possède pas api_keys:manage.Utilisez une clé full (cof_live_*) pour cette opération.
500internal_errorErreur base de données inattendue.Réessayez. Si le problème persiste, contactez le support Coffrify.
  • Faire votre premier appel API
  • Révoquer ou faire pivoter une clé API
  • Configurer un Webhook
  • Référence : POST /v1/api-keys
  • Référence : GET /v1/api-keys/scopes
Continuer

Autres tutoriels à suivre