Notifications
Webhooks Integration Coming Q3 2025
Build custom integrations using webhooks to automate your DNS monitoring workflow.
Overview
DNS Check webhooks allow you to receive real-time notifications about DNS changes in your own applications. Build custom integrations, automate workflows, and integrate DNS monitoring into your existing systems.
Features
- Real-time event notifications
- Secure payload delivery with HMAC signatures
- Configurable retry policies
- Detailed event payloads
- Multiple endpoint support
Setting Up Webhooks
-
Create webhook endpoint
Go to Settings > Notifications > Webhooks and click "Add Webhook".
-
Configure endpoint
Enter your endpoint URL and configure:
- Secret key for payload verification
- Event types to receive
- Retry policy
- IP allowlist (optional)
-
Test the webhook
Use the "Test Webhook" button to send a test payload to your endpoint.
Event Types
Available webhook events:
-
DNS Events
dns.record.created
- New DNS record createddns.record.updated
- Existing DNS record modifieddns.record.deleted
- DNS record deleted
-
Domain Events
domain.added
- New domain added to monitoringdomain.verified
- Domain ownership verifieddomain.expiring
- Domain expiration warning
-
SSL Events
ssl.expiring
- SSL certificate expiration warningssl.renewed
- SSL certificate renewed
Payload Format
Example webhook payload for a DNS record change:
{
"id": "evt_1234567890",
"type": "dns.record.updated",
"created_at": "2025-01-15T12:00:00Z",
"data": {
"domain": "example.com",
"record": {
"type": "A",
"name": "@",
"old_value": "1.2.3.4",
"new_value": "5.6.7.8",
"ttl": 3600
},
"provider": "cloudflare",
"changed_by": "[email protected]"
}
}
Security
Verifying Webhooks
Each webhook request includes a signature in the X-DNS-Check-Signature
header. Verify this signature to ensure the payload came from DNS Check:
// PHP example
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_DNS_CHECK_SIGNATURE'];
$secret = 'your_webhook_secret';
$computed = hash_hmac('sha256', $payload, $secret);
if (hash_equals($computed, $signature)) {
// Payload verified
$data = json_decode($payload, true);
// Process the webhook
}
Security Best Practices
Always verify webhook signatures, use HTTPS endpoints, and keep your webhook secrets secure. Consider implementing IP allowlisting for additional security.
Retry Policy
If your endpoint is unavailable, DNS Check will retry the webhook with exponential backoff:
- First retry: 30 seconds
- Second retry: 5 minutes
- Third retry: 30 minutes
- Final retry: 2 hours
Rate Limits
Webhook delivery is subject to the following rate limits:
- Maximum 10 concurrent requests per endpoint
- Maximum 10,000 requests per day per endpoint
- Maximum payload size: 1MB
Monitoring
Monitor your webhook deliveries in the DNS Check dashboard:
- View delivery status and response codes
- Inspect payload contents
- Review delivery logs
- Set up delivery alerts
Troubleshooting
Common Issues
-
Signature verification failing
Ensure you're using the correct webhook secret and that the payload hasn't been modified in transit.
-
Missing events
Check your endpoint's logs for any errors and verify that you've subscribed to the correct event types.
-
Rate limiting
If you're hitting rate limits, consider implementing batch processing or requesting a rate limit increase.
Example Implementations
Find example webhook implementations in our GitHub repository:
Need help?
Our support team is here to help you get set up. Contact us if you have any questions.