Skip to content
Docs

Overview

Queue-first B2B email discovery and lightweight identity resolution from LinkedIn profile URLs or public identifiers. Email Finder uses Lempile-owned resolver logic; it does not call Apify or an external contact database. When a workspace has a Ready connected LinkedIn account, Lempile may use that same-workspace account to resolve the visible profile identity before company domain and email verification.

Quick Start#

Create a key in your console: Email Finder → Create key (lempile.com/dashboard/email-finder). It only works for the Email Finder and is shown once.

Create a job:

Shell
curl -X POST "https://api.lempile.com/email-finder" \
  -H "X-API-KEY: $LEMPILE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "linkedin_url_or_ids": [
      "https://www.linkedin.com/in/nick-hampson1",
      "swaroop-mehetar"
    ]
  }'

The API returns 202 with a job id and polling endpoints. Poll the job until status becomes Completed or Error, then fetch items or CSV.

You can also pass safe identity hints. This is the preferred shape when you already know the person or company because it lets Lempile resolve from company website evidence without waiting on Google Search evidence.

JSON
{
  "records": [
    {
      "linkedin_url_or_id": "https://www.linkedin.com/in/mike-novak-34b8733",
      "first_name": "Mike",
      "last_name": "Novak",
      "company": "Louder Than Digital",
      "company_domain": "louderthandigital.com"
    }
  ]
}

Behavior#

  • Email Finder returns business/work emails only by default.
  • Gmail, Yahoo, Outlook, iCloud, disposable, and similar personal domains are suppressed by default.
  • The resolver checks cache, input hints, same-workspace LinkedIn profile identity when available, public LinkedIn profile previews, company websites, company email patterns, and ranked candidate generation.
  • Verification is internal-owned by default: syntax, personal/disposable/role suppression, DNS/MX, known provider/domain behavior, SMTP-safe catch-all/candidate checks, and cached results.
  • External verifier fallback is disabled by default. Suppressed, impossible, MX-missing, and internally rejected candidates are never sent to an external provider.
  • Results include safe identity fields such as name, title, headline, company, company URL, domain, and location when evidence supports them.
  • Google Search evidence is a bounded fallback only when the Google Search cookie/proxy pool is ready. If it is not ready, items finish deterministically with a safe Not Found reason instead of creating stuck Search rows.
  • Connected LinkedIn account usage is controlled: same workspace only, leased, low concurrency, and used for profile identity resolution only.
  • Provider payloads, API keys, LinkedIn cookies, proxy credentials, CAPTCHA tokens, and passwords are never returned in diagnostics.

Pricing#

  • You pay only for emails the company's mail server confirmed: items with status Found. Uncertain, Not Found, Suppressed and Error are free.
  • Each billing period includes 1,000 found emails. After that, €10 per 1,000 (£10, $11, C$15.40, A$17.60 or NZ$18.70 per 1,000), on the same monthly invoice.
  • During the 7-day trial, the Email Finder stops at the 1,000 included: new jobs answer 402 email_finder_trial_limit until the subscription starts.
  • GET /email-finder/usage returns this period's found emails, the billable ones and the estimated amount.

Item Statuses#

  • Found: an exact work email was observed publicly or a generated candidate was confirmed by the internal SMTP-safe verifier.
  • Uncertain: the domain is catch-all, protected, greylisted, unknown/timeout, or a generated candidate has strong pattern/MX evidence without deliverability proof.
  • Not Found: no safe work email was found, identity/company/domain was not resolved, or public evidence was unavailable.
  • Suppressed: an email was found but suppressed by policy, usually personal or disposable.
  • Error: the item failed after retries or the input was invalid.

Uncertain items include a safe confidence_bucket and uncertain_bucket. confidence_bucket: "likely" means Lempile has strong identity, domain, and pattern evidence, but the receiving mail server did not allow strict mailbox proof. Typical uncertain_bucket values are catch_all, protected, greylisted, timeout, temporary_failure, unknown, and low. Greylisted, timeout, and temporary-failure candidates may receive background SMTP-safe retries with retry_after and retry_strategy.

A job can be Completed while some items still wait for a retry: counts.retrying says how many, and next_retry_at when the next one runs. Read the job again after next_retry_at until counts.retrying is 0. A retried item can become Found, and is billed only then.

Endpoints#

  • POST /email-finder
  • GET /email-finder/jobs/{jobId}
  • GET /email-finder/jobs/{jobId}/items
  • GET /email-finder/jobs/{jobId}.csv
  • GET /email-finder/usage

Scopes:

  • Create jobs: email_finder.write
  • Read jobs/results: email_finder.read

Was this page helpful?