Email Finder APIVerified with the mail server, no email sent

Email Finder API: find work emails
by name and company domain

Give us a first name, last name and company domain. We test the most common email formats with that company's mail server and return the one it accepts. Nothing is sent to the person, and you only get an address when the server confirmed it.

Read the docs10 credits per search100 free credits, no card needed

Formats are tested in order and the search stops at the first one the mail server accepts. This diagram is a preview. Find email runs the real search in the API playground, after a free sign-up if you are new.

How it works

How the Email Finder API finds an address

One request does three things. Each step is checked with the company's real mail server, which is why you get a confirmed address instead of a best guess.

  1. Build the likely formats

    From the name you send, we build the email formats companies use most, such as jane@, jane.doe@ and jdoe@. A full name gives more formats to test than a first name alone.

  2. Ask the company's mail server

    We look up the domain's mail server and check each format with it, one at a time, in a fixed order. No message is ever sent. A search checks up to 16 addresses.

  3. Return the first accepted address

    The search stops at the first address the server accepts and returns it with the server's verdict. If the server accepts everything or rejects everything, you get that as a status instead of a guess.

What comes back

Every search ends with one of four results

The status field tells you exactly what happened. You get an email address only when the mail server accepted it. In every other case you get the reason, so your code can decide the next step.

Credits refunded on503 capacity_exceeded retry after the Retry-After delay422 email_unverifiable Yahoo, ymail.com and rocketmail.com cannot be checked

The request

One GET request. Three parameters.

firstName and domain are required. lastName is optional, but without it only first-name formats like jane@ are tried, so send the full name when you have it. Results are never cached. Every call is a live check with the mail server.

Request parameters

Sent as query parameters with a Bearer API key
firstNamerequired · 1 to 64 characters, at least one letter
The person's first name. Accents and capitals are fine.
lastNameoptional · 1 to 64 characters, at least one letter
The person's last name. Leave it out and only first-name formats are tried, so send it when you have it.
domainrequired · 3 to 253 characters, like example.com
The company's email domain. Send the bare domain, not a URL or an address.
GET/v1/emails/findbash
curl -G "https://api.envoapi.com/v1/emails/find" \  -H "Authorization: Bearer $ENVO_API_KEY" \  --data-urlencode "firstName=Jane" \  --data-urlencode "lastName=Doe" \  --data-urlencode "domain=example.com"
Response200foundjson
{  "data": {    "email": "[email protected]",    "status": "found",    "isCatchAll": false,    "isDisposable": false,    "candidatesChecked": 2,    "verification": {      "mx": "mx.example.com",      "status": "valid",      "reason": "accepted"    }  },  "meta": {    "creditCost": 10  }}
data.emailstring | null
The accepted address. Present only when status is found.
data.statusenum
found, catch_all, not_found or no_mx.
data.candidatesCheckedinteger
How many addresses were checked, from 0 to 16.
data.isCatchAllboolean
True when the domain accepts every address.
data.isDisposableboolean
True when the domain is a known throwaway email provider.
data.verificationobject | null
The mail server we asked (mx), its verdict (status) and a stable reason code.
meta.creditCostinteger
Credits charged for this search: 10.

Error handling

What each error means and what to do next

Every error carries a stable error.code. Two of them refund the search. Only one of them should be retried as-is.

422 email_unverifiablerefunded · Do not retry
The domain is a Yahoo mailbox (yahoo.*, ymail.com or rocketmail.com). These cannot be checked. Credits are refunded.
503 capacity_exceededrefunded · Retry after the Retry-After delay
The verification provider is full right now. Credits are refunded. Wait for the number of seconds in the Retry-After header, then send the same request again.
429 rate_limit_exceedednot charged · Wait, then retry
Your API key sent more requests per minute than your plan allows. Nothing is charged. Slow down and retry after the Retry-After delay.
402 insufficient_creditsnot charged · Top up, then retry
Your account has fewer than 10 credits left. Nothing is charged. Watch the X-Credits-Remaining header on every response to see it coming.
400 invalid_requestnot charged · Fix the request
A parameter is missing or breaks a rule above. Nothing is charged. The error details name the field.

Pricing

10 credits per search, on every plan

A search is charged once it reaches a result. Credits are shared across every EnvoAPI endpoint, so the table shows what a plan buys if you spend it all on email searches. See full pricing.

PlanPer monthCreditsEmail searchesPer searchRate limit
FreeFree10010Free10 RPM
Launch$4910,0001,000$0.04960 RPM
Growth$14950,0005,000$0.03120 RPM
Scale$499250,00025,000$0.02300 RPM
Volume$1,7991,000,000100,000$0.018600 RPM

Need more than the largest plan? Enterprise plans add custom volume, rate limits and an SLA. Talk to us.

Use cases

Where teams use the Email Finder API

Already have an email address? Check it with the Email Verification API for 2 credits instead.

Which endpoint

Find, verify or check: pick the right email endpoint

EnvoAPI has three email endpoints. They answer different questions and cost different amounts, and they work well in sequence.

Integration tips

Get more out of every search

FAQ

Frequently asked questions

What does an email finder API do?

It turns a person's name and their company's domain into a work email address. EnvoAPI builds the email formats companies use most, checks them with the company's mail server in order, and returns the first one the server accepts.

How accurate is the Email Finder API?

We only return an address the company's mail server has accepted. If the server accepts everything (a catch-all) or rejects every format, we tell you that instead of guessing. You never get an address that was not confirmed.

Do you send an email to check the address?

No. Each address is checked with the company's mail server directly. The person never receives a message.

Which email formats are tried?

Common work-email formats built from the first and last name, such as jane, jane.doe and jdoe, in a fixed order, up to 16 per search. The search stops at the first address the server accepts, and candidatesChecked tells you how many were tried.

Is the last name required?

No. firstName and domain are required and lastName is optional. Without a last name only first-name formats are tried, so send the full name when you have it.

What does it cost?

10 credits per completed search, whether the result is found, catch_all, not_found or no_mx. The free plan includes 100 credits, which is 10 searches. Paid plans start at 10,000 credits a month, which is 1,000 searches.

Why is a search charged when no address is found?

A search that reaches a result is charged, because the mail server was checked. Only two errors are refunded: 503 capacity_exceeded and 422 email_unverifiable.

What should I do with a catch-all domain?

Treat it as unconfirmed. The domain accepts every address, so EnvoAPI returns no email rather than guess one. If you need to contact the person anyway, use a different channel or expect a possible bounce.

Does it work for Gmail or other personal addresses?

The finder searches one company domain, so it is built for work emails. Yahoo, ymail.com and rocketmail.com mailboxes cannot be checked at all. Those searches return 422 email_unverifiable and the credits are refunded.

Are results cached?

No. Every call is a fresh check with the mail server, so the response has no cache status. Save results on your side if you may need them again.

Start free

Try 10 searches for free.

Every new account gets 100 credits. No credit card needed.