Features

One Email Verification Engine. Every Way to Use It.

MailValid is an email verification tool that checks if an address is real: valid, invalid, catch-all, or do-not-mail. It is the same engine whether you check one address by hand, upload a list, call the API, or run it through an AI agent.

How email verification works: 3 steps, every time

Every address goes through the same three checks. No shortcuts, no guessing.

1

Syntax check

Checks the address against RFC 5322 format rules. Catches typos fast.

2

Domain and MX check

Confirms the domain is real, and that it has mail exchange records set up to receive email.

3

Mailbox check

Runs an SMTP handshake to confirm the mailbox exists. We never send a real email to test it.

Every result includes 10+ data points

A plain "valid" or "invalid" is not enough to act on. Every verification includes a full breakdown.

statusvalid, invalid, catch_all, unknown, or do_not_mail
is_validsimple true/false — safe to send?
confidence_score0–100 confidence in the result
status_reasonmachine-readable reason, e.g. role_based, mailbox_confirmed
providerdetected provider: google, microsoft, yahoo, apple, corporate, etc.
is_disposableflags temporary or throwaway email addresses
is_role_basedflags role inboxes like info@ or support@
is_catch_allflags catch-all domains that accept any address
is_free_providerflags free consumer mailboxes like Gmail or Yahoo
syntax_valid / domain_valid / has_mxpass/fail at each of the 3 check steps
verification_time_mshow long the check took
cachedtrue if served from a recent cached result, at 0 credits

Set your own policy on top of this using the status_reason field — for example, allow role addresses but block disposable email addresses automatically.

Four ways to verify emails

Single verification

Checking one address

Instant result in the browser. Free, no account needed.

Bulk CSV upload

Cleaning an email list

Up to 10,000 addresses per job. Auto-detects the email column. Download as CSV or JSON.

REST API

Automated workflows

Single and bulk endpoints. JSON in, JSON out. Under 500ms average response.

MCP server

AI agents

8 tools for Claude, Cursor, or any MCP client. Same engine, same pricing, same credit balance.

Bulk email list cleaning

Drop a CSV or TXT file into your dashboard. MailValid checks up to 10,000 addresses per job and finds the email column automatically. No formatting needed.

1

Upload your file — no API key, no code.

2

MailValid verifies in the background — every address checked for validity, plus disposable, role-based, and catch-all flags.

3

Download clean results — export as CSV or JSON, ready to import anywhere.

Bulk jobs also run through the API — submit a list, then poll for status or get a webhook when it is done.

Webhooks for bulk verification jobs

Skip the polling. Provide a webhook_url when you submit a bulk job, and MailValid posts the results when the job completes.

  • Every webhook includes an X-Mailvalid-Signature header — an HMAC-SHA256 signature of the raw request body.
  • Verify it with your account's webhook secret before trusting the payload.
  • Included from Starter upward.

Email verification REST API

One base URL. JSON in, JSON out. Built to integrate in minutes, in any language.

POST /verify/singleVerify one address in real time. 1 credit per fresh result.
POST /verify/bulkQueue up to 10,000 addresses. Reserves credits, final charge on completion.
GET /verify/bulk/{job_id}Check job status and progress. Free.
GET /verify/bulkList your bulk jobs. Free.
DELETE /verify/bulk/{job_id}Cancel a job, release reserved credits. Free.
GET /verify/bulk/{job_id}/downloadDownload results as JSON or CSV. Free.
GET /creditsCheck balance and lifetime usage. Free.
POST /webhooks/bounceSubmit real bounce and delivery events to improve future accuracy. Free.
POST /api/demo/verifyA basic check, no API key, rate-limited. Free (no SMTP step).

Example request

curl -X POST https://mailvalid.io/api/v1/verify/single \
  -H "X-API-Key: mv_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com"}'

Code examples ship in cURL, Python, JavaScript (Node.js), and PHP. Full documentation: mailvalid.io/docs

Bounce feedback loop

Send real delivery outcomes back to MailValid — hard bounces, soft bounces, complaints, unsubscribes — through the bounce webhook endpoint. This data feeds back into future email verification accuracy, at no extra cost, up to 1,000 events per request.

MCP server: 8 tools for AI agents

MailValid runs a remote MCP server so AI agents can verify emails directly, plus a stdio launcher for clients like Claude Desktop. Every tool runs on the same engine and credit balance as the REST API.

