POST with a JSON body to a public https URL you give them.
Crawl webhooks
SetwebhookUrl when you start a crawl:
Crawl webhooks are sent once, with a 5-second timeout and no retries, and aren’t signed. Treat them as a signal: confirm the result with GET /crawl/{jobId} before you rely on it.
Monitor webhooks
Add a webhook to a monitor’snotify:
POST with the header X-Spidra-Event: monitor.check.completed. This is the body Send a Test Notification sends:
monitor and check carry your monitor’s and check’s IDs and check.url opens the check in the dashboard. added, changed, removed and pages are described in Get a Monitor Check.
Verify the signature
Monitor webhooks are signed.X-Spidra-Signature is sha256= followed by the HMAC-SHA256 of the raw body, keyed with the monitor’s secret. If you don’t set a secret, Spidra creates one; read it from Get a Monitor under notify.webhook.secret.
Your endpoint
- Use
httpson a public address. Private and internal addresses are refused when you save the URL. - Answer with any
2xxquickly and do slow work afterwards. - Monitor webhooks are retried once, 2 seconds later, if your server answers
429, a5xxor can’t be reached. Crawl webhooks aren’t retried. - Expect the occasional duplicate, and use
jobIdorcheck.idto de-duplicate.

