For the complete site index, see llms.txt. Docs index: llms-docs.txt. Marketing corpus: llms-full.txt. Docs corpus: llms-full-docs.txt. Prefer markdown URLs where available (append .md).. Product skill: skill.md. Pricing: pricing.md. Docs MCP: /docs/mcp. Site MCP: /mcp.

Free tool — no sign-up required

Email Validator

Free bulk email verifier and list cleaning tool. Validate single addresses or upload CSV files to find invalid emails, detect ~210k+ disposable domains, and verify live DNS MX records.

Try:

Comprehensive email health diagnostics.

Evaluate technical mail server compliance, disposable domains, and deliverability heuristics before sending campaigns to real customers.

RFC 5322 Syntax & Format

Verifies standard local-part and domain grammar, invalid characters, missing TLDs, and plus-address tags.

210k+ Disposable Domains

Instantly detects temporary and throwaway inboxes (Mailinator, Yopmail, Temp-Mail, Guerrilla Mail) with zero lag.

Live DNS MX Mail Servers

Queries public DNS for active mail exchange records, detects unreachable domains and implicit MX fallbacks.

Role & Provider Detection

Differentiates personal mailboxes from shared team aliases (support@, sales@, admin@) and consumer providers.

Automate email verification via API.

Integrate automated email validation into your signup flows, onboarding forms, or batch list imports.

1

Install the Node.js package

npm install reloop-email
2

Verify email health with Node.js

verify_email.ts
1import { Reloop } from "reloop-email";
2
3const client = new Reloop({
4 apiKey: process.env.RELOOP_API_KEY,
5});
6
7// 1. Verify a single email address
8const result = await client.tools.email.verify("alex@reloop.sh");
9
10console.log(result.health.state); // "undeliverable"
11console.log(result.health.score); // 0
12console.log(result.health.reason); // "no_mx_records"
13console.log(result.mailServer.implicitMxRecord); // true
14
15// 2. Or submit an asynchronous batch CSV/list check
16const batch = await client.tools.email.verifyBatch({
17 emails: ["user1@gmail.com", "user2@mailinator.com"],
18});
19console.log(`Batch token: ${batch.token}`);
3

Inspect JSON email health report (200 OK)

response.json
1{
2 "input": "alex@reloop.sh",
3 "domain": "reloop.sh",
4 "verdict": "invalid",
5 "isValidSyntax": true,
6 "isDisposable": false,
7 "isRoleAddress": false,
8 "isFreeProvider": false,
9 "mxRecords": [],
10 "confidence": 0.7,
11 "riskScore": 0.38,
12 "flags": ["NO_MX_RECORDS"],
13 "health": {
14 "status": "fail",
15 "summary": "Domain does not accept mail (no active MX records).",
16 "state": "undeliverable",
17 "score": 0,
18 "reason": "no_mx_records",
19 "user": "alex",
20 "domain": "reloop.sh",
21 "tag": null,
22 "attributes": {
23 "free": false,
24 "role": false,
25 "disposable": false,
26 "acceptAll": false,
27 "tag": false,
28 "numericalCharacters": 0,
29 "alphabeticalCharacters": 4,
30 "unicodeSymbols": 0,
31 "mailboxFull": false,
32 "noReply": false,
33 "secureEmailGateway": false
34 },
35 "mailServer": {
36 "smtpProvider": null,
37 "mxRecord": "reloop.sh",
38 "mxRecords": [],
39 "implicitMxRecord": true,
40 "hasMx": false
41 }
42 }
43}

Frequently asked questions.

Everything you need to know about email health scoring, batch limits, privacy, and deliverability.

Ship your first email in minutes

Open-source, deliverability-focused, and yours to self-host or run on Reloop Cloud. No lock-in, no rewrite later.

Reloop