Webhooks
Abonnez-vous aux changements plutôt que de les interroger. Un webhook ne coûte rien sur votre quota de requêtes, ce qui le rend bien moins cher que de relire un marché à intervalle régulier.
/v1/api/webhookswebhooks:manageLister les webhooks
Tous les endpoints enregistrés par votre organisation.
Le secret de signature n'est jamais inclus. Il est affiché une seule fois à la création de l'endpoint, et une liste qui le renverrait le remettrait à quiconque peut lire cet appel.
Réponse
{
"data": [
{
"id": "whk_1b7e6c19a139404cb173d23fcb3331c4",
"url": "https://example.com/hooks/skautik",
"events": ["property.created", "property.withdrawn"],
"active": true,
"created_at": "2026-08-13T10:43:37Z",
"updated_at": "2026-08-13T10:43:37Z"
}
]
}https://api.skautik.com/v1/api/webhooks
GET /v1/api/webhooks HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/webhooks/eventswebhooks:manageLister les événements disponibles
Les événements auxquels un endpoint peut s'abonner, avec la signification de chacun.
Servi depuis la liste même contre laquelle l'API valide, il ne peut donc pas être en retard sur ce qui est réellement livrable.
Réponse
{
"data": [
{
"name": "property.created",
"description": "A property was added to your organisation."
}
]
}https://api.skautik.com/v1/api/webhooks/events
GET /v1/api/webhooks/events HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/webhookswebhooks:manageCréer un webhook
Enregistrez un endpoint HTTPS pour un ensemble d'événements.
La réponse contient un secret de signature, affiché une seule fois. Stockez-le immédiatement : chaque livraison est signée avec lui, et un gestionnaire qui ne vérifie pas la signature acceptera des appels falsifiés de quiconque apprend l'URL.
Champs du corps
| Nom | Type | Description |
|---|---|---|
urlobligatoire | string | Endpoint HTTPS. Le HTTP en clair est refusé. exemple : https://example.com/hooks/skautik |
eventsobligatoire | array | Noms des événements auxquels s'abonner. Chaque nom doit figurer parmi les événements listés ci-dessus ; un nom inconnu est refusé plutôt que de ne jamais se déclencher en silence. exemple : ["property.created", "inquiry.created"] |
Corps de la requête
{
"url": "https://example.com/hooks/skautik",
"events": ["property.created", "property.withdrawn"]
}Réponse
{
"data": {
"webhook": {
"id": "whk_1b7e6c19a139404cb173d23fcb3331c4",
"url": "https://example.com/hooks/skautik",
"events": ["property.created", "property.withdrawn"],
"active": true,
"created_at": "2026-08-13T10:43:37Z",
"updated_at": "2026-08-13T10:43:37Z"
},
"secret": "whsec_uEw7ugUA3saVyNo087Sg3XvhBnWI0txICtik-ySKD2k"
}
}Réponses notables
- 201
- Créé. signing_secret n'apparaît que dans cette réponse.
- 422
- L'URL n'est pas en HTTPS, est injoignable, ou un nom d'événement est inconnu.
https://api.skautik.com/v1/api/webhooks
POST /v1/api/webhooks HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…
Content-Type: application/json
{
"url": "https://example.com/hooks/skautik",
"events": ["property.created", "property.withdrawn"]
}/v1/api/webhooks/{webhook_id}webhooks:manageRécupérer un webhook
Un endpoint avec la santé de ses livraisons récentes.
Paramètres de chemin
| Nom | Type | Description |
|---|---|---|
webhook_idobligatoire | string | Identifiant du webhook. exemple : whk_1b7e6c19a139404cb173d23fcb3331c4 |
https://api.skautik.com/v1/api/webhooks/{webhook_id}
GET /v1/api/webhooks/whk_1b7e6c19a139404cb173d23fcb3331c4 HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/webhooks/{webhook_id}webhooks:manageMettre à jour un webhook
Modifiez l'URL, les événements, ou son activation.
C'est une mise à jour partielle : ce que vous omettez est laissé tel quel. Passer active à false arrête les livraisons sans perdre l'enregistrement, ce qu'il faut faire pendant que vous réparez un gestionnaire.
Paramètres de chemin
| Nom | Type | Description |
|---|---|---|
webhook_idobligatoire | string | Identifiant du webhook. exemple : whk_1b7e6c19a139404cb173d23fcb3331c4 |
Champs du corps
| Nom | Type | Description |
|---|---|---|
url | string | Nouvel endpoint HTTPS. exemple : https://example.com/hooks/skautik |
events | array | Remplace toute la liste d'abonnement plutôt que de s'y ajouter. exemple : ["property.created", "property.withdrawn"] |
active | boolean | False met les livraisons en pause ; l'enregistrement et son secret survivent. exemple : true |
Corps de la requête
{ "active": false }https://api.skautik.com/v1/api/webhooks/{webhook_id}
PATCH /v1/api/webhooks/whk_1b7e6c19a139404cb173d23fcb3331c4 HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…
Content-Type: application/json
{ "active": false }/v1/api/webhooks/{webhook_id}/rotate-secretwebhooks:manageRenouveler le secret de signature
Émettez un nouveau secret et arrêtez l'ancien immédiatement.
C'est ce qu'il faut faire si un secret fuit. L'ancien secret cesse de fonctionner à l'instant où cet appel répond : les livraisons signées avec lui échoueront donc à la vérification. Déployez le nouveau avant de renouveler, ou acceptez une interruption.
Paramètres de chemin
| Nom | Type | Description |
|---|---|---|
webhook_idobligatoire | string | Identifiant du webhook. exemple : whk_1b7e6c19a139404cb173d23fcb3331c4 |
Réponse
{
"data": {
"secret": "whsec_4_j7SxmfWXaoJnLbkypLXAw-Pjs8J74_OyWb-oj7fik",
"note": "The previous secret stopped working immediately."
}
}https://api.skautik.com/v1/api/webhooks/{webhook_id}/rotate-secret
POST /v1/api/webhooks/whk_1b7e6c19a139404cb173d23fcb3331c4/rotate-secret HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/webhooks/{webhook_id}webhooks:manageSupprimer un webhook
Arrêtez les livraisons et oubliez l'endpoint.
Paramètres de chemin
| Nom | Type | Description |
|---|---|---|
webhook_idobligatoire | string | Identifiant du webhook. exemple : whk_1b7e6c19a139404cb173d23fcb3331c4 |
https://api.skautik.com/v1/api/webhooks/{webhook_id}
DELETE /v1/api/webhooks/whk_1b7e6c19a139404cb173d23fcb3331c4 HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/webhooks/{webhook_id}/testwebhooks:manageEnvoyer une livraison de test
Déclenchez un événement synthétique pour prouver que votre gestionnaire fonctionne.
Envoie un événement webhook.test avec les mêmes comportements de signature et de nouvelle tentative qu'une vraie livraison, afin que vous puissiez vérifier le contrôle de signature avant que quoi que ce soit de réel en dépende.
Paramètres de chemin
| Nom | Type | Description |
|---|---|---|
webhook_idobligatoire | string | Identifiant du webhook. exemple : whk_1b7e6c19a139404cb173d23fcb3331c4 |
https://api.skautik.com/v1/api/webhooks/{webhook_id}/test
POST /v1/api/webhooks/whk_1b7e6c19a139404cb173d23fcb3331c4/test HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…/v1/api/webhooks/{webhook_id}/deliverieswebhooks:manageLister les livraisons
Tentatives récentes, leurs codes de réponse et l'état des nouvelles tentatives.
Conservées 30 jours. L'endroit où regarder quand un gestionnaire a cessé de fonctionner en silence.
Paramètres de chemin
| Nom | Type | Description |
|---|---|---|
webhook_idobligatoire | string | Identifiant du webhook. exemple : whk_1b7e6c19a139404cb173d23fcb3331c4 |
Paramètres de requête
| Nom | Type | Description |
|---|---|---|
status | enum | Filtrer par résultat. succeeded | failed | pending exemple : succeeded |
limit | integer | Nombre de tentatives à renvoyer, de la plus récente à la plus ancienne. Plafonné à 100. exemple : 100 |
https://api.skautik.com/v1/api/webhooks/{webhook_id}/deliveries
GET /v1/api/webhooks/whk_1b7e6c19a139404cb173d23fcb3331c4/deliveries?status=succeeded&limit=100 HTTP/1.1
Host: api.skautik.com
Authorization: Bearer sk_live_…