ravn
Email verification API

Know it lands before you send.

Check one address or a thousand. Every verdict comes with the checks behind it and an A–F risk score, so your agent knows what to send, what to hold and what to drop.

Start free: 1,000 lookups Read the docs

How it works

What happens on every call.

The same tool answers over the REST API, the MCP server and the CLI.

  1. / 01

    Syntax and normalisation

    Bad formats, stray spaces and lookalike characters are caught first, and the address is normalised so duplicates collapse to one verdict.

  2. / 02

    Domain and MX

    We resolve the domain and its mail servers. No MX record means no mail, so the address is invalid, whatever it looks like.

  3. / 03

    Disposable, role and free-provider flags

    Burner domains, role inboxes like info@ and sales@, and free providers are flagged so you can filter them by policy.

  4. / 04

    Catch-all detection

    Some domains accept mail for any address. We test for it and mark the verdict risky instead of pretending a guess is valid.

  5. / 05

    Mailbox check where enabled

    When mailbox checks are on, we ask the mail server about the exact address. If we did not test it, mailbox_checked says false and the verdict never claims valid.

Call it

One request. One answer shape.

Branch on status. A miss returns not_found and costs nothing. In Claude, just ask in plain English and it picks validate_email for you.

curl https://api.askravn.com/v1/tools/validate_email \
  -H "Authorization: Bearer $RAVN_API_KEY" \
  -d '{"email": "jane@acme.com"}'

{ "status": "ok",
  "results": { "email": "jane@acme.com", "status": "valid", "risk_score": "A",
    "reason": "mailbox_exists", "disposable": false, "role_account": false,
    "catch_all": false, "mailbox_checked": true },
  "metadata": { "lookups_used": 1 } }
FAQ

Questions about validate_email.

All questions →

How is this different from a regex?

A regex only checks the shape. We check the domain, its mail servers, burner and role lists and catch-all behaviour, and score the result A to F.

Can I verify a whole list?

Yes. validate_emails takes up to 1,000 addresses per call and returns one verdict per unique address. For CSVs, npx ravn enrich leads.csv --tool validate_email --column Email resumes if it stops.

What do the risk scores mean?

Every verdict has a 0–100 score graded A (90+) to F. A and B are safe to send, C means send with care (often a catch-all), D and F should be dropped.

Does verification cost extra?

No. Email checks count as lookups in your plan. Ravn is $24 a month with 10,000 lookups included, then $1 per 1,000, and a miss gives the lookup back.