When a verification batch completes, we POST the whole batch — every record, with its input and its result — to the URL you supplied as webhook.
Delivery is retried. If your endpoint does not answer 200 within 30 seconds we retry roughly every 2 minutes, up to 30 times — about an hour in total. Retries are not de-duplicated, so the same batch can arrive more than once and your handler must be idempotent.
Treat the webhook as the fast path and not the only path. If you miss the whole retry window, read the batch from the Email Verification Inquiry endpoint using the batch id. A robust integration acknowledges immediately, queues the payload, and processes it outside the request.
There is no authentication on this call. We send no signature, no shared secret and no token. If you need to authenticate deliveries, put a secret in the webhook URL — the query string is preserved end to end — and treat the payload as a notification, calling Email Verification Inquiry with the id to fetch authoritative data over an authenticated channel.
Any query string on your webhook URL is preserved, so you can tag deliveries with your own parameters.
We send the header Content-Type: application/json.
200Answer 200 within 30 seconds. The body is ignored. Any other status, or a timeout, is treated as a failed delivery and retried — roughly every 2 minutes, up to 30 times.