API
Send your key as Authorization: Bearer vk_... (or X-API-Key: vk_...). Make keys on the API keys page. Up to 20 requests a second per key. Every check costs one credit, except Unknowns, which are free.
Verdicts
result is one of the four verdicts. verdict and reason give the detail behind it.
- Valid
- The mailbox exists.
send_safeis true. - Risky
- Catch-all domain (
verdict: catch_all), throwaway service (disposable) or role address (validwithrole: true). - Invalid
- Will bounce.
reasonissyntax,no_domain,no_mx,no_mailbox,mailbox_disabled,mailbox_fullorrejected. - Unknown
- The mail server didn't give a clear answer. Free. If
retry_afteris set (seconds), the server asked us to come back later: call again after that long.
One address: POST /api/v1/verify
curl -s https://app.bouncewarden.com/api/v1/verify \
-H "Authorization: Bearer $BOUNCEWARDEN_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "dana.okafor@northwind.example"}'
Answers in a few seconds, or at once for an address checked recently. The reply includes result, verdict, reason, send_safe, role, provider, mx_host and the mail server's reply.
In Clay: add an HTTP API column, method POST, this URL, header Authorization set to Bearer and your key, body {"email": "/Email"} with the email column inserted. Map result into a column.
A list: POST /api/v1/jobs
curl -s https://app.bouncewarden.com/api/v1/jobs \
-H "Authorization: Bearer $BOUNCEWARDEN_KEY" \
-H "Content-Type: application/json" \
-d '{"emails": ["a@northwind.example", "b@fernpoint.example"],
"webhook_url": "https://your-n8n.example/webhook/abc"}'
Returns {"job_id": ...} and reserves one credit per unique address; Unknowns come back when it finishes. Poll GET /api/v1/jobs/<job_id> or wait for the webhook. Up to 100,000 addresses per call; upload a CSV in the app for bigger lists.
When the list finishes, the webhook gets a POST with job_id, counts and results_url. Its X-Verifier-Signature: sha256=... header is an HMAC-SHA256 of the body, keyed with the key's webhook signing secret.
curl -s "https://app.bouncewarden.com/api/v1/jobs/JOB_ID/results?format=csv&send_safe=1" \ -H "Authorization: Bearer $BOUNCEWARDEN_KEY"
In n8n: an HTTP Request node starts the list, a Webhook node catches the finish, and another HTTP Request node fetches results_url (JSON, or format=csv).
Credits: GET /api/v1/usage
Your credit balance (credits) and how many single checks this key's account made today, Unknowns included (checks_today).
Errors
401 bad or missing key. 402 not enough credits. 429 too many requests. Each comes with error and detail.