Guías
Webhooks
Recibe notificaciones cuando un job en lote se completa
Para jobs en lote que duran más de un minuto, los Webhooks son más baratos y rápidos que el polling. Thunderbit hace POST a tu URL cuando un job alcanza un estado terminal.
Configurar al enviar
{
"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"
}Los payloads son intencionalmente pequeños — recupera los resultados completos vía GET /batch/distill/{id} después de recibir el callback.
Verificación de firma
Cuando se establece secret, cada entrega incluye 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)Nunca confíes en un Webhook sin firma en producción.
Comportamiento de reintento
- No-2xx → 5 reintentos con backoff exponencial: 10s, 30s, 2m, 10m, 30m
- Timeout por entrega: 15s
- Tras fallar todos los reintentos, el job sigue marcado como completo en nuestro lado — tu Endpoint debe ser idempotente
Esta página se está ampliando con tips de depuración — vuelve pronto.