Réponse exemple
GET/v1/diagnostics/audit-trail/{id}Liste les événements de la piste d'audit rattachés à un transfert.Cet endpoint renvoie l'intégralité des événements d'audit liés à un transfert identifié par son id. Avant toute lecture, le handler vérifie la propriété du transfert : le transfert doit appartenir au workspace de la clé API appelante, faute de quoi une erreur 404 est renvoyée (les transferts d'autres workspaces sont donc invisibles). La recherche d'événements est large : elle remonte non seulement les entrées dont resource_id correspond à l'identifiant du transfert, mais aussi celles dont les métadonnées contiennent ce même transfer_id ou le short_code du transfert. Les résultats sont triés par date décroissante (created_at) et plafonnés à 500 entrées.
Authentification
Requiert une clé API valide disposant du scope audit:read. Une clé sans ce scope reçoit une erreur 403 avec le code scope_missing. L'authentification se fait via l'en-tête Authorization: Bearer cof_live_... (ou cof_test_..., cof_rk_..., cof_mcp_...).
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string | Oui | Identifiant du transfert dont on veut la piste d'audit. Il est extrait du dernier segment de l'URL et utilisé pour vérifier la propriété puis pour filtrer les événements. |
Réponse
La réponse est un objet de type liste. Le champ transfer_id rappelle l'identifiant interrogé, object vaut toujours "list", et data est le tableau des événements. Chaque événement expose son id, son action (le type d'événement audité, par exemple transfer.created ou transfer.downloaded), l'actor_type et l'actor_id (qui a déclenché l'action), l'horodatage created_at, ainsi que l'objet metadata contenant le contexte additionnel de l'événement.
| Champ | Type | Description |
|---|---|---|
| transfer_id | string | Identifiant du transfert interrogé (repris du chemin). |
| object | string | Toujours "list". |
| data | array | Tableau des événements d'audit, triés du plus récent au plus ancien (max 500). |
| data[].id | string | Identifiant de l'entrée d'audit. |
| data[].action | string | Type d'action auditée. |
| data[].actor_type | string | Nature de l'acteur (ex. api_key, user). |
| data[].actor_id | string | null | Identifiant de l'acteur ayant déclenché l'action. |
| data[].created_at | string (ISO 8601) | Date et heure de l'événement. |
| data[].metadata | object | Contexte additionnel de l'événement (peut contenir transfer_id, short_code, etc.). |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 missing_api_key | En-tête Authorization absent. | Ajoutez Authorization: Bearer cof_live_.... |
| 401 invalid_api_key | Clé API invalide ou mal formée. | Vérifiez le format et la validité de la clé. |
| 403 scope_missing | La clé n'a pas le scope audit:read. | Émettez une clé incluant le scope audit:read. |
| 404 not_found | Le transfert n'existe pas ou n'appartient pas au workspace. | Vérifiez l'id et que le transfert appartient bien au workspace de la clé. |
| 429 rate_limited | Quota de requêtes par minute dépassé pour le workspace. | Patientez selon l'en-tête Retry-After puis réessayez. |
| 500 internal_error | Erreur lors de la lecture du journal d'audit. | Réessayez ; si le problème persiste, contactez le support avec le request_id. |
Voir aussi
- GET /v1/transfers/{id} : récupérer le détail d'un transfert.
- GET /v1/transfers : lister les transferts du workspace.
GET /v1/diagnostics: diagnostics et observabilité du workspace.