Événements

Webhooks

Envoyez les événements de déploiement, de mise à l'échelle et d'incident vers vos endpoints, signés et relancés.

Livraisons
  1. 1→ deploy.succeeded
  2. 2 POST hooks.example.com/deploys
  3. 3 ← 200 OK en 84 ms
  4. 4→ service.scaled
  5. 5 POST hooks.example.com/scale
  6. 6 ← 200 OK en 61 ms

POST /v1/webhooks

Enregistrer un endpoint

Choisissez les événements à envoyer et récupérez un secret de signature. L'endpoint reçoit des événements immédiatement.

  • L'URL doit utiliser HTTPS
  • Indiquez des noms d'événements, ou * pour tous
  • Le secret n'est affiché qu'une fois
curl https://api.example.com/v1/webhooks \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://hooks.example.com/deploys", "events": ["deploy.succeeded", "deploy.failed"]}'
Réponse201 Created
{
  "id": "wh_3c81d0",
  "object": "webhook",
  "url": "https://hooks.example.com/deploys",
  "events": ["deploy.succeeded", "deploy.failed"],
  "secret": "whsec_9f4e...",
  "status": "active",
  "created_at": "2026-10-11T09:24:13Z"
}

GET /v1/webhooks/:id/deliveries

Lister les livraisons

Voyez ce qui a été envoyé, ce qui est revenu et le temps de réponse. Les plus récentes en premier.

  • Filtrez par statut, par exemple failed
  • Paginez avec limit et cursor
  • Conservées 30 jours
curl "https://api.example.com/v1/webhooks/wh_3c81d0/deliveries?status=failed&limit=2" \
  -H "Authorization: Bearer $API_TOKEN"
Réponse200 OK
{
  "object": "list",
  "data": [
    {
      "id": "dlv_81a7",
      "event": "deploy.failed",
      "status": "failed",
      "response_code": 503,
      "attempts": 3,
      "next_retry_at": "2026-10-11T09:40:00Z"
    }
  ],
  "next_cursor": null
}

POST /v1/deliveries/:id/resend

Renvoyer une livraison

Endpoint corrigé ? Renvoyez la même charge utile avec une nouvelle signature.

  • Même identifiant d'événement : vos handlers restent idempotents
  • Fonctionne pour toute livraison du journal
  • Répond dès que la requête est en file d'attente
curl -X POST https://api.example.com/v1/deliveries/dlv_81a7/resend \
  -H "Authorization: Bearer $API_TOKEN"
Réponse202 Accepted
{
  "id": "dlv_81a7",
  "object": "delivery",
  "status": "queued",
  "attempts": 4
}

Des événements sur lesquels construire

Chaque changement sur la plateforme peut atteindre votre messagerie, votre outil d'incidents ou votre propre service.

  • Charges utiles signées

    Chaque requête porte un en-tête de signature : votre endpoint peut rejeter tout ce qu'il n'attendait pas.

  • Relances automatiques

    Les livraisons en échec sont relancées avec un délai croissant pendant 24 heures avant la mise en pause de l'endpoint.

  • Filtres d'événements

    Abonnez un endpoint aux seuls événements dont il a besoin.

  • Journal des livraisons

    Inspectez chaque requête et réponse, puis renvoyez n'importe quelle livraison en un appel.

Types d’événements

Les événements sont nommés ressource.action, si bien qu’un endpoint peut suivre tout un pan de la plateforme. Les plus utilisés sont deploy.succeeded, deploy.failed, service.scaled et incident.opened. Chaque charge utile inclut l’espace de travail, le service et un lien vers le tableau de bord.

Vérifier les signatures

Chaque requête contient un en-tête Webhook-Signature : un horodatage et un HMAC du corps brut, calculé avec le secret de l’endpoint. Comparez-le à votre propre HMAC et rejetez les requêtes de plus de cinq minutes pour bloquer les rejeux.

Relances et ordre

Une livraison réussit quand votre endpoint répond avec un statut 2xx en moins de dix secondes. Tout le reste est relancé avec un délai croissant pendant 24 heures. Les événements peuvent arriver dans le désordre : utilisez le champ created_at et l’identifiant de l’événement plutôt que l’heure d’arrivée.

Offre gratuite · Sans carte bancaire

Poussez votre code aujourd'hui. En ligne avant que votre café refroidisse.

Connectez un dépôt, choisissez une région et obtenez une URL de production avec HTTPS, logs et autoscaling déjà activés.

$ git push origin main

  1. Build34 s
  2. Déploiement12 s
  3. Contrôles de santé3 s

your-app.example.com

Buy NowTheme Details