Email verification
An email verifier
that charges only for real answers
The ProspectAPIs email verifier is an API that checks whether an address can receive mail before you send, without sending anything, and returns valid, invalid, catch-all or unknown with the reason and a score. You pay $0.003 only for a valid or invalid result; catch-all and unknown are free. Check one address, a list of 1,000 or a job of 50,000.
The numbers
Per our live price list, read each time this page renders: 4 statuses, 2 of them charged and 2 free.
- Per valid or invalid result
- $0.003
- Catch-all and unknown cost nothing.
- Per quick check
- $0.001
- DNS, lists and earlier results; no mail server contacted.
- Addresses per job
- 50,000
- Greylist retries and a signed callback.
- Free checks to start
- 333
- The $1 signup balance, no card.
What each result means
- valid. The mail server says the mailbox exists. Safe to send; if it bounces within 30 days, report it and the check is credited back under the bounce guarantee.
- invalid. The mailbox or the domain does not exist. Remove it from the list.
- catch-all. The domain accepts every address, so no server can say if this one is real. Free, with a tier that says how risky it is.
- unknown. The server did not give a clear answer this time, for example while greylisting. Free; a job retries it for you.
Why check before you send
Every hard bounce tells the mailbox providers that a sender does not keep its list clean, and a domain that bounces often lands in spam for everyone else on the list. A check costs a fraction of a cent and happens before the first message, so the address that would have bounced never gets the chance.
How a check works
- Full check. We ask the address's own mail server whether the mailbox exists, without sending any mail, and read the domain's DNS and our lists.
- Quick check. Only public DNS, our lists and our own earlier results; the mail server is never contacted. $0.001 an address, whatever the status, for forms and first passes.
- Domain lookup. What DNS knows about a domain, its mail provider and whether it is a catch-all, free and up to 300 an hour.
The rules behind each status and score are in the email verification API docs.
Bulk email verification
A verification job takes up to 50,000 addresses, checks them in the background, retries greylisted ones at about 5, 15 and 30 minutes and calls your webhook, signed, when it is done. Add a sample size to check a random part of a list first, or a monitor interval of 7 to 90 days to check the whole list again on a schedule and hear what changed. For a quick sort, one call to POST /v1/email/clean splits up to 1,000 addresses into keep, review and remove.
Find a missing address
Have a name and a company but no address? POST /v1/email/find takes a first name, a last name and a domain and returns the address that answers, at $0.009 only when one is found. A person you found with a read on the LinkedIn data API is the usual starting point.
The bounce guarantee
When an address we reported as valid bounces, report it within 30 days through POST /v1/email/outcomes and the price of that check is credited back automatically, once, to the account that paid for it, up to 10% of the valid checks that account was charged for in those 30 days. The clause is in our terms, and GET /v1/email/verify/calibration shows the bounce rate customers reported for each score band.
Where it runs
- REST API. One key and the JavaScript and Python clients, with an Idempotency-Key on every POST.
- Google Sheets. An Apps Script adds a menu that verifies a column of addresses.
- Zapier and Make. Their HTTP step calls the verify route with your key.
- Form widget. A key limited to quick checks of up to 5 addresses, from the sites you list, checks an email field as a visitor types.
- AI agents. The MCP server gives an agent every email tool on the same key.
What we keep
A single check or a quick check keeps no address: we store a one-way hash of each address with its domain and result, which powers the result cache, your stats and the bounce guarantee. A bulk job keeps its addresses so it can check them over time, and deletes them 7 days after the job completes. The details are in our privacy policy.
Every way to verify
One API key and one prepaid balance for all of them.
| Route | What it does | Price |
|---|---|---|
| POST /v1/email/verify | Check 1 to 25 addresses in one call, with a status, a reason, a score and a recommendation each. | $0.003 per valid or invalid result; catch-all and unknown free |
| POST /v1/email/verify/jobs | Check up to 50,000 addresses in the background, retried for greylisting, with a signed callback when done. | $0.003 per definite result |
| POST /v1/email/clean | Sort up to 1,000 addresses into keep, review and remove with quick checks. | $0.001 per address |
| POST /v1/email/find | Find a person's work address from first name, last name and domain. | $0.009 only when found |
| GET /v1/email/domain/:domain | What DNS knows about a domain: mail servers, provider, catch-all, disposable. | Free, 300 an hour |
How it works
- 1
Sign up for a key
Sign up and create an API key. The first $1 is free and needs no card.
- 2
Send the addresses
Up to 25 in one call for a form or a CRM, or a whole list as a background job.
- 3
Act on the recommendation
Each result says send, send_with_caution, retry_later or do_not_send, so your code can decide without reading the details.
Your first request
curl -X POST https://api.prospectapis.com/v1/email/verify \
-H "Authorization: Bearer $PROSPECTAPIS_KEY" \
-H "Content-Type: application/json" \
-d '{"emails": ["jane@acme.com", "sales@example.org"]}'One result of the answer, trimmed:
{
"email": "jane@acme.com",
"status": "valid",
"reason": "mailbox_exists",
"reason_text": "The mail server accepted this address.",
"score": 97,
"recommendation": "send",
"charged": true
}Every field, flag and reason is in the email verification API docs. Found the address with a read on the LinkedIn data API? Check it here before the first message; our guide to researching prospects with an AI agent shows where a checked address fits in an outreach run.
Questions
- What does an email verifier do?
- It tells you whether an address can receive mail before you send to it, so your bounce rate stays low and your sending domain keeps its reputation. Each address comes back valid, invalid, catch-all or unknown, with the reason.
- How much does it cost?
- $0.003 for each valid or invalid result. catch-all and unknown results are free, because they do not answer the question you paid for. A quick check, which never contacts the mail server, is $0.001 whatever the status.
- Do you send an email to check an address?
- No. A full check asks the address's own mail server whether the mailbox exists, without sending any mail. A quick check reads only public DNS, our lists and our own earlier results.
- Can I verify a large list?
- Yes. A verification job takes up to 50,000 addresses, runs in the background, retries greylisted addresses at about 5, 15 and 30 minutes and calls your webhook when it finishes. One call to POST /v1/email/verify takes up to 25.
- What happens if I send to a valid address and it bounces?
- Report it with POST /v1/email/outcomes within 30 days and the price of that check is credited back automatically, once, up to 10% of the valid checks you were charged for in those 30 days. Your later checks of that address then come back invalid.
- Do you keep the addresses I check?
- A single check or a quick check keeps no address: we store a one-way hash of each address with its domain and result. A bulk job keeps its addresses so it can check them over time, and deletes them 7 days after the job completes.
- Is there a free tier?
- Every account starts with $1 free and no card, about 333 checks, and catch-all and unknown results never cost anything.
- Can I use it from an AI agent or my own code?
- From an agent, yes: the hosted MCP server and the npm package prospectapis-mcp expose every email tool. From your own code, the JavaScript and Python clients are linked from the email verification guide.
Read next
- The API docs. Every field, flag and reason on the email verification guide.
- Pricing. Every product on one balance, on the pricing page.
- Errors. What each status code means and which to retry, on errors.
- Agents. Install the MCP server and verify from Claude, Cursor or any MCP client.