Syntax, domain and mail server
Each address is parsed, its domain resolved and its MX records read, so typos and domains that no longer take mail are caught before a mailbox is asked anything.
Verify one address or a whole list of up to 100,000 through a REST API. Every address comes back with a status, the reason behind it and the action to take, and you pay only for definitive answers: unknowns, duplicates and malformed addresses are free. The same checks run as MCP tools, so an AI assistant can verify a list for you.
Each address is parsed, its domain resolved and its MX records read, so typos and domains that no longer take mail are caught before a mailbox is asked anything.
The mail server is asked whether the mailbox exists, without sending a message. Catch-all domains, full inboxes and disabled mailboxes each come back as their own reason.
Flags mark disposable domains, role addresses such as info@ and sales@, and free providers, so your code decides how to treat each one.
When an address looks like a typo, did_you_mean carries the likely intended one, such as gmail.com for gmial.com.
Two ways in over REST and one over MCP, all on the same token and the same verification engine.
Send an address and get an id back at once. Read it until its status is completed, then branch on the result: deliverable, risky, undeliverable or unknown, with a reason, an action and the domain, mail server and mailbox detail behind it.
The check is asynchronous, so it fits where a short wait is fine: a contact before it enters your CRM, a lead before a sequence, an address before a one-off send. It is not a synchronous check that holds a signup form until it answers.
Send up to 100,000 addresses as JSON, or upload a CSV or TXT file of up to 20 MB and let the API find the address column and the header row. Duplicates and malformed rows are counted and skipped, never charged, and a list your credits cannot cover is refused before a single check runs.
Read progress from the list itself, then page through every result in the order you sent it. Lists and their results are deleted 30 days after upload.
The same checks are tools on the Unspam MCP server, so Claude, Cursor or any remote MCP client can verify an address or a list from a conversation and read back each result with its reason.
Five tools: verify_email, get_email_verification, create_email_list, get_email_list and get_email_list_results.
Four fields carry the answer, so your code branches on one value and still has the detail when it needs it.
Deliverable, risky, undeliverable or unknown: the one field to branch on.
Why it got that status: accepted, catch_all, full_inbox, disposable, invalid_syntax, invalid_domain, rejected, disabled, timeout, smtp_unavailable or provider_unverifiable.
Keep, review, remove or retry, so you do not have to map every reason to a decision yourself.
Whether the check used a credit. Unknown answers, duplicates and malformed addresses never do.
Pricing, speed, unknown results, lists and AI assistants.
API access comes with the Custom plan, from a $5 monthly minimum. Pay only for definitive answers, from $6.40 per 1,000 addresses.
See pricing