API reference
Verify an address
Check a single address in real time.
POST/v1/verify
GET/v1/verify?email=jane@acme.com
Authentication
Send your API key in the Authorization header as Bearer bn_…. X-API-Key also works. Both full-access and verify-only keys can call this endpoint.
Body parameters
| Parameter | Type | Description |
|---|---|---|
email | string, required | The address to verify. |
skip_cache | boolean | Force a fresh check instead of using a cached result. Default false. |
Example
const res = await fetch("https://api.bouncerly.com/v1/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BOUNCERLY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "jane@acme.com" }),
});
const { status, reason, did_you_mean } = await res.json();Response
200 OK
{
"email": "jane@acme.com",
"status": "deliverable",
"reason": "accepted",
"domain": "acme.com",
"disposable": false,
"role_account": false,
"free_provider": false,
"accept_all": false,
"mx_found": true,
"mx_host": "acme-com.mail.protection.outlook.com",
"smtp": { "code": 250, "enhanced": "2.1.5", "message": "Recipient OK" },
"smtp_checked": true,
"checked_at": "2026-10-28T10:03:42Z",
"duration_ms": 1840,
"cached": false
}See Understanding results for every status and reason. Requests are capped at 45 seconds; most finish in 1 to 3. Call from your server, never from the browser, so your key stays secret.
GET form
curl "https://api.bouncerly.com/v1/verify?email=jane@acme.com" -H "Authorization: Bearer $API_KEY"