ガイド
Webhook
バッチジョブの完了通知を受け取る
1 分を超えるバッチジョブでは、Webhook はポーリングよりも安価で高速です。Thunderbit はジョブが終了状態に達したときに、あなたの URL に POST します。
サブミット時に設定
{
"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" }
}
}ペイロード
{
"id": "batch_abc123",
"status": "COMPLETED",
"total": 50,
"completed": 49,
"failed": 1,
"completedAt": "2026-04-26T10:00:00Z"
}ペイロードは意図的に小さく保たれています —— コールバック受信後に GET /batch/distill/{id} で完全な結果を取得してください。
署名検証
secret が設定されている場合、すべての配信に X-Webhook-Signature: sha256=<hex> が含まれます。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)本番環境では署名のない Webhook を信頼しないでください。
リトライ動作
- 非 2xx → 指数バックオフで 5 回リトライ:10 秒、30 秒、2 分、10 分、30 分
- 配信ごとのタイムアウト:15 秒
- すべてのリトライが失敗しても、私たちの側ではジョブは完了しています —— あなたのエンドポイントは冪等である必要があります
このページはデバッグのヒントを追加して拡張中です —— 近日中に再確認してください。