Référence APIRécupérer un coffre
GET/v1/coffres/{id}

Récupérer un coffre

Renvoie un coffre avec ses sections et ses éléments, organisés hiérarchiquement.

2 min de lectureTélécharger en PDF

Requête exemple

"null"

Réponse exemple

"{\"id\":\"a1f3c8e2-7b9d-4e6a-9c2f-1d3b5a7e9f04\",\"workspace_id\":\"3d9b2a14-6c8e-4f1a-bd72-0a5e9c3f1b88\",\"user_id\":\"6e2a1c47-9f3b-4d8a-a1c5-7b2e4f6d9a03\",\"slug\":\"due-diligence-projet-atlas\",\"title\":\"Data Room - Projet Atlas\",\"description\":\"Documents de due diligence pour l'acquisition.\",\"cover_color\":\"#5d50ec\",\"cover_emoji\":\"🗄️\",\"status\":\"active\",\"is_password_protected\":true,\"require_email_verification\":true,\"allowed_emails\":[\"investisseur@fonds.com\",\"conseil@cabinet.fr\"],\"expires_at\":\"2026-09-30T23:59:59.000Z\",\"view_count\":42,\"unique_viewers\":7,\"watermark_enabled\":true,\"watermark_text\":\"Confidentiel - {{email}}\",\"require_nda\":true,\"nda_text\":\"Accord de confidentialité...\",\"created_at\":\"2026-05-26T10:14:00.000Z\",\"updated_at\":\"2026-06-04T08:30:00.000Z\",\"sections\":[{\"id\":\"7c1e9b34-2a6d-4f8e-bc15-9d3a0e7f2b51\",\"title\":\"Juridique\",\"description\":\"Statuts, contrats, litiges\",\"position\":0,\"is_visible\":true,\"created_at\":\"2026-05-26T10:20:00.000Z\",\"items\":[{\"id\":\"b5d2a9f1-3e7c-4a8b-9f01-6c4e2d8a3b70\",\"section_id\":\"7c1e9b34-2a6d-4f8e-bc15-9d3a0e7f2b51\",\"kind\":\"transfer\",\"transfer_id\":\"e9f1c3a7-5b2d-4e8a-bc06-1f3a9d7e2c84\",\"external_url\":null,\"markdown_content\":null,\"custom_title\":\"Contrats clients (12 fichiers)\",\"custom_description\":null,\"thumbnail_url\":null,\"position\":0,\"is_visible\":true,\"created_at\":\"2026-05-26T10:25:00.000Z\",\"coffrify_transfers\":{\"id\":\"e9f1c3a7-5b2d-4e8a-bc06-1f3a9d7e2c84\",\"short_code\":\"atlas-juridique\",\"transfer_title\":\"Contrats clients\",\"status\":\"active\",\"expires_at\":\"2026-09-30T23:59:59.000Z\",\"total_size_bytes\":48211456,\"encryption_mode\":\"server\"}}]}],\"orphan_items\":[{\"id\":\"c8a3f2e9-1d6b-4c7a-8e05-3b9f1a7d2c46\",\"section_id\":null,\"kind\":\"markdown\",\"transfer_id\":null,\"external_url\":null,\"markdown_content\":\"# Bienvenue\\nMerci de consulter cette data room.\",\"custom_title\":\"Note d'introduction\",\"custom_description\":null,\"thumbnail_url\":null,\"position\":0,\"is_visible\":true,\"created_at\":\"2026-05-26T10:30:00.000Z\",\"coffrify_transfers\":null}]}"

Récupère un coffre unique par son identifiant (id au format UUID), accompagné de sa structure complète. À la différence d'un simple enregistrement, cet endpoint renvoie le coffre hydraté : ses sections ordonnées par position, et pour chaque section ses items correspondants. Les items rattachés à aucune section (section_id à null) sont regroupés à part dans le tableau orphan_items. Chaque item de type transfert est enrichi des métadonnées du transfert lié (short_code, status, expires_at, etc.). Le coffre est toujours résolu dans le périmètre du workspace de la clé API : un id valide mais appartenant à un autre workspace renvoie 404.

Authentification

Cet endpoint exige une clé API disposant du scope transfers:read. La requête est automatiquement cantonnée au workspace associé à la clé : tous les coffres, sections et items sont filtrés sur le workspace_id du contexte d'authentification. Une clé sans ce scope reçoit une erreur scope_missing (HTTP 403).

Paramètres de chemin

ParamètreTypeRequisDescription
idstring (uuid)OuiIdentifiant unique du coffre. Fourni dans le chemin de l'URL. Un identifiant vide renvoie une erreur validation_error (400).

Réponse

La réponse est l'objet coffre complet (tous les champs de la table) augmenté de deux propriétés calculées. Les champs principaux du coffre incluent : id, workspace_id, slug, title, description, cover_color (hex, par défaut #5d50ec), cover_emoji, status (draft, active ou archived), les réglages de contrôle d'accès (is_password_protected, require_email_verification, allowed_emails), l'expiration (expires_at), les compteurs d'analytique dénormalisés (view_count, unique_viewers), le filigrane (watermark_enabled, watermark_text), la barrière NDA (require_nda, nda_text) et les horodatages (created_at, updated_at).

Note : le champ password_hash existe en base mais n'est jamais exposé. Les deux propriétés ajoutées sont :

  • sections : tableau des sections triées par position croissant. Chaque section porte id, title, description, position, is_visible, created_at et un sous-tableau items contenant ses items.
  • orphan_items : tableau des items sans section (section_id = null), triés par position. Chaque item expose notamment kind, transfer_id, external_url, markdown_content, custom_title, custom_description, thumbnail_url, position, is_visible, et, s'il référence un transfert, l'objet imbriqué coffrify_transfers (id, short_code, transfer_title, status, expires_at, total_size_bytes, encryption_mode).

Erreurs

Code HTTPCode d'erreurQuandComment résoudre
400validation_errorL'id du coffre est absent ou vide dans le chemin.Fournir un identifiant de coffre valide dans l'URL.
401missing_api_key / invalid_api_keyClé API absente, malformée, expirée ou révoquée.Envoyer un en-tête Authorization: Bearer avec une clé valide et active.
403scope_missingLa clé API ne possède pas le scope transfers:read.Émettre ou utiliser une clé disposant du scope transfers:read.
404not_foundAucun coffre avec cet id dans le workspace de la clé.Vérifier l'id et que le coffre appartient bien au workspace de la clé.
429rate_limitedQuota de requêtes dépassé pour la clé.Respecter les en-têtes de limitation et réessayer après le délai indiqué.
500internal_errorErreur côté base de données lors de la lecture du coffre, des sections ou des items.Réessayer ; si l'erreur persiste, contacter le support avec l'id du coffre.

Voir aussi

PATCH/v1/coffres/{id}Met à jour les champs d'un coffre (titre, statut, accès, filigrane, NDA). Scope requis : transfers:write.GET/v1/coffresListe les coffres du workspace. Scope requis : transfers:read.
GET/v1/coffres/{id}/itemsRécupère les items d'un coffre indépendamment de la vue hydratée. Scope requis : transfers:read.