Stop bad emails at the front door
One GET request verifies any address in about a second — wire it into your signup form and fake, mistyped and disposable addresses never reach your database. REST, sane result codes, free tier.
curl "https://api.mailtester.com/api/singlemail?secret=YOUR_API_KEY&[email protected]"
# Response
{
"Result": "ok",
"Reason": "accepted_email",
"Role": false,
"Free": false,
"Disposable": false,
"Spamtrap": false,
"Did_you_mean": null,
"User": "jane",
"Domain": "acme.com",
"Email": "[email protected]"
}Production-grade from the first call
| Single verification endpoint | GET /api/singlemail — full verdict with reason in ~1s median |
|---|---|
| Bulk verification | File upload API for whole lists, with progress and result download |
| Authentication | API key via the secret parameter — separate keys per project, rotate anytime |
| Rich result payload | Role, free-provider, disposable and spam-trap flags plus did-you-mean on every check |
| Typo correction | Did_you_mean catches fat-fingered domains before they enter your database |
| Official libraries | PHP, Python, Ruby and C# — open source at github.com/mailtester-com, or call the REST endpoint from anything |
| Plan-based rate limits | Scales with your subscription; custom limits on Business |
| Free tier | 100 credits on every new account, no card required |
Three verdicts. One reason code.
Every response maps to one clear action — ok, fail, or risky — with a machine-readable reason explaining exactly why.
okMailbox exists and accepts mail. Safe to send.
failMailbox or domain does not accept mail. Remove it.
riskyDeliverability uncertain — catch-all, disposable, spam trap or disabled mailbox. Check the Reason field and segment.
ReasonEvery verdict carries a machine-readable reason (accepted_email, email_disabled, …) so your code can branch precisely.
Where teams put the API to work
Signup form validation
Check the address while the user is still on the form. Block disposables, catch typos with did-you-mean, and keep fakes out of your database entirely.
CRM hygiene automation
Verify contacts as they enter your pipeline and re-verify on a schedule, so sales never wastes a sequence on a dead mailbox.
Lead enrichment pipelines
Score purchased or imported leads before anyone mails them — the Reason field tells your pipeline exactly why an address failed.
Batch jobs at scale
Verify whole tables via the bulk file API and pull segmented results back into your warehouse when the job completes.
Validating one address at a time in a UI instead? See single email verification, or bulk list cleaning for whole files.
API calls use the same credits as everything else
No separate API pricing, no monthly minimum. Credits from $19, down to $0.0003 per verification at volume — and they never expire.
How many emails do you need to verify?
50,000credits
$79
$0.0016 per email
Developer questions
First 100 API calls are on us.
Create an account, grab your key, and your signup form is protected before lunch.