Canonical host validator.voiddo.com is staged locally but DNS is not live yet. The API and key flow are working now on tools.voiddo.com/email-validator/; switch to the canonical host when the A record resolves.
MX
vøiddo revenue api Email Validator API
deterministic email gate for cold-email tools and signup forms

Stop paying to send
to bad addresses.

One address in. valid, risk, score, reasons out. This API catches role inboxes, disposable domains, dead MX, free providers, and risky TLD patterns before they touch your sender reputation or your signup flow.

<50ms hot-path latency on cached domains
6 signals format, role, disposable, free, TLD, MX
$0 AI deterministic logic, no token burn
meter visible headers + /v1/account/usage
where teams use it

Three moments where this saves money fast.

Cold-email products use it before queueing a send. E-commerce teams use it before creating a customer record. Internal ops teams use it to de-risk imports before an SDR or support workflow fans bad rows across the stack.

outbound hygiene

Trim hard-bounce bait before your sender touches it.

Reject role accounts, temp mail, and no-MX domains before they enter a campaign. Protect domain reputation without adding any LLM cost.

signup defense

Stop junk users from poisoning your CRM on day zero.

Score email quality at form submit time and branch the flow. Soft-warn free providers, hard-block dead or disposable domains, and keep support queues cleaner.

batch cleaning

Run bulk checks before enrichment or handoff.

Pro and paid-credit keys unlock the bulk endpoint for up to 100 rows per call, so you can clean CSV imports before you spend more downstream.

deterministic rule set

No black box. Just six signals you can explain to a buyer.

The output is opinionated but inspectable. This is a gate, not a fake AI promise about inbox placement. You can see exactly why an address was flagged and keep your own policy layer on top.

1 · structure

Format sanity

Invalid local parts, broken domains, missing separators, and obvious typo forms die immediately.

2 · bounce risk

Role mailbox detection

info@, support@, sales@, noreply@, and the rest of the common high-bounce prefixes are called out explicitly.

3 · temp mail

Disposable domain blocklist

Mailinator, YOPmail, 10 Minute Mail, TrashMail, Guerrilla Mail, and their aliases are treated as hard bad traffic.

4 · lead quality

Free-provider signal

Gmail, Yahoo, Outlook, and similar providers are not rejected, but they are marked so B2B teams can filter or score accordingly.

5 · abuse pattern

Risky TLD scoring

Cheap and frequently abused TLD families add risk without pretending every unusual domain is invalid.

6 · deliverability floor

Live MX lookup

Dead domains that still pass regex are the easiest way to torch a list. Live DNS catches them before your ESP does.

score interpretation

Low, medium, high risk is visible enough to automate.

Keep the threshold simple. Many teams send only when valid=true and risk != "high". Others allow medium-risk rows but downgrade them in enrichment or manual-review queues.

policy suggestion
def should_send(result: dict) -> bool:
    return result["valid"] and result["risk"] != "high"
low riskclean enough for normal flow
medium riskreview, segment, or deprioritize
high riskblock or force manual override
pricing

Free to start. Visible meter when the volume shows up.

The free key is enough to wire the contract. Pro keeps the same response shape and adds bulk plus the included monthly allowance. Prepaid packs exist for teams that prefer one-time spend over a subscription meter.

Free best for wiring the contract, testing policy, and small internal tools
daily cap
$0 / month
  • 50 checks per day
  • All six signals and full JSON response
  • Issue a key in seconds, no card required
  • No bulk endpoint
Pay as you go for teams that want credits instead of a recurring bill
one-time packs
$0.01 / check headline
  • $10 starter: 1,000 checks
  • $99 growth: 12,000 checks
  • Credits are consumed before free or Pro limits
  • No expiry, no auto-renew, same API key
quickstart

Three steps from zero to a usable gate.

The API is intentionally small: issue a key, hit one endpoint, and branch on a deterministic score. If you need more later, use the bulk path and the usage endpoint before you add any fancy wrapper.

01

Issue a key

Free keys are instant. Pro upgrades the key tied to your email, or creates one if you subscribe first.

GET /v1/keys/issue?email=you@company.com&tier=free
02

Check one email

The contract is one email in, one JSON object out. No hidden background jobs or async polling.

curl  \
  -H "Authorization: Bearer vev_your_key" \
  -H "Content-Type: application/json" \
  -d '{"email":"ceo@targetcompany.com"}'
03

Watch the meter

Every response carries usage headers now, and the usage endpoint exposes the current period overage count and amount.

curl  \
  -H "Authorization: Bearer vev_your_key"
your key