Gidsen
Webhooks
Ontvang voltooiingsmeldingen voor batchjobs
Voor batchjobs die langer dan een minuut duren zijn Webhooks goedkoper en sneller dan polling. Thunderbit POST't naar jouw URL wanneer een job een eindstatus bereikt.
Configureren bij indienen
{
"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"
}Payloads zijn bewust klein — haal volledige resultaten op via GET /batch/distill/{id} na ontvangst van de callback.
Handtekeningverificatie
Wanneer secret is ingesteld, bevat elke aflevering X-Webhook-Signature: sha256=<hex>. Verifieer met 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)Vertrouw nooit een ongesigneerde Webhook in productie.
Retry-gedrag
- Niet-2xx → 5 retries met exponentiële backoff: 10s, 30s, 2m, 10m, 30m
- Timeout per aflevering: 15s
- Nadat alle retries falen, is de job aan onze kant nog steeds compleet — jouw Endpoint moet idempotent zijn
Deze pagina wordt uitgebreid met debugtips — kom snel terug.