Skip to content
ProspectAPIs

API reference / Email verification

Find an email address

Written and maintained by The ProspectAPIs team

POST/v1/email/find

POST /v1/email/find is the ProspectAPIs operation emailFind, in the Email verification group of the REST API. Checks the common company patterns for a person against the mail server, most common first, and returns the first that is valid. $0.02 only when an address is found; nothing found, a catch-all domain (best_guess, unconfirmed) or an unknown answer is free. Cost: $0.02 per found address; nothing found or catch-all is free. Send your API key as a Bearer token in the Authorization header.

How this fits with the rest of the email verification API, with worked examples, is in the email verification guide.

Parameters

Parameters of POST /v1/email/find
NameInTypeDescription
Idempotency-KeyheaderstringMake a retry safe: the same key and body within 24 hours replays the first answer, unbilled.

Request body

JSON (EmailFindRequest).

Request body of POST /v1/email/find
FieldTypeDescription
first_name requiredstringAt most 80 characters.
last_namestringAt most 80 characters.
domain requiredstring
Example body
{
  "first_name": "first name",
  "domain": "acme.com"
}

Responses

Response codes of POST /v1/email/find
StatusMeaning
200The result.
400The request was invalid (e.g. a bad filter or input); nothing was charged.
401The API key is missing or invalid.
402Out of credits. The body carries top_up_url; nothing was charged.
429Per-account probe budget reached; Retry-After.

Every error answers with the same JSON body, an error string and sometimes a code; the errors page lists each status and when it happens. A per-key 429 carries Retry-After; see rate limits.

200 response fields

The result. The body is a EmailFindResult.

Fields of the 200 response
FieldTypeDescription
statusstring: found, catch_all, unknown, not_found
emailstring or null
patternstring or null
best_guessstring or null
domainstring
scoreinteger
recommendationstring
reasonstring or null
checkedarray of object
checked[].emailstring
checked[].patternstring
checked[].statusstring
checked[].reasonstring or null
chargedboolean
amount_usdnumber
checked_atstring (date-time)

Code samples

Each sample sends the same request. Set PROSPECTAPIS_KEY in your environment first. Values come from the spec's examples; replace them with your own.

curl
curl -X POST https://api.prospectapis.com/v1/email/find \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "first_name": "first name", "domain": "acme.com" }'
JavaScript (fetch)
const res = await fetch("https://api.prospectapis.com/v1/email/find", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PROSPECTAPIS_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "first_name": "first name",
    "domain": "acme.com"
  }),
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json().catch(() => ({}))).error ?? res.statusText}`);
const data = await res.json();
console.log(data);
Python (requests)
import os, requests

res = requests.post(
    "https://api.prospectapis.com/v1/email/find",
    headers={"Authorization": f"Bearer {os.environ['PROSPECTAPIS_KEY']}"},
    json={
        "first_name": "first name",
        "domain": "acme.com",
    },
    timeout=30,
)
res.raise_for_status()
data = res.json()
print(data)

Billing

Billing reserves before it serves: the call holds what it may cost, serves at most what that hold covers, and refunds the rest when the response closes. Any non-2xx answer refunds the whole hold, so a failed call costs nothing. The response reports your balance in X-Credits-Remaining.

The email verification guide covers this area end to end. Previous operation: Report what happened when you sent. Next operation: Look up an email domain. Every operation, grouped by area, is on the API reference index.

Create a free account to get a key, then run the samples above with your own values (this call acts for real, so use real inputs).

Was this page helpful?