Ce guide vous fait créer votre premier transfert de fichiers chiffré avec Coffrify, de la clé d'API au lien de partage, en quelques minutes. Le principe est toujours le même : vous décrivez les fichiers à l'API, elle vous renvoie des URL de téléversement signées, vous y déposez chaque fichier, puis vous partagez l'URL publique. Vous pouvez tout faire au choix avec le SDK JavaScript ou directement en REST. Tous les exemples utilisent une clé de test (cof_test_), sans facturation ni impact sur vos données de production.
Avant de commencer
Récupérez une clé d'API dans votre espace de travail, sous Console > Clés d'API. Pour ce guide, créez une clé de test avec le scope transfers:write (et transfers:read si vous voulez ensuite lister vos transferts). Une clé de test commence par cof_test_ ; basculez vers cof_live_ quand vous passez en production. La clé n'est affichée qu'une seule fois à sa création : conservez-la dans un gestionnaire de secrets, jamais dans votre code source ni côté navigateur.
L'API est accessible sur https://api.coffrify.com/v1. Chaque appel s'authentifie avec l'en-tête Authorization: Bearer <votre_clé>. Vos données sont hébergées dans l'Union européenne, en conformité RGPD.
Vérifier votre clé
Avant de créer quoi que ce soit, validez que votre clé fonctionne avec un appel en lecture sur /v1/me. La réponse contient votre espace de travail, l'environnement résolu (test ici) et les scopes de la clé.
/v1/meRetourne le contexte de la clé d'API : espace de travail, environnement et scopes.Installer le SDK (optionnel)
Un SDK officiel existe aujourd'hui uniquement pour JavaScript / TypeScript (package @coffrify/sdk). Il fonctionne sous Node 18+, Deno, Bun, les navigateurs récents, Cloudflare Workers et Vercel Edge. Les SDK Python, Go, Ruby, PHP, Rust, Java et .NET arrivent bientôt : en attendant, appelez l'API REST directement, comme dans les onglets curl ci-dessous.
Créer un transfert
Pour créer un transfert, vous décrivez chaque fichier par son name, sa size (en octets) et son mime_type. Vous pouvez ajouter des options : expires_in_hours pour la durée de validité, max_downloads pour plafonner les téléchargements, recipient pour l'adresse du destinataire, password pour protéger l'accès, et transfer_title pour un libellé lisible. Par défaut, vos fichiers sont chiffrés côté serveur en AES-256-GCM.
/v1/transfersCrée un transfert et renvoie les URL de téléversement signées ainsi que le lien de partage. Scope requis : transfers:write.La réponse (201) contient l'objet transfer (avec id, short_code, status et expires_at), un tableau upload_urls (un objet { file_id, url, headers } par fichier, dans le même ordre que files), et le share_url à partager une fois les fichiers déposés.
Téléverser chaque fichier
Pour chaque entrée de upload_urls, envoyez le contenu du fichier en PUT vers son url, en reprenant exactement les headers fournis. Tant qu'au moins un fichier n'est pas téléversé, le transfert reste inutilisable : c'est seulement après le dépôt que le lien de partage devient actif. Faites correspondre chaque upload_urls[i] au fichier files[i] du même indice.
Partager le lien
Une fois tous les fichiers déposés, transmettez le share_url à votre destinataire (par exemple https://files.coffrify.com/abc123). Si vous avez défini un password, communiquez-le par un canal distinct. Le lien respecte la durée expires_in_hours et le plafond max_downloads que vous avez fixés à la création.
Bonnes pratiques dès le départ
- Envoyez un en-tête
Idempotency-Key(8 à 255 caractères) sur chaque écriture : un rejeu renvoie la même réponse avecX-Coffrify-Idempotent-Replay: true, et la même clé avec un corps différent renvoie409. - Surveillez les en-têtes
X-RateLimit-Limit,X-RateLimit-RemainingetX-RateLimit-Reset; sur un429, respectezRetry-Afteravant de réessayer. - En cas d'erreur, lisez l'enveloppe
{ "error": { "code", "message", "request_id" } }; conservez lerequest_id(aussi renvoyé dans l'en-têteX-Request-Id) pour le support. - Démarrez avec une clé
cof_test_, puis remplacez-la par une clécof_live_pour la production, sans changer votre code.
Vous avez créé, téléversé et partagé votre premier transfert chiffré. Pour aller plus loin, listez vos transferts avec GET /v1/transfers, recevez des fichiers via la Réception (POST /v1/intakes), ou réagissez aux événements en temps réel avec les Webhooks.