All use cases

Product & engineering teams

An email verification API you can integrate before lunch

MailValid's email verification API checks syntax, DNS/MX records, and SMTP mailbox existence in a single REST call, returning a result in under 500ms.

One endpoint, one JSON response, under 500 milliseconds. No sales call, no annual contract, no SDK to learn.

You wanted a function, not a vendor relationship

Most verification providers sell to marketing teams and treat the API as an upsell. You end up on a demo call just to get a key, and then discover rate limits, a proprietary SDK, and a monthly minimum that assumes you verify a million addresses.

You wanted a function that takes a string and tells you whether mail will land.

How it works

  1. 1

    POST /api/v1/verify/single with an email address. Get back a status and the signals behind it.

  2. 2

    Branch on status. Three values matter in practice: valid, invalid, unknown.

  3. 3

    Batch when you have a list. POST /api/v1/verify/bulk, then poll for the result.

import requests

r = requests.post(
    "https://mailvalid.io/api/v1/verify/single",
    headers={"X-API-Key": API_KEY},
    json={"email": email},
    timeout=3,
)
result = r.json()

if result["result"]["status"] == "invalid" or result["result"]["is_disposable"]:
    raise ValidationError("Please use a valid work email address.")
const res = await fetch("https://mailvalid.io/api/v1/verify/single", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.MAILVALID_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ email }),
});
const { result } = await res.json();
const { status, is_disposable } = result;

Integration notes we would want if we were you

Always set a timeout and fail open. If verification times out, let the signup through and flag it for an asynchronous re-check. Never let a third-party API block your registration flow.

Cache by address. A result holds for around 30 days. Do not pay twice for the same address in one session.

Verify server-side. An API key in client-side JavaScript is a key someone else's script will spend.

Handle `unknown` deliberately. Catch-all domains return unknown because the receiving server will not tell anyone the truth. Decide once whether unknown passes or fails in your flow, and write it down.

Why teams pick MailValid

MailValidTypical alternative
Time to first API callMinutes, self-serveDemo call to get access
Price$0.00075 per emailMonthly minimum
Unused creditsNever expireReset monthly
Response timeUnder 500ms average1 to 3 seconds
Agent and MCP supportNative MCP serverNone
Is there a free tier?

100 credits on signup, no card required.

What are the rate limits?

Documented in the docs, and generous enough for inline signup verification out of the box.

Do you have SDKs?

Copy-paste examples in Python, Node.js, Ruby, PHP, Go and Java. It is one HTTP call — you do not need a dependency.

Can I verify a whole list, not just one email at a time?

Yes — POST /api/v1/verify/bulk accepts a list and returns results asynchronously via polling or webhook. Same $0.00075/email pricing as single verification, same account, same API key.

Does this work with catch-all domains?

Yes — catch-all domains are flagged as unknown rather than a false valid, since the receiving server won't confirm a specific mailbox exists. No verifier can give you a definitive answer here, and any vendor claiming otherwise on catch-alls is guessing.

What is the accuracy?

Based on MailValid's verification logs across 10M+ emails, accuracy is 95%+ across syntax, MX and SMTP-level checks. No verifier can exceed this on catch-all domains, and any vendor claiming 99% on catch-alls is measuring something else.

How is an unknown result billed?

unknown results are not charged — you only pay for a definitive valid or invalid result. This matters most on catch-all domains, where a real verifier will return unknown fairly often rather than guessing.

Can I verify without sending an email?

Yes. SMTP-level confirmation, and no message is ever delivered.

Is this the same as an email validation API?

Yes — verification and validation are used interchangeably. Same engine, same endpoint, same $0.00075/email.

Do you have an email checker API or just verification?

Same thing. POST /api/v1/verify/single checks syntax, MX, and SMTP in a single response.

Do you support AI agents or MCP tool calls?

Yes — MailValid ships a native MCP server, so Claude, Cursor, or any MCP-compatible agent can call verification as a tool mid-task, not just via REST. See the MCP setup guide for details.

Get your API key free — 100 credits, no card required.