Email verification and phone validation API
Send one HTTP request with an email address or a phone number and get back a verdict: valid, risky or invalid for emails, and the E.164 form, country and line type for phones. API access is included in every plan at a flat monthly price, with no per-call credits.
Authentication
Create a key on the API keys page and send it in the Authorization header. Keys start with sv_live_ and are shown once. Keep them on your server.
Authorization: Bearer sv_live_...Verify an email address
GET or POST https://simpleverifier.com/api/v1/verify with email. Syntax, domain, disposable and live mailbox (SMTP) checks run in one call.
curl "https://simpleverifier.com/api/v1/verify?email=jane@company.com" \
-H "Authorization: Bearer $SIMPLEVERIFIER_KEY"{
"email": "jane@company.com",
"status": "valid",
"reason": "Mailbox exists",
"mailbox_checked": true
}| status | What it means | Possible reasons |
|---|---|---|
| valid | The mail server confirmed the mailbox exists. | Mailbox exists |
| risky | The address may work, but delivery isn't confirmed. Send with care or keep it out of cold campaigns. | Accepts all addresses · Role-based address · Provider hides mailbox status · Server would not confirm · Mailbox check unavailable |
| invalid | Don't send. It will bounce or it's a throwaway address. | Invalid format · No mail server · Disposable address · Mailbox not found |
Validate a phone number
GET or POST https://simpleverifier.com/api/v1/phone with phone and an optional country (two letters, default US) used for numbers written without +. On the Email + Phone plan, valid numbers also get a live carrier lookup (5,000 a month; failed lookups don't count). Pass live=false to skip it.
curl "https://simpleverifier.com/api/v1/phone?phone=07911%20123456&country=GB" \
-H "Authorization: Bearer $SIMPLEVERIFIER_KEY"{
"input": "07911 123456",
"phone_status": "valid",
"phone_e164": "+447911123456",
"phone_country": "GG",
"phone_type": "mobile",
"phone_carrier": "JT Group Limited",
"phone_line_type": "mobile",
"live_lookup": true
}phone_type comes from the numbering plan and is free on every plan. phone_carrier and phone_line_type appear only when live_lookup is true.
Examples
Node.js
const res = await fetch(
"https://simpleverifier.com/api/v1/verify?email=" + encodeURIComponent(email),
{ headers: { Authorization: `Bearer ${process.env.SIMPLEVERIFIER_KEY}` } }
);
const { status, reason } = await res.json();
if (status === "invalid") throw new Error(`Please check your email: ${reason}`);Python
import os, requests
r = requests.get(
"https://simpleverifier.com/api/v1/verify",
params={"email": email},
headers={"Authorization": f"Bearer {os.environ['SIMPLEVERIFIER_KEY']}"},
timeout=30,
)
result = r.json() # {"status": "valid" | "risky" | "invalid", "reason": ...}Errors and limits
Errors return JSON with an error message. A mailbox check can take a few seconds when a mail server is slow, so set a client timeout of about 30 seconds.
| 400 | The email or phone parameter is missing. |
| 401 | The API key is missing, wrong or revoked. |
| 402 | The key's subscription isn't active. |
| 429 | More than 120 calls a minute on one key. Wait and retry. |
| 503 | The verification service is briefly unavailable. Retry with backoff. |
Common questions
- How much does the SimpleVerifier API cost?
- API access is included in every plan. Pro is $29.99/month and covers email verification and free phone format checks. Email + Phone is $49.99/month and adds 5,000 live carrier lookups a month. There are no per-call credits.
- Is there a rate limit?
- Each key can make 120 calls a minute. For lists of thousands of addresses, upload a CSV in the dashboard instead: it runs the same checks in bulk and returns valid, risky and invalid files.
- Can I call the API from the browser?
- No. Keep keys on your server. Anyone who can read a key from your page can use your plan. Call the API from your backend and pass the result to your form.
- Does the phone endpoint tell me if a number is in service?
- No. It confirms the number fits its country's numbering plan, normalises it to E.164 and, on the Email + Phone plan, returns the carrier and real line type (mobile, landline or VoIP). No lookup can confirm someone is using a number today.