Verify with the API

One address or a whole list from your own code — snake_case JSON over HTTPS, with a full reference at /api/docs.

Updated 18 October 2026

The API lets you verify from your own app. It's JSON over HTTPS, under /api/v1, and every request carries your API key in the X-API-Key header. The full, interactive reference is at /api/docs.

The API reference at /api/docs

Verify one address

POST /api/v1/verify

curl https://verifier.salesbullet.ai/api/v1/verify \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "someone@example.com"}'

The answer is the same result you see in the app — status (safe, invalid, catch_all or unknown), a reason, and flags like is_disposable, is_role_account and is_free_email. Only status: "safe" is safe to send to. What the results mean

A mailbox check can take a few seconds, up to about 40 for a slow server — give your HTTP client a timeout of at least a minute. A definite answer costs one credit; unknown is free.

Verify a list

POST /api/v1/bulk — up to 100,000 addresses. The list is accepted at once and checked in the background:

curl https://verifier.salesbullet.ai/api/v1/bulk \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "October leads", "emails": ["a@example.com", "b@example.com"]}'

You get back a task_id. Then either:

  • Poll GET /api/v1/bulk/{task_id} for its status and counts, then GET /api/v1/bulk/{task_id}/results once it has ended (pages of JSON, or ?format=csv for the whole list; ?filter=safe, safe_catch_all or invalid), or
  • let a webhook tell you the moment it's done.

DELETE /api/v1/bulk/{task_id} cancels a running list (credits for the rest refunded) or deletes an ended one.

Check your balance

GET /api/v1/account returns your plan and how many credits you have left — handy before sending a big list.

Tip

/api/docs lists every endpoint with its fields, try-it buttons and the exact limits for your key. Keep it open while you build.

More in API & webhooks