L'API Coffrify expose des listes (transferts, rooms, collections) qui peuvent contenir plusieurs centaines voire milliers d'objets. Pour les parcourir de façon fiable, tous les endpoints GET /v1/* utilisent la pagination par curseur : au lieu d'un numéro de page, vous passez un jeton opaque (cursor) qui pointe exactement sur la dernière ligne lue. Ce mécanisme est stable sous les insertions concurrentes (aucune ligne dupliquée, aucune ligne sautée) et performant (recherche par index, sans COUNT(*)). Chaque réponse contient le champ next_cursor : tant qu'il est non nul, il existe une page suivante.
/v1/transfersListe les transferts du workspace, triés par date de création décroissante. Paramètres de pagination : `cursor`, `limit` (défaut 20, max 100). Filtres optionnels : `status`, `folder_id`, `scan_status`, `search`.GET/v1/roomsListe les rooms du workspace (espaces partagés persistants), triées par date de création décroissante. Retourne jusqu'à 200 rooms sans pagination par curseur.GET/v1/collectionsListe les collections du workspace (bundles partageables de transferts), triées par date de création décroissante. Retourne la liste complète sans pagination par curseur.Authentification
Incluez votre clé API dans l'en-tête Authorization: Bearer <votre_clé>. Pour lire des transferts, la clé doit posséder le scope transfers:read. Pour les rooms, le scope rooms:read. Pour les collections, le scope collections:read. Les clés de test (cof_test_…) et sandbox (cof_sandbox_…) n'exposent que les ressources créées dans leur environnement respectif : une clé live (cof_live_…) ne verra jamais les ressources sandbox.
Paramètres de pagination
La pagination par curseur repose sur deux paramètres : limit (taille de page) et cursor (position de reprise). Le tableau ci-dessous les détaille.
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
cursor | string | absent | Jeton opaque retourné par next_cursor de la page précédente. Absent = première page. |
limit | integer | 20 | Nombre d'objets par page. Minimum 1, maximum 100. |
offset | integer | 0 | Décalage numérique (rétrocompatibilité uniquement). Ignoré si cursor est fourni. |
Exemple : parcourir tous les transferts
L'exemple ci-dessous parcourt l'intégralité d'une liste page par page, en suivant le next_cursor jusqu'à épuisement. Choisissez votre langage.
Structure de la réponse
Les champs de pagination dans la réponse sont les suivants : object vaut toujours "list" ; data contient les objets de la page courante ; next_cursor est le jeton à passer au prochain appel (il est null sur la dernière page) ; has_more est un alias booléen de next_cursor !== null, conservé pour la rétrocompatibilité ; limit rappelle la limite demandée.
Codes d'erreur
Les erreurs portent surtout sur un curseur invalide (expiré ou falsifié) ou un limit hors bornes. Le tableau ci-dessous indique la résolution.
| HTTP | Code | Quand | Résolution |
|---|---|---|---|
| 401 | invalid_api_key | Clé absente, malformée ou révoquée. | Vérifiez que l'en-tête Authorization contient une clé cof_live_…, cof_test_… ou cof_sandbox_… valide. |
| 403 | scope_missing | La clé ne possède pas le scope requis (transfers:read, rooms:read ou collections:read). | Rééditez la clé depuis le tableau de bord en ajoutant le scope manquant. |
| 422 | validation_error | limit inférieur à 1 ou supérieur à 100, ou curseur malformé. | Corrigez les paramètres. Un curseur invalide est silencieusement ignoré et déclenche un retour à la première page. |
| 500 | internal_error | Erreur base de données inattendue. | Réessayez après quelques secondes. Si le problème persiste, consultez la page de statut Coffrify. |
Voir aussi
- Créer votre première clé API
- Envoyer un transfert via l'API
- Filtrer les transferts par statut ou dossier
- Référence : GET /v1/transfers
- Référence : GET /v1/rooms
- Référence : GET /v1/collections