Webhooks
Most pushes event notifications to your server in real-time so you don't have to poll. Configure one webhook URL per account in the console under Settings → Personal account → Webhook.
All events share the same JSON envelope:
Code
Your endpoint should respond with a 2xx status within 10 seconds to
acknowledge delivery. Anything else (or a timeout) triggers a retry.
Retry policy
Failed deliveries are retried with exponential backoff:
| Attempt | Delay |
|---|---|
| 1 | immediate |
| 2 | +1 minute |
| 3 | +10 minutes |
| 4 | +1 hour |
After the 4th failure the event is marked FAILED permanently. You can
still retry it manually via the Webhooks API.
Event families
Events fall into two broad families — pick the ones you actually need to handle and ignore the rest. Each family has its own dedicated page with payload examples and field-by-field notes:
| Family | What it's about | Events |
|---|---|---|
| Account events | Things that happen to your side of the pipeline — registrar balances, billing signals, anything that's about the infrastructure you own. | balance.low |
| Operations & domains | Things that happen to the work Most is doing for you — bulk tasks finishing, order batches moving through the pipeline, individual domains expiring / being blocked / getting abuse complaints. | task.completed, orders.registered, orders.completed, domain.expiring, domain.deleting, domain.blocked, domain.complaint |
A sensible bare minimum to wire up is balance.low (to stop
registrations from failing silently when a reseller account runs
dry), orders.completed (to know when a batch you kicked off is
actually done) and domain.blocked (to find out about abuse actions
before your customers do).
Inspecting deliveries
Use the Webhooks API to list past deliveries, see
their status (PENDING / DELIVERED / FAILED), inspect the payload
that was sent, and manually retry failed ones.
Code