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

ParameterTypeDescription
emailstring, requiredThe address to verify.
skip_cachebooleanForce 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"