MailCull is built around one job done well: tell you exactly which addresses in a list are deliverable, risky, undeliverable, or unknown — and show you the evidence for every verdict so you can defend the decision.
This guide walks through the entire workflow from signup to first cleaned list, with the engine details that explain why a verdict is what it is. By the end you should know which checks ran, how to read the evidence chain, when to use Verify Email vs Verify List, and how to decide between the Free, Pro, and Scale tiers.
The four-status taxonomy
Every email MailCull validates ends up in one of four buckets. Same names everywhere — UI, API, CSV export, dashboard chips:
- Deliverable — server confirmed the mailbox exists and is not role-based, disposable, or catch-all
- Risky — real mailbox probably, but something makes sending uncertain (catch-all, role address, disposable provider, low-confidence cascade signal, signals-disagree on M365)
- Undeliverable — server rejected, format invalid, or no MX records
- Unknown — could not determine (greylisted, server refused, network error, timeout)
These four words never change. Workflows and integrations are keyed on them. We will not introduce a fifth status, rename the four, or split them into sub-categories — too many downstream things break.
Step 1: Sign up
Open MailCull and sign up for the free tier. No credit card. The Free tier includes:
- 100 deep-scan single-checks per month — full SMTP probe with the 20-code evidence chain
- 1,000 deep-scan list rows per month — same engine, batch mode
- Unlimited quick-scan — syntax, MX, typo, disposable detection
- Read-only API access — 100 requests/day for evaluation
- 30-day result retention
Quick-scan returns the verdict using only the cheap signals (regex, DNS lookup, typo distance, disposable list). Deep-scan adds the full SMTP probe, the M365 corporate cascade for Microsoft 365 tenants, the catch-all multi-probe consensus, and the evidence chain.
Step 2: Try Verify Email first
Verify Email validates one address at a time. It is the right tool when:
- You want to test a single high-stakes contact before sending
- You are evaluating MailCull and want to see the evidence chain in detail
- You want to validate inline in a workflow (one address per request via the API)
Open Verify Email, paste an address, hit verify. The result card shows the verdict at the top, then the full evidence chain expanded by default. Every check is a row with the finding code, the plain-English explanation, and the underlying signal.
A real example for a corporate Microsoft 365 address looks like this:
[email protected] ✓ deliverable
─────────────────────────────────────────────────────────
syntax_valid Email format passed RFC 5321 validation
mx_found MX record: example-corp-com.mail.protection.outlook.com
provider_microsoft Microsoft 365 protected tenant
m365_http_enum Microsoft confirmed mailbox via GetCredentialType
m365_smtp_corroborated SMTP probe agreed: 250 OK on RCPT TO
tls_upgraded STARTTLS handshake completed
smtp_confirmed Server returned 250 2.1.5 OK
Confidence: 0.94 Source IP: probe-1.mailcull.io
The confidence score (0 to 1) is the dominant-signal aggregate. 0.94 is high confidence — multiple independent signals agreed. A 0.62 verdict has signals contradicting each other (commonly: SMTP says yes but the domain is a catch-all, or the cascade says deliverable but role-based local-part).
Step 3: Upload a list with Verify List
Verify List handles bulk validation. The right tool when:
- You have a CSV from your ESP, CRM, or scraping tool
- You want to clean a list before importing into Mailchimp, Klaviyo, HubSpot, etc.
- You need filterable results to decide what to send and what to remove
The flow:
- Upload the CSV. MailCull accepts standard CSVs and finds the email column even if your file has extra columns (names, phones, company fields, tags). Per-upload cap on Free is 1,500 rows; Pro is 100,000; Scale is 500,000.
- Watch the progress strip. Quick-scan completes within seconds for thousands of rows. Deep-scan runs the full SMTP probe pipeline including the M365 cascade — typically 200ms-2s per row, with the per-MX rate limiter pacing the requests so we do not get probe-blocked.
- Review the four-status breakdown. The summary card shows counts for deliverable, risky, undeliverable, unknown. Each row has the verdict, the dominant reason, and the full evidence chain on click.
- Filter, sort, and export. Filter by status (e.g., export only deliverable rows). Sort by score, by confidence, or by domain. Download the cleaned CSV with the original columns plus the validation columns appended.
Step 4: Read the evidence chain
The evidence chain is the moat — what no other validator surfaces per-check. Worth knowing how to read it.
Domain-level flags (set during initial validation)
provider_microsoft— MX matches*.mail.protection.outlook.comprovider_google— MX matches.google.comor.googlemail.comfree_provider— Domain is in the free-provider list (Gmail, Yahoo, Outlook consumer, iCloud, AOL, Proton, Yandex, Zoho)role_based— Local-part is a role address (admin@, info@, support@, contact@)disposable_domain— Domain is on the disposable list (temporary email providers)mx_missing— DNS returned no MX recordstypo_suspected— Domain is one Levenshtein edit away from a known-good domainsmtp_catch_all_suspected— Multi-probe consensus indicates the domain accepts all recipients
SMTP outcome flags (the actual probe result)
smtp_confirmed— Server returned 250 OK for RCPT TOsmtp_rejected— Server returned 550 / 5.1.1 (mailbox does not exist)smtp_quota_exceeded— Mailbox exists but fullsmtp_greylisted— Temporary 4xx with greylisting hintsmtp_policy_block— Provider blocks probing (Proofpoint, Mimecast, etc.)smtp_timeout/smtp_connection_failed/smtp_protocol_error/smtp_unknown— Various error classes
M365 cascade flags (set when MailCull runs the Microsoft 365 cascade)
m365_http_enum— The cascade produced the verdict via Microsoft's auth endpointsm365_cache_hit— The verdict came from the per-mailbox cache (24h TTL)m365_smtp_corroborated— SMTP cross-check probe agreed with the cascade verdictm365_smtp_disagreed— SMTP cross-check probe contradicted the cascade — verdict downgraded to risky
When you see m365_smtp_disagreed and a risky verdict, MailCull caught a case where Microsoft's identity layer says "user exists" but the SMTP server bounces (typical for orphan directory entries — decommissioned employees whose identity is retained but mailbox is removed). Most validators return valid here and your client gets a bounce.
Step 5: Decide which plan fits
The free tier is enough to clean a real test segment monthly and decide if MailCull fits your workflow. If yes, the upgrade path:
| Plan | Single-checks/mo | List rows/mo | Price |
|---|---|---|---|
| Free | 100 deep-scan | 1,000 deep-scan | $0 |
| Pro | 5,000 deep-scan | 100,000 deep-scan | $19/month flat |
| Scale | 25,000 deep-scan | 500,000 deep-scan | $49/month flat |
Annual saves 20% (roughly 2 months free): Pro is $182/year, Scale is $470/year.
What is included on every plan including Free:
- Full 20-code evidence chain
- M365 corporate cascade with cross-check
- Catch-all detection with confidence scoring
- API access (read-only on Free, full on Pro+)
- Methodology page, status page, changelog access
- 30-day money-back on all paid plans (full refund if real-world bounce rate exceeds 3%)
What is not included anywhere — by deliberate scope choice:
- Email finder (Hunter owns that category)
- Deliverability suite (DMARC monitoring, blacklist monitoring, inbox placement testing)
- Email warmup
- White-label / custom-domain probe
- iOS app
We do one job — email validation with an explainable evidence chain — and we do it well. Bundles dilute focus.
When to use Verify Email vs Verify List
Use Verify Email when:
- You have one specific address to check
- You want to evaluate the engine on a single high-stakes contact before sending
- You are integrating per-request via the API (signup form validation, lead enrichment)
Use Verify List when:
- You have a CSV with more than 10 addresses
- You want filterable, sortable results
- You are doing pre-send hygiene on a list that will go into your ESP or CRM
Both run the same engine. Verify Email shows the evidence chain expanded by default; Verify List collapses it per-row but every row's chain is one click away.
The API
Every MailCull verdict is also available via API. The POST /v1/verify endpoint returns the verdict plus the full 20-code evidence chain in JSON:
{
"email": "[email protected]",
"status": "deliverable",
"score": 94,
"confidence": 0.94,
"reason": "smtp_confirmed",
"reason_flags": [
"syntax_valid", "mx_found", "provider_microsoft",
"m365_http_enum", "m365_smtp_corroborated",
"tls_upgraded", "smtp_confirmed"
],
"evidence": [
{ "signal": "syntax", "finding": "syntax_valid", "tone": "good", "confidence": 1.0 },
{ "signal": "mx", "finding": "mx_found", "tone": "good", "confidence": 1.0 },
{ "signal": "provider", "finding": "provider_microsoft", "tone": "good", "confidence": 0.95 },
{ "signal": "smtp", "finding": "smtp_confirmed", "tone": "good", "confidence": 0.94 }
],
"duration_ms": 1247
}
Free tier API access is read-only with 100 requests/day. Pro is full API at 10 req/sec. Scale is 50 req/sec.
What MailCull is not for
A few cases where MailCull is the wrong answer, in honest framing:
- You need email finder functionality — use Hunter
- You need DMARC monitoring or blacklist monitoring — use dmarcian, Postmark, or Valimail
- You need email warmup — use Mailwarm or Warmup Inbox
- Your procurement gates on SOC 2 Type II today — our audit is in progress (planned month 9 of 2026); if you cannot wait, ZeroBounce or Kickbox are the right answers
- Your procurement gates on ISO 27001 or HIPAA — we do not pursue these
For everything else — cold-email operators needing defensible verdicts, agencies running list hygiene as billable services, developers integrating validation into apps, B2B teams cleaning Microsoft 365 corporate lists — MailCull is built for exactly that.
Get started
Sign up for the free tier. 100 deep-scan checks per month plus 1,000 list rows. No credit card.
Or paste any email into the free single-email checker right now to see the evidence chain — no signup required.
If you have questions about the engine, the methodology, or which plan fits, email me directly at [email protected]. I read every signup's first few jobs personally.
— Neel, MailCull founder