Guide
Webhooks
Ricevi notifiche di completamento dei batch job
Per i batch job che durano più di un minuto, i webhook sono più economici e veloci del polling. Thunderbit fa POST al tuo URL quando un job raggiunge uno stato terminale.
Configurazione al momento dell'invio
{
"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"
}I payload sono volutamente piccoli — recupera i risultati completi tramite GET /batch/distill/{id} dopo aver ricevuto la callback.
Verifica della firma
Quando secret è impostato, ogni delivery include X-Webhook-Signature: sha256=<hex>. Verifica con 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)Non fidarti mai di un webhook non firmato in produzione.
Comportamento dei retry
- Non-2xx → 5 retry con backoff esponenziale: 10s, 30s, 2m, 10m, 30m
- Timeout per delivery: 15s
- Dopo che tutti i retry falliscono, il job è comunque completo dal nostro lato — il tuo endpoint deve essere idempotente
Questa pagina è in fase di ampliamento con suggerimenti di debug — torna a controllare presto.