verify_email(email)Verify one address. Needs an API key.
submit_bulk_verification(emails, webhook_url)Queue a list. Needs an API key.
get_bulk_job(job_id)Check job status and results. Needs an API key, free.
list_bulk_jobs(...)List your bulk jobs. Needs an API key, free.
cancel_bulk_job(job_id)Cancel a job, release credits. Needs an API key, free.
get_credit_balance()Check balance and usage. Needs an API key, free.
verify_email_demo(email)Syntax, disposable, role, and free-provider checks only, no SMTP step. No API key needed, free.
get_api_discovery()Machine-readable discovery URLs. No API key needed, free.

Works with Claude Desktop, Claude Code, Cursor, and any MCP-compatible client. See the integrations.

Rate limits and job sizes by plan

Plan Rate limit Max emails per bulk job
Free10 requests/min100
Starter50 requests/min2,000
Growth100 requests/min5,000
Scale200 requests/min10,000

Smart, fair credit billing

  • Only definitive results are billed — valid, invalid, catch-all, or do-not-mail. 1 credit each.
  • Unknown results cost nothing. If MailValid cannot reach a confident verdict, you do not pay for it.
  • Cached repeats are free. Re-checking a recently verified address costs 0 credits.
  • Duplicates within a batch are free — only the first occurrence in a bulk job is charged.
  • Credits never expire — free, plan, or pay-as-you-go.

Full pricing: mailvalid.io/pricing

Security and privacy built into every email verification

No plaintext email storage

Addresses are processed for the response, then discarded. Only a SHA-256 hash is kept for caching.

Short, result-based retention

Cached hashes expire in 7 days for valid results, 30 days for invalid and do-not-mail, and 1 day for catch-all. Unknown results are not cached at all.

Hashed credentials

Passwords hashed with bcrypt. API keys hashed before storage, shown in full only once.

HTTPS/TLS on every request

All traffic to and from the API and dashboard is encrypted in transit.

No data sold, rented, or traded

Shared only with DodoPayments for billing and AWS for hosting, or when legally required.

No tracking cookies

Only essential session and rate-limiting cookies.

Reliability

95%+
Accuracy Rate
<500ms
Avg API Response Time
99.9%
Uptime SLA
10M+
Emails Verified

Backed by an accuracy guarantee: on a batch of 1,000+ verifications, if your real bounce rate comes in under 95%, MailValid credits your account for the misverified emails. See the refund policy for the full terms.

Frequently asked questions

What data does a MailValid email verification return?

A status — valid, invalid, catch-all, or do-not-mail — plus flags for disposable addresses, role-based inboxes, free providers, and catch-all domains. That is 10+ data points per address, including a confidence score and a machine-readable status reason.

Can I verify emails without writing any code?

Yes. Check a single email free in the browser, no account needed. For a list, create a free account and upload a CSV or TXT file — MailValid finds the email column automatically.

How many emails can I verify in one bulk upload?

Up to 10,000 addresses per job on Scale. Free allows 100 per job, Starter allows 2,000, and Growth allows 5,000. Jobs run in the background — poll for status or get a webhook when done.

Does email verification send a real message to the address?

No. The mailbox check uses an SMTP handshake to confirm the address exists, but no email is ever actually sent or delivered.

Which verification results actually get charged?

Only definitive results: valid, invalid, catch-all, or do-not-mail — 1 credit each. Unknown results, cached repeats, and duplicates within the same batch cost nothing.

Does MailValid work with AI agents like Claude or Cursor?

Yes, through an MCP server with 8 tools, using the same engine, pricing, and credit balance as the REST API. Two tools — verify_email_demo and get_api_discovery — need no API key.

How accurate is MailValid's email verification?

MailValid reports 95%+ accuracy from a multi-layer check: RFC 5322 syntax validation, domain and MX record lookup, and an SMTP-level mailbox check — not just syntax or DNS alone. Real bounce data submitted through the bounce webhook also feeds back into future accuracy.

Does MailValid store the email addresses I submit for verification?

No. Plaintext addresses are processed only to return a result, then discarded. MailValid keeps just a SHA-256 hash for caching, retained 7 days for valid results, 30 days for invalid and do-not-mail, and 1 day for catch-all.

Can I get notified when a bulk verification job finishes?

Yes. You get a notification by email as well as on the dashboard. You can also provide a webhook_url when you submit a bulk job, and MailValid posts the results when it completes, signed with an HMAC-SHA256 signature you can verify.

Try every feature free

Check one email free right now, or sign up for 100 free credits to test bulk upload, the API, and MCP.