Enrichment

Reverse email lookup: find the person behind an email address

One email in, the person who holds it out. 1 record per match. A 404, where nobody holds the address, costs nothing.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

What you get

A reverse email lookup returns the identity behind an address: name, LinkedIn URL, job title and employer. It also echoes the address back with its own type, status and check date. It does not return the full profile. For that, call the enrich endpoint, which costs the same and reads the same cached record.

FieldWhat it isExample
person_idThe record the answer came from"1234567"
person_group_idThe person, across duplicate records"1234567"
linkedin_urlLinkedIn profile URL, or null"https://www.linkedin.com/in/jane-doe"
full_nameTheir name"Jane Doe"
job_titleCurrent title"Finance Manager"
company_nameCurrent employer"Acme"
company_domainEmployer domain"acme.com"
queryThe address you sent, as we compared it"jane.doe@acme.com"
matchedThe address as the record holds it, with type, status and check date"verified", "work"
matched_in_recordWhether the record lists the exact address you senttrue

Every identity field can be null. About one person in five has no LinkedIn URL, so a real match can come back without one.

What you send

InputRequiredNote
emailOne of the twoThe address to look up.
phoneOne of the twoA number in any common format. Same endpoint, same price.

Send exactly one. The key needs the enrich scope. There is no lookup by name and company. Search by company domain first, then enrich by person_id.

Three ways to run it

In the app

Not for this lookup. The Exports page at app.leadocean.io is a filter builder with a column picker, a price preview and a CSV download. Its columns include profile_url, but the docs describe no way to upload a list of emails. Use the API or an agent for reverse lookups.

With the API

bash
curl -s -G "https://api.leadocean.io/v2/people/reverse" \
  --data-urlencode "email=jane.doe@acme.com" \
  -H "x-api-key: $LEADOCEAN_API_KEY"

The response has the shape the docs show. These values are placeholders:

json
{
  "success": true,
  "data": {
    "person_id": "1234567",
    "person_group_id": "1234567",
    "linkedin_url": "https://www.linkedin.com/in/jane-doe",
    "full_name": "Jane Doe",
    "job_title": "Finance Manager",
    "company_name": "Acme",
    "company_domain": "acme.com",
    "query":   { "email": "jane.doe@acme.com" },
    "matched": { "email": "jane.doe@acme.com", "status": "verified",
                 "verified_batch_date": "2026-09-14", "type": "work" },
    "matched_in_record": true
  },
  "meta": { "source": "leadocean", "schema": "leadocean.contact.reverse.v2",
            "stability": "stable", "credits": 1 }
}

POST with a JSON body works too. Developer detail is in Reverse Email Lookup API.

From an AI agent

The MCP tool is leadocean_get_lead. Pass email and it returns the full person record, so it is the enrich call rather than the thin reverse block. It also takes phone for the reverse number lookup. Try: "Who is jane.doe@acme.com? Give me her title and employer." Setup is in Reverse Email Lookup over MCP.

What it costs

One call that finds a person is 1 record. A 404, where nobody holds the address, costs nothing. A 200 with sparse fields still costs 1. Rejected requests (429, 402, 503) are never metered.

Free gives you 1,000 records, one-off, no card. Pro is $499 a month, flat, with no per-record price, inside fair use. See pricing.

Worked example: you look up 10,000 emails. Say 6,000 match, an assumption, because the docs publish no match rate. That is 6,000 records, and the 4,000 misses cost nothing. Free covers the first 1,000 once. On Pro the month is $499 whatever the count.

Coverage

LeadOcean holds 693M people, and 366M of them have an email (measured 2026-09-23). That is a little over half. An address outside that set returns a 404. Test a sample of your own list before a large run.

Accuracy and limits

  • A match is evidence, not proof. matched_in_record: false means we matched the person on your address upstream, but the record does not list that exact address. It does not mean nobody was found. No person at all is a 404.
  • Read matched.status. It is the deliverability status of the address you sent. Values include verified, catch_all_valid, catch_all, untested, risky and invalid.
  • No refund for bounces. Read the status before you send.
  • Duplicates. The same person can return under different person_id values. Compare person_group_id.
  • Rate limit. 100 requests per second per key, on every plan.
  • Errors. 400 validation, 401 bad key, 403 missing scope, 404 nobody holds it, 503 store unreachable and never billed.
  • Gap. The docs describe no batch version, so a list means one call per address.

FAQ

Is reverse email lookup free?

The 404 is. A match costs 1 record. Free gives 1,000 records once, with no card.

Can I look up a personal email like Gmail?

The endpoint takes any email address and matched.type labels the one you sent. The docs publish no match rate by type, so test a sample first.

Can I search by name instead?

No. There is no name lookup. Search by company domain, then enrich by person_id.

How do I compare tools?

See the best reverse email lookup tools. For other lookups, see the Enrichments hub.

Look up your first email free

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →