Email verification, as a single endpoint.
A REST API for verifying email addresses — JSON in, JSON out. Built for product teams and AI agents that need programmatic answers, not dashboards.
GET one address. Get back a verdict.
A single GET with your key in a Bearer header and the address as a query param. No SDK required — plain HTTPS works in any language.
passedundeliverableriskyunknownSpotted a typo? When an address looks misspelled, mailfloss returns the likely correction in the suggestion field — here gmial.cmo becomes gmail.com. status stays the deliverability verdict; the fix always lives in suggestion, so you can offer the user a “Did you mean…?” prompt.
The developer surface.
Made for the AI era — every endpoint returns deterministic JSON an agent can call directly, no scraping or screen-reading required. Bearer token only. Rate limit is 10,000 requests/min per key — a 429 includes a Retry-After header. POST routes accept an Idempotency-Key header for safe retries.
Get pushed the result — skip the polling.
Two flavors: a per-job webhook on batch verifications, and broader account webhooks that fire as your lists are cleaned.
Account webhooks
React to changes across your mailfloss account — these fire as your lists are cleaned, not on individual /v1/verify calls. Each webhook is a name, one or more trigger events, a destination URL, a data source, and an optional secret.
status.*status.undeliverablestatus.riskystatus.unknownreason.*reason.bouncedreason.invalidreason.rolereason.disposablereason.blacklistedreason.accept_allreason.spamreason.complainer…contact.*contact.fixedcontact.unsubscribedcontact.deletedcontact.taggedcontact.updatedjobjob.finishedDelivery
Use cases that match the surface area.
Verify signups inline
Pass every incoming address through verify before it hits your users table — block disposable, surface a typo suggestion, reject invalid, all in one request.
Resolve addresses programmatically
Agents need ground-truth on whether an address is real. mailfloss returns a deterministic verdict with a closed status enum and structured reasons — ideal for tool calls.
Clean an inherited list
Acquired a database, or got a CSV from a partner? Submit the whole list to batch-verify and pass a webhook_url to get notified upon completion.
Verify before you send
Check an address right before a password reset, receipt, or magic link goes out — so critical mail doesn’t bounce and your sender reputation stays clean.
No SDK required — plain HTTPS works.
Every endpoint is a plain HTTPS call with a Bearer header, so any language with an HTTP client is ready today. Typed SDKs are on the way.
Pay per verification. No subscription required.
Prepaid credits — one credit per verification. The bigger the pack, the lower the per-credit price.
