Ce tutoriel vous guide pas à pas pour réaliser votre tout premier transfert avec l'API Coffrify. Vous allez créer un transfert avec POST /v1/transfers, téléverser le contenu de vos fichiers directement vers le stockage, puis récupérer un lien de partage prêt à envoyer. Vos données restent en Union européenne et sont chiffrées (AES-256-GCM côté serveur par défaut). Comptez quelques minutes : à la fin, vous aurez un lien share_url fonctionnel et vous saurez fixer une expiration, un nombre de téléchargements et un mot de passe.
Étape 1 : récupérer une clé API
Toutes les requêtes s'authentifient avec un jeton porteur dans l'en-tête Authorization: Bearer <clé>. Générez une clé depuis votre console Coffrify. Le préfixe indique l'environnement : cof_test_ pour le bac à sable de test, cof_live_ pour la production. Pour suivre ce guide sans facturation ni effet de bord, utilisez une clé cof_test_ ou une clé cof_sandbox_ (environnement isolé, purgé après 24 h). La création d'un transfert exige le scope transfers:write ; la lecture exige transfers:read.
Étape 2 : créer le transfert
POST/v1/transfersDéclare un transfert et renvoie des URLs de téléversement signées, une par fichier, ainsi que le lien de partage.Vous décrivez les fichiers à l'avance dans le tableau files, chacun avec son name, sa taille size en octets et son mime_type. Les autres champs sont facultatifs : expires_in_hours (durée de vie), max_downloads (plafond de téléchargements), password (protection par mot de passe), recipient (e-mail du destinataire) et transfer_title (libellé lisible). La base de l'API est https://api.coffrify.com/v1.
| Champ | Type | Obligatoire | Description | |
|---|---|---|---|---|
| files | array | Oui | Liste des fichiers, chacun { name, size, mime_type } (taille en octets). | _ |
| expires_in_hours | number | Non | Durée de validité du lien, en heures. | _ |
| max_downloads | number | Non | Nombre maximal de téléchargements autorisés. | _ |
| password | string | Non | Mot de passe exigé au téléchargement. | _ |
| recipient | string | Non | E-mail du destinataire (pour le suivi et la notification). | _ |
| transfer_title | string | Non | Titre lisible du transfert. | _ |
La réponse a un statut 201 et contient trois éléments clés : l'objet transfer (avec id, short_code, status, expires_at), le tableau upload_urls (une entrée par fichier, dans le même ordre que files), et le share_url à partager une fois le téléversement terminé.
Étape 3 : téléverser chaque fichier en PUT
Pour chaque entrée de upload_urls, envoyez le contenu binaire du fichier correspondant par une requête PUT vers son url. Reproduisez systématiquement les en-têtes fournis dans headers (par exemple Content-Type) : ils font partie de l'URL signée et le téléversement échoue s'ils manquent. La correspondance se fait par l'ordre du tableau, et file_id reprend le nom du fichier déclaré.
Étape 4 : partager le lien
Une fois tous les fichiers téléversés, le transfert est prêt. Communiquez le share_url (forme https://files.coffrify.com/<short_code>) à votre destinataire par le canal de votre choix. Si vous avez renseigné recipient, Coffrify peut aussi notifier cette adresse. Le destinataire ouvre le lien, saisit le mot de passe le cas échéant, puis télécharge.
Étape 5 : vérifier le transfert
Contrôlez l'état à tout moment avec GET /v1/transfers/{id} : vous obtenez le transfert complet, sa liste de fichiers, le nombre de téléchargements déjà consommés et la date d'expiration. Pour parcourir l'historique, GET /v1/transfers renvoie une liste paginée par curseur (limit jusqu'à 100, plus cursor, has_more et next_cursor).
/v1/transfers/{id}Récupère le détail d'un transfert : statut, expiration, compteurs de téléchargement et fichiers.Aller plus loin : expiration et mot de passe
Vous contrôlez la durée de vie et l'accès dès la création. expires_in_hours fixe l'expiration (par exemple 24 pour une journée, 168 pour sept jours) ; passé ce délai, le lien cesse de fonctionner. max_downloads borne le nombre de récupérations. password impose un mot de passe au téléchargement : transmettez-le au destinataire par un canal distinct du lien. Combinés, ces trois réglages donnent un transfert à durée limitée, à diffusion plafonnée et protégé.
En cas d'erreur, l'API renvoie un corps {"error":{"code","message","request_id"}} ; le même request_id figure dans l'en-tête X-Request-Id, à citer si vous contactez le support. Les codes les plus courants ici sont invalid_api_key (clé absente ou révoquée), scope_missing (la clé n'a pas transfers:write), validation_error (un champ comme files est manquant ou invalide), not_found (transfert inconnu) et rate_limited (trop de requêtes : consultez l'en-tête Retry-After). Vous savez désormais créer, téléverser, partager et vérifier un transfert de bout en bout.