Verification API

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]"
}
What you get

Production-grade from the first call

API features and limits
Single verification endpointGET /api/singlemail — full verdict with reason in ~1s median
Bulk verificationFile upload API for whole lists, with progress and result download
AuthenticationAPI key via the secret parameter — separate keys per project, rotate anytime
Rich result payloadRole, free-provider, disposable and spam-trap flags plus did-you-mean on every check
Typo correctionDid_you_mean catches fat-fingered domains before they enter your database
Official librariesPHP, Python, Ruby and C# — open source at github.com/mailtester-com, or call the REST endpoint from anything
Plan-based rate limitsScales with your subscription; custom limits on Business
Free tier100 credits on every new account, no card required
Result codes

Three verdicts. One reason code.

Every response maps to one clear action — ok, fail, or risky — with a machine-readable reason explaining exactly why.

  • ok

    Mailbox exists and accepts mail. Safe to send.

  • fail

    Mailbox or domain does not accept mail. Remove it.

  • risky

    Deliverability uncertain — catch-all, disposable, spam trap or disabled mailbox. Check the Reason field and segment.

  • Reason

    Every verdict carries a machine-readable reason (accepted_email, email_disabled, …) so your code can branch precisely.

Use cases

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.

See full pricing

How many emails do you need to verify?

50,000credits

$79

$0.0016 per email

FAQ

Developer questions

Syntax-invalid addresses are rejected for free. You pay only for checks that reach the verification engine.

Around one second for most addresses. Greylisted servers take longer while our retry engine resolves them to a definitive answer.

PHP, Python, Ruby and C# — all open source on GitHub (github.com/mailtester-com). The API itself is a single REST GET request, so any language with an HTTP client works — the samples above cover cURL and Node too.

First 100 API calls are on us.

Create an account, grab your key, and your signup form is protected before lunch.