Get a POST to your endpoint every time an audit finishes, a keyword moves, or a conversion fires.
Webhooks are how SEMOptimiser tells your systems that something happened. Instead of polling our API every minute to check for new audit results, you give us a URL and we POST to it the moment the event fires. They're available on Management and CEO plans.
| audit.complete | A scheduled or manual audit finished. Payload includes audit_id, score and issue counts. |
| audit.failed | An audit failed before producing usable data. Payload includes the error reason. |
| keyword.moved | A tracked keyword changed position by more than your configured threshold. |
| conversion.detected | A conversion event was attributed to a tracked keyword. |
| alert.triggered | A rule-based alert fired (e.g. score dropped, competitor moved). |
Every webhook is a POST with a JSON body and a few standard headers.
httpPOST /your/endpoint HTTP/1.1 Content-Type: application/json User-Agent: SEMOptimiser-Webhook/1.0 X-SEMO-Event: audit.complete X-SEMO-Delivery: 7f3b... X-SEMO-Signature: t=1717000000,v1=abc123def... { "event": "audit.complete", "occurred_at": "2026-05-27T10:00:00Z", "data": { "audit_id": "aud_42", "site_id": "site_1", "url": "https://example.com", "score": 87, "issues": { "critical": 3, "warning": 12, "info": 28 } } }
The X-SEMO-Signature header contains a timestamp and a v1 signature. To verify:
We expect a 2xx response within 10 seconds. If we don't get one, we retry with exponential backoff up to 8 times over 24 hours: at 30s, 2m, 10m, 30m, 2h, 6h, 12h, 24h. After the eighth failure we mark the delivery as permanently failed and email you.
Settings → Webhooks → [your webhook] → Deliveries shows the last 100 attempts: timestamp, event type, your response code, response time. Click any to see the exact payload we sent and the exact response we got back – invaluable for debugging.
Each webhook has a toggle. Disable it during planned maintenance so we don't spam your endpoint with retries while you're down.
One platform. Five fewer subscriptions.
Join 1,200+ agencies and in-house teams using SEMOptimiser to replace Semrush, Ahrefs, GA4 add-ons and rank trackers – with one workflow that actually ships fixes.