Référence APIStatistiques de santé des webhooks
GET/v1/webhooks/health

Statistiques de santé des webhooks

Renvoie le taux de succès, la répartition des statuts de livraison et les latences p50/p95/p99 par webhook sur une fenêtre temporelle.

2 min de lectureTélécharger en PDF

Réponse exemple

{
"data": [
{
"total": 312,
"failed": 4,
"health": "healthy",
"pending": 0,
"success": 305,
"webhook": {
"id": "wh_8Kd2pQ7nR4xL",
"url": "https://hooks.acme.com/coffrify",
"name": "Notifications de signature",
"is_active": true,
"events_subscribed": 4
},
"retrying": 1,
"abandoned": 2,
"success_rate": 98,
"window_hours": 24,
"latency_p50_ms": 142,
"latency_p95_ms": 410,
"latency_p99_ms": 1280
},
{
"total": 0,
"failed": 0,
"health": "no_traffic",
"pending": 0,
"success": 0,
"webhook": {
"id": "wh_3Bv9mT1cW6yH",
"url": "https://internal.acme.com/events",
"name": "Sync interne",
"is_active": true,
"events_subscribed": 2
},
"retrying": 0,
"abandoned": 0,
"success_rate": null,
"window_hours": 24,
"latency_p50_ms": null,
"latency_p95_ms": null,
"latency_p99_ms": null
}
],
"since": "2026-06-04T12:00:00.000Z",
"object": "list",
"totals": {
"failed": 4,
"success": 305,
"webhooks": 2,
"deliveries": 312
},
"window_hours": 24
}
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

ChampTypeRequisDescription
hoursinteger (query)NonTaille 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

CodeQuandRésolution
401 missing_api_keyAucun en-tête Authorization fourni.Ajoutez l'en-tête Authorization: Bearer cof_live_....
401 invalid_api_keyClé 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_keyClé expirée ou révoquée/inactive.Émettez une nouvelle clé API valide.
403 scope_missingLa clé ne porte pas le scope webhooks:read.Régénérez une clé incluant le scope webhooks:read.
403 ip_not_allowedIP 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_limitedQuota 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_errorErreur serveur inattendue.Réessayez plus tard ; conservez le request_id retourné pour le support.

Voir aussi