Webhook Subscriptions
Configure endpoints to receive real-time events when sitemaps update, URLs get indexed, or crawl jobs complete.
| Endpoint | Status | Events | Last Delivered | Actions |
|---|---|---|---|---|
| https://api.acme.com/webhooks/sitemap | Active | sitemap.updated, url.indexed | 2 min ago | |
| https://hooks.zapier.com/webhooks/acme-crawl | Active | crawl.completed, crawl.failed | 14 min ago | |
| https://internal.dev/sitemap-sync | Paused | sitemap.generated | 2 days ago |
Triggered when a new sitemap XML file is successfully generated and published.
Fired when an existing sitemap is modified with new or changed URLs.
Notifies when a submitted URL is successfully confirmed as indexed by search engines.
Sent when an automated crawl job finishes processing all discovered endpoints.
Alerts when your account reaches 80% or 95% of monthly URL or API limits.
Triggers when your configured endpoint returns non-2xx status codes consecutively.
| Timestamp | Event | Endpoint | Response | Latency | Status |
|---|---|---|---|---|---|
| 2025-01-15 14:32:11 UTC | sitemap.updated | api.acme.com/... | 200 OK | 84ms | Delivered |
| 2025-01-15 14:30:05 UTC | url.indexed | api.acme.com/... | 200 OK | 112ms | Delivered |
| 2025-01-15 13:15:44 UTC | crawl.completed | hooks.zapier.com/... | 503 Service Unavailable | 2800ms | Failed |
| 2025-01-15 12:00:00 UTC | sitemap.generated | internal.dev/... | - | - | Skipped |
HMAC Secret
Verify webhook signatures to ensure requests originate from Sitemap.xml.
const crypto = require('crypto');
const signature = req.headers['x-sitemap-signature'];
const hmac = crypto.createHmac('sha256', process.env.WEBHOOK_SECRET);
hmac.update(req.body);
const expected = hmac.digest('hex');
if (signature !== expected) throw new Error('Invalid signature');
IP Allowlist
Our webhook delivery servers operate from the following CIDR ranges.