Anleitungen
Webhooks
Benachrichtigungen über den Abschluss von Batch-Jobs empfangen
Für Batch-Jobs, die länger als eine Minute laufen, sind Webhooks günstiger und schneller als Polling. Thunderbit sendet ein POST an deine URL, wenn ein Job einen terminalen Zustand erreicht.
Bei der Einreichung konfigurieren
{
"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 sind bewusst klein — hol vollständige Ergebnisse via GET /batch/distill/{id} ab, nachdem du den Callback erhalten hast.
Signatur-Verifikation
Wenn secret gesetzt ist, enthält jede Zustellung X-Webhook-Signature: sha256=<hex>. Verifiziere mit 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)Vertraue in der Produktion niemals einem unsignierten Webhook.
Wiederholungsverhalten
- Nicht-2xx → 5 Wiederholungen mit exponentiellem Backoff: 10 s, 30 s, 2 min, 10 min, 30 min
- Pro-Zustellung-Timeout: 15 s
- Wenn alle Wiederholungen fehlschlagen, ist der Job auf unserer Seite trotzdem abgeschlossen — dein Endpunkt muss idempotent sein
Diese Seite wird mit Debugging-Tipps erweitert — schau bald wieder vorbei.