Zum Inhalt springen

Webhooks

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

Webhooks let DomChekr push events to your server in real time, so you can react immediately when a domain status changes.

Add a webhook endpoint via the API or from Settings → Notifications in the dashboard.

DomChekr sends a ping event to your URL immediately after registration to confirm the endpoint is reachable.

All events share the same envelope:

{
"event": "domain.available",
"id": "evt_01HX...",
"created_at": "2025-03-11T13:00:00Z",
"data": { ... }
}
EventTriggered when
domain.availableA monitored domain becomes available
domain.registeredA monitored domain gets registered (was previously available)
domain.expiringA registered domain expires within 30 days
domain.pending_deleteA domain enters the pending-delete grace period
pingSent on webhook registration to verify the endpoint
{
"event": "domain.available",
"id": "evt_01HX...",
"created_at": "2025-03-11T13:00:00Z",
"data": {
"domain": "example.com",
"watchlist_id": "wl_01HX...",
"previous_status": "registered",
"checked_at": "2025-03-11T13:00:00Z"
}
}

Every request includes an X-DomChekr-Signature header, allowing you to verify the payload originated from DomChekr.

The signature is an HMAC-SHA256 hex digest of the raw request body, using your webhook secret as the key. You can find (or regenerate) the secret for each webhook in Settings → Notifications.

Verification example (Node.js)

import crypto from 'node:crypto';
function verifySignature(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected),
);
}

Your endpoint must return a 2xx status code within 10 seconds. If it times out or returns a non-2xx response, DomChekr retries the delivery with exponential backoff:

AttemptDelay
1st retry1 minute
2nd retry5 minutes
3rd retry30 minutes
4th retry2 hours

After 4 failed attempts, the event is marked as failed and no further retries are made. You can view and replay failed events from Settings → Notifications → Webhook logs.

Use a tunneling tool like ngrok or cloudflared to expose a local port to the internet during development:

Terminal window
ngrok http 3000
# Forwarding: https://abc123.ngrok-free.app → http://localhost:3000

Then register https://abc123.ngrok-free.app/webhooks/domchekr as your webhook URL in the dashboard.