Chaque transfert que vous créez via l'API expose un lien de partage public, le share_url, que vous remettez à vos destinataires pour qu'ils téléchargent les fichiers. Ce lien a une durée de vie, peut être plafonné en nombre de téléchargements, et reste révocable à tout instant. Ce guide détaille le champ share_url, le contrôle de l'expiration via expires_in_hours, le plafond max_downloads, la révocation par suppression, le suivi des téléchargements, ainsi que les bonnes pratiques de diffusion. Tous les appels passent par la base https://api.coffrify.com/v1 avec l'en-tête Authorization: Bearer <clé>.
Obtenir un lien de partage
Le lien naît à la création du transfert. Vous envoyez la liste des fichiers, l'API vous renvoie un objet transfer accompagné d'upload_urls (un lien d'envoi par fichier) et du share_url. Vous téléversez chaque fichier en PUT vers son URL, puis vous communiquez le share_url. Le lien est de la forme https://files.coffrify.com/<short_code>, où short_code est l'identifiant court et lisible du transfert.
/v1/transfersCrée un transfert et renvoie le share_url ainsi que les URL de téléversement. Scope requis : transfers:write.La réponse contient l'essentiel pour distribuer le lien. Le short_code se retrouve dans le share_url, et expires_at vous donne l'horodatage exact d'expiration au format ISO 8601.
Définir la durée de vie : expires_in_hours
Le champ expires_in_hours, fourni à la création, fixe la fenêtre pendant laquelle le lien reste téléchargeable. Passé ce délai, le transfert bascule en expiré et toute tentative de téléchargement est refusée. La valeur maximale dépend de votre offre : chaque plan définit une durée de rétention. Si vous omettez expires_in_hours, la valeur par défaut de votre plan s'applique. Vous lisez l'instant précis d'expiration dans le champ expires_at renvoyé par l'API.
Plafonner les téléchargements : max_downloads
Le champ max_downloads borne le nombre total de téléchargements autorisés pour un transfert, toutes personnes confondues. Une fois ce plafond atteint, le lien cesse de servir les fichiers même si la date d'expiration n'est pas dépassée. C'est utile pour un envoi nominatif que vous souhaitez limiter à un ou deux retraits. Le compteur courant est exposé dans total_downloads ; quand total_downloads atteint max_downloads, le transfert est considéré comme épuisé. Laissez max_downloads absent ou nul pour ne pas imposer de plafond.
| Champ | Rôle | Lecture côté réponse |
|---|---|---|
| expires_in_hours | Durée de vie du lien en heures (à la création) | expires_at (horodatage ISO) |
| max_downloads | Nombre maximal de téléchargements autorisés | max_downloads |
| total_downloads | (lecture seule) téléchargements déjà effectués | total_downloads |
Prolonger un lien encore actif
Si un destinataire a besoin de plus de temps, vous pouvez repousser l'expiration sans recréer le transfert ni changer le share_url. Appelez l'endpoint d'extension avec soit hours (un nombre d'heures à partir de maintenant), soit until (un horodatage ISO 8601 cible). La nouvelle échéance reste bornée par la rétention de votre plan ; au-delà, l'API renvoie une erreur de validation indiquant le plafond applicable.
/v1/transfers/{id}/extendRepousse l'expiration d'un transfert. Corps : { hours } ou { until }. Scope requis : transfers:write.Révoquer un lien : la suppression
Pour couper l'accès immédiatement, supprimez le transfert. La suppression révoque le share_url : les téléchargements en cours et futurs sont refusés. C'est l'action à privilégier si un lien a été diffusé par erreur ou si l'envoi ne doit plus être accessible avant son expiration naturelle.
/v1/transfers/{id}Supprime le transfert et révoque son lien de partage. Scope requis : transfers:write.Suivre les téléchargements
Deux niveaux de suivi sont disponibles. Pour un état rapide, lisez le transfert : total_downloads vous indique combien de retraits ont eu lieu, et status plus expires_at vous disent si le lien est encore actif. Pour le détail événement par événement, l'endpoint des téléchargements liste chaque retrait avec son horodatage, son pays, son système et son navigateur.
/v1/transfers/{id}/downloadsListe les événements de téléchargement d'un transfert (horodatage, pays, OS, navigateur). Paramètres : limit, offset. Scope requis : downloads:read.Si vous ne disposez que d'un share_url ou d'un short_code et souhaitez connaître l'état d'un lien (actif, expiré, plafond atteint, supprimé), l'endpoint de résolution renvoie un bloc state synthétique. Il ne révèle que les transferts de votre propre espace de travail.
Bonnes pratiques de diffusion
- Transmettez le
share_urlpar un canal de confiance et, pour les contenus sensibles, ajoutez un mot de passe via le champpasswordà la création ; communiquez-le séparément du lien. - Combinez une expiration courte (
expires_in_hours) et un plafond serré (max_downloads) pour les envois nominatifs : le lien se referme de lui-même. - Conservez l'
iddu transfert de votre côté : c'est lui qui vous permet de prolonger, suivre ou révoquer le lien plus tard. - Surveillez
total_downloadsou les événements de téléchargement pour confirmer la bonne réception avant de laisser le lien expirer. - En cas de doute sur un lien diffusé, supprimez le transfert sans attendre l'expiration : la révocation est immédiate.
- Utilisez une
Idempotency-Keysur la création pour éviter de générer deux transferts (donc deux liens) si une requête est rejouée.