Real-time notifications
Webhooks allow you to receive real-time notifications when events occur in your account. Get instant updates about audit completions, errors, and other important events.
What are webhooks?
Webhooks are automated messages sent from our servers to your application when specific events occur. Unlike traditional APIs where you poll for updates, webhooks push data to you instantly.
Real-time
Receive notifications instantly when events happen, no polling required.
Secure
All webhooks are signed and verified to ensure authenticity.
Reliable
Automatic retries ensure delivery even if your endpoint is temporarily unavailable.
Configurable
Choose which events you want to receive and configure multiple endpoints.
Setting up webhooks
Create an endpoint
Set up an HTTPS endpoint in your application that can receive POST requests. This endpoint should be publicly accessible and able to handle JSON payloads.
Requirements:
- • Must accept POST requests
- • Must use HTTPS (SSL/TLS)
- • Should respond within 10 seconds
- • Should return 2xx status codes for success
Configure webhook URL
In your dashboard, go to Settings → API → Webhooks and add your endpoint URL. You can configure multiple webhooks for different purposes.
Dashboard location:
Select events
Choose which events you want to receive notifications for. You can subscribe to specific event types or receive all events.
Available events:
- •
audit.completed- Audit finished successfully - •
audit.failed- Audit encountered an error - •
audit.started- Audit began processing - •
report.generated- Report is ready for download
Test your webhook
Use the test button in your dashboard to send a sample webhook payload to your endpoint. Verify that your application receives and processes the data correctly.
Always test your webhook endpoint with sample data before enabling it for production use.
Webhook payload structure
Request headers
Payload structure
Available webhook events
audit.started
Fired when an SEO audit begins processing.
audit.completed
Fired when an SEO audit finishes successfully.
audit.failed
Fired when an SEO audit encounters an error.
report.generated
Fired when a detailed report is generated and ready for download.
Security & verification
Webhook signatures
All webhooks include a cryptographic signature to verify authenticity. You should always verify the signature before processing webhook data.
How to verify signatures:
- Get the signature from the
X-Webhook-Signatureheader - Create a string with
timestamp.payload - Compute HMAC-SHA256 using your webhook secret
- Compare the computed signature with the received signature
Code example
Best practices
Always verify signatures
Implement signature verification to ensure webhooks are genuinely from our service.
Handle duplicates
Webhooks may be delivered multiple times. Use webhook IDs to handle duplicates gracefully.
Respond quickly
Your endpoint should respond within 10 seconds to avoid timeouts and retries.
Log webhook activity
Keep logs of received webhooks for debugging and audit purposes.
Troubleshooting
Common issues
Webhook not received
- • Check that your endpoint is publicly accessible
- • Verify the URL is correct in your webhook settings
- • Ensure your server accepts POST requests
- • Check firewall and security group settings
Signature verification fails
- • Ensure you're using the correct webhook secret
- • Check that you're including the timestamp in the signed payload
- • Verify the payload is exactly as received (no modifications)
Timeout errors
- • Respond to webhooks within 10 seconds
- • Process webhook data asynchronously if needed
- • Return a 2xx status code immediately after validation
Testing webhooks
Use tools like ngrok or webhook.site to test your webhook endpoint during development.
Testing tools:
- • ngrok: Expose local servers to the internet
- • webhook.site: Inspect webhook payloads online
- • Postman: Test webhook endpoints manually
- • Dashboard test button: Send test webhooks from your account
Need help with webhooks?
Having trouble setting up or troubleshooting webhooks? Our developer support team can help you get real-time notifications working in your application.