Email Verification API in 5 Minutes: Key, curl, Code, Done
To use an email verification API in five minutes: create a SimpleVerifier API key, test it with GET /api/v1/me, then call https://simpleverifier.com/api/v1/verify with the address and an Authorization: Bearer header. You get back status (valid, risky or invalid), reason, send_advice and reason_detail. Branch on status, and treat only valid as confirmed. Full reference: API docs.
Minute 1: get a key
Create a key on the API keys page in your dashboard. It starts with sv_live_. Store it as an environment variable on your server:
export SIMPLEVERIFIER_KEY="sv_live_..."
API access is on Pro, Business and Agency (see pricing). Starter and Growth cover CSV verification in the dashboard only.
Minute 2: test the key
curl https://simpleverifier.com/api/v1/me \
-H "Authorization: Bearer $SIMPLEVERIFIER_KEY"
This confirms the key works without using a check. A 401 means the key is wrong or revoked; a 402 means the plan has no API access.
Minute 3: verify one address
curl -X POST https://simpleverifier.com/api/v1/verify \
-H "Authorization: Bearer $SIMPLEVERIFIER_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"jane@company.com"}'
{
"email": "jane@company.com",
"status": "valid",
"reason": "Mailbox exists",
"send_advice": "safe",
"reason_detail": "The mail server confirmed this mailbox exists.",
"smtp_available": true,
"mailbox_probed": true,
"mailbox_checked": true
}
POST keeps addresses out of URLs and access logs. One call runs syntax, domain and MX, disposable, role-address and catch-all checks plus a live SMTP check that disconnects before any message is sent.
Minute 4: call it from code
Node.js 18+
export async function verifyEmail(email) {
const res = await fetch("https://simpleverifier.com/api/v1/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SIMPLEVERIFIER_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ email }),
signal: AbortSignal.timeout(30_000),
});
if (!res.ok) throw new Error(`SimpleVerifier HTTP ${res.status}`);
return res.json();
}
Python
import os, requests
def verify_email(email: str) -> dict:
res = requests.post(
"https://simpleverifier.com/api/v1/verify",
headers={"Authorization": f"Bearer {os.environ['SIMPLEVERIFIER_KEY']}"},
json={"email": email},
timeout=30,
)
res.raise_for_status()
return res.json()
Allow up to 30 seconds: a slow mail server can hold one check that long.
Minute 5: or use an SDK
Open-source clients, MIT licensed, with typed errors, retries and a bulk helper:
- Node.js: simpleverifier-node
- Python: simpleverifier-python
- Go: simpleverifier-go
- PHP: simpleverifier-php
- Ruby: simpleverifier-ruby
The npm and PyPI packages are being published. Until then, use the repos or the copy-paste clients on the SDK docs page; they call the same API.
Branch on the result
| status | send_advice | Do |
|---|---|---|
| valid | safe | Accept or send |
| risky | care or retry | Accept, but flag it; do not treat it as confirmed |
| invalid | do_not_send | Reject or suppress |
Risky covers catch-all domains, role addresses and providers that hide mailbox status, such as Microsoft consumer mailboxes, which are not probed. Read email verification statuses explained for every reason.
Run 100 free checks in the dashboard to see real results on your own data before you write code.
Next steps
- Agents and AI editors: verify emails inside Claude or Cursor with MCP.
- Rate limits and retries: email verification API rate limits.
- Real-time form checks: real-time email verification API.
Common questions
How do I start with the SimpleVerifier email verification API?
Create an API key in the dashboard, test it with GET https://simpleverifier.com/api/v1/me, then call GET or POST https://simpleverifier.com/api/v1/verify with the email and an Authorization: Bearer header. The reply has status, reason and send_advice.
Is there an official SDK?
Yes. Open-source clients for Node.js, Python, Go, PHP and Ruby are on GitHub under github.com/Ahmedmkarrar, MIT licensed. The npm and PyPI packages are being published; until then you can use the repos or the copy-paste clients on the SDK docs page, which call the same API.
What is the API rate limit?
120 calls a minute. Above that the API returns 429; the SDKs retry with backoff.
Which plans include API access?
Pro, Business and Agency. Starter and Growth cover CSV verification in the dashboard only, and the API returns 402 for a plan without API access.
Can I call the API from the browser?
No. Anyone who can read the key from your page can use your plan. Call SimpleVerifier from your backend and pass the verdict to your form.
Check your list before you send
Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.