Réponse exemple
GET/v1/webhooks/events/by-familyRenvoie les types d'événements du catalogue, filtrés par famille, avec le décompte global par famille.Cet endpoint expose le catalogue d'événements webhook de Coffrify. Il sert à découvrir quels types d'événements (par exemple transfer.created, coffre.accessed, member.invited) peuvent être souscrits sur un endpoint webhook. Sans paramètre, il renvoie l'intégralité du catalogue ; avec le paramètre family, il ne retourne que les événements de la famille demandée. Dans tous les cas, la réponse inclut un récapitulatif families listant chaque famille existante et son nombre d'événements, trié par décompte décroissant. Le catalogue est statique (source de vérité côté serveur) : aucune donnée propre au workspace n'est lue.
Comportement notable : un family inconnu ne produit pas d'erreur ; il renvoie simplement une liste data vide (total: 0), tout en conservant le récapitulatif complet families. C'est utile pour valider côté client qu'une famille existe avant de proposer un abonnement.
Authentification
Requête authentifiée par clé API valide via l'en-tête Authorization: Bearer cof_live_.... Le scope webhooks:read est requis. Une clé sans ce scope reçoit une erreur 403 scope_missing.
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| family | string (query) | Non | Filtre les événements sur une famille précise. Valeurs possibles : transfer, workspace, member, api_key, api_token, webhook, scim, saml, audit, gdpr, system, collection, coffre, request, domain, billing, session, rule. Absent : renvoie tout le catalogue. Inconnu : renvoie data vide. |
Réponse
La réponse est un objet list (object: "list"). Le tableau data contient les entrées du catalogue filtrées ; chaque entrée porte type (identifiant de l'événement), family, description, stability (toujours "stable") et, le cas échéant, required_plan (free / pro / ultra / entreprise) lorsqu'un plan minimum est exigé pour recevoir l'événement. Le champ total indique le nombre d'éléments dans data. Le tableau families récapitule, indépendamment du filtre, chaque famille (family) et son nombre d'événements (count), trié par count décroissant. Enfin, filter.family reflète le filtre appliqué (null si aucun).
| Champ | Type | Description |
|---|---|---|
| object | string | Toujours "list". |
| data | array | Entrées du catalogue filtrées : type, family, description, stability, required_plan?. |
| total | number | Nombre d'éléments dans data. |
| families | array | Récapitulatif { family, count } de toutes les familles, trié par count décroissant (non affecté par le filtre). |
| filter.family | string | null | Famille demandée, ou null si aucun filtre. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 missing_api_key | En-tête Authorization absent. | Ajouter Authorization: Bearer cof_live_.... |
| 401 invalid_api_key | Clé inconnue ou mal formée (préfixe cof_ invalide). | Vérifier la clé et son préfixe (cof_live_ / cof_test_...). |
| 401 expired_api_key | Clé arrivée à expiration. | Émettre une nouvelle clé API. |
| 401 revoked_api_key | Clé révoquée ou inactive. | Régénérer une clé valide. |
| 403 scope_missing | La clé n'a pas le scope webhooks:read. | Ajouter le scope webhooks:read à la clé. |
| 403 ip_not_allowed | IP appelante hors de la liste autorisée de la clé. | Appeler depuis une IP autorisée ou ajuster la liste. |
| 429 rate_limited | Quota par minute du workspace dépassé (endpoints read). | Patienter selon l'en-tête Retry-After puis réessayer. |
Voir aussi
- GET /v1/webhooks/events — catalogue complet des types d'événements (sans regroupement par famille).
- POST /v1/webhooks — créer un endpoint webhook et y abonner des types d'événements.
- POST /v1/webhooks/{id}/rotate-secret — faire pivoter le secret de signature d'un endpoint.