Guides
Webhooks
Recevoir les notifications de fin de tâche batch
Pour les tâches batch qui durent plus d'une minute, les Webhook sont moins coûteux et plus rapides que le polling. Thunderbit fait un POST vers ton URL quand une tâche atteint un état terminal.
Configurer à la soumission
{
"urls": ["https://example.com/page1"],
"webhook": {
"url": "https://your-server.com/api/webhook/distill",
"secret": "whsec_your_secret_key",
"headers": { "X-Custom-Auth": "your-token" }
}
}Payload
{
"id": "batch_abc123",
"status": "COMPLETED",
"total": 50,
"completed": 49,
"failed": 1,
"completedAt": "2026-04-26T10:00:00Z"
}Les payloads sont volontairement petits — récupère les résultats complets via GET /batch/distill/{id} après réception du callback.
Vérification de la signature
Quand secret est défini, chaque livraison inclut X-Webhook-Signature: sha256=<hex>. Vérifie avec HMAC-SHA256.
import hmac, hashlib
def verify(raw_body: bytes, signature: str, secret: str) -> bool:
expected = "sha256=" + hmac.new(
secret.encode(), raw_body, hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)Ne fais jamais confiance à un Webhook non signé en production.
Comportement de réessai
- Non-2xx → 5 réessais avec backoff exponentiel : 10s, 30s, 2m, 10m, 30m
- Timeout par livraison : 15s
- Après tous les réessais en échec, la tâche reste complète de notre côté — ton Endpoint doit être idempotent
Cette page est en cours d'enrichissement avec des conseils de debugging — reviens bientôt.