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

  1. Create webhook endpoint

    Go to Settings > Notifications > Webhooks and click "Add Webhook".

    Create new webhook
  2. Configure endpoint

    Enter your endpoint URL and configure:

    • Secret key for payload verification
    • Event types to receive
    • Retry policy
    • IP allowlist (optional)
  3. 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 created
    • dns.record.updated - Existing DNS record modified
    • dns.record.deleted - DNS record deleted
  • Domain Events
    • domain.added - New domain added to monitoring
    • domain.verified - Domain ownership verified
    • domain.expiring - Domain expiration warning
  • SSL Events
    • ssl.expiring - SSL certificate expiration warning
    • ssl.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.