Réponse exemple
GET/v1/webhooks/healthTableau de bord de santé agrégé pour tous les webhooks du workspace.Renvoie, pour chaque webhook du workspace, un récapitulatif de santé calculé sur une fenêtre glissante : volume total de livraisons, répartition par statut (success, failed, retrying, abandoned, pending), taux de succès, et latences au 50e, 95e et 99e percentile. Chaque entrée porte un indicateur health synthétique (healthy, degraded, critical ou no_traffic) qui facilite la supervision. Les webhooks sans aucune livraison sur la période apparaissent quand même dans la liste, avec des compteurs à zéro et health à no_traffic.
L'endpoint est classé expensive (il scanne jusqu'à 50 000 livraisons) et consomme donc le quota de débit des endpoints coûteux. L'idempotence est désactivée puisqu'il s'agit d'une lecture pure.
Authentification
Requiert une clé API valide portant le scope webhooks:read. Une clé sans ce scope reçoit une réponse 403 scope_missing. Le périmètre des résultats est automatiquement limité au workspace associé à la clé : aucun identifiant de workspace n'est à fournir.
Paramètres de requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| hours | integer (query) | Non | Taille de la fenêtre d'analyse en heures, comptée à rebours depuis l'instant courant. Valeur par défaut 24. Bornée côté serveur entre 1 et 168 (7 jours) : toute valeur hors plage est ramenée à la borne la plus proche, et une valeur non numérique retombe sur 24. |
Réponse
Retourne un objet list (object: "list"). Le tableau data contient une entrée par webhook ; le champ window_hours (au niveau racine et dans chaque entrée) rappelle la fenêtre appliquée, et since donne l'horodatage ISO 8601 du début de fenêtre.
Dans chaque entrée de data : l'objet webhook décrit l'endpoint (id, name, url, is_active, events_subscribed = nombre d'événements abonnés). Les compteurs total, success, failed, retrying, abandoned, pending ventilent les livraisons par statut. success_rate est un pourcentage entier arrondi (ou null en l'absence de trafic). Les champs latency_p50_ms, latency_p95_ms et latency_p99_ms donnent les latences de livraison en millisecondes (ou null si aucune durée n'a été mesurée). health vaut healthy (taux de succès ≥ 95 %), degraded (≥ 50 %), critical (< 50 %) ou no_traffic (aucune livraison).
L'objet racine totals agrège l'ensemble : nombre de webhooks, total de deliveries, et cumuls success / failed.
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 missing_api_key | Aucun en-tête Authorization fourni. | Ajoutez l'en-tête Authorization: Bearer cof_live_.... |
| 401 invalid_api_key | Clé inconnue ou format de credential non reconnu. | Vérifiez la clé ou générez-en une nouvelle sur app.coffrify.com/developer. |
| 401 expired_api_key / revoked_api_key | Clé expirée ou révoquée/inactive. | Émettez une nouvelle clé API valide. |
| 403 scope_missing | La clé ne porte pas le scope webhooks:read. | Régénérez une clé incluant le scope webhooks:read. |
| 403 ip_not_allowed | IP appelante hors de la liste d'autorisation de la clé. | Appelez depuis une IP autorisée ou ajustez la liste d'IP de la clé. |
| 429 rate_limited | Quota de débit du workspace dépassé (endpoints expensive). | Respectez l'en-tête Retry-After puis relancez ; espacez les appels coûteux. |
| 500 internal_error | Erreur serveur inattendue. | Réessayez plus tard ; conservez le request_id retourné pour le support. |
Voir aussi
- GET /v1/webhooks : lister les webhooks configurés du workspace.
- GET /v1/webhooks/{id}/deliveries : inspecter le détail des livraisons d'un webhook.
- POST /v1/webhooks/{id}/rotate-secret : faire tourner le secret de signature d'un webhook.