---
title: "Find emails"
method: POST
path: "/enrichment/emails"
tags: ["enrichment"]
---

# Find emails

`POST /enrichment/emails`

## Request

- Base URL: `https://api.leadsforge.ai`
- URL: `https://api.leadsforge.ai/enrichment/emails`
- Auth: `ApiKeyAuth` (a scheme the document does not define)

Request email finding. Two input modes (mutually exclusive): (1) personIDs - array of IDs obtained from POST /search, (2) people - array of objects, each with either linkedinURL (e.g. "https://www.linkedin.com/in/john-doe") or firstName + lastName + company name (e.g. "Salesforge", not a URL). Max 500 items. Original input fields are echoed back on each result for correlation. People array entries are deduplicated by normalized linkedinURL or by case-insensitive firstName+lastName+company; only one result is returned per unique person, so duplicate entries (e.g. two CRM records pointing at the same person with different externalIDs) will lose the externalIDs of the duplicates - send unique people if you need each externalID echoed back. Each person in the people array may include an optional externalID (max 128 chars), a pure passthrough value persisted with the result and echoed back in the webhook payload and GET /results response for client-side correlation; externalID is not supported in personIDs mode. Example with people: {"people": [{"linkedinURL": "https://www.linkedin.com/in/john-doe", "externalID": "crm-42"}, {"firstName": "Jane", "lastName": "Smith", "company": "Salesforge"}], "webhookURL": "https://example.com/webhook"}. Example with personIDs: {"personIDs": ["p_abc123", "p_def456"]}. Webhook delivery: 2xx = success; a failed delivery is retried immediately and then redelivered in the background for up to 24h, every attempt carrying the same X-Webhook-Delivery-Id header so repeated deliveries can be deduplicated.

## Headers

- `Idempotency-Key` string

## Request body

- StartEnrichmentRequest
  - `clientRequestID` string
  - `people` PersonInput[]
    - `company` string
    - `companyDomain` string
    - `externalID` string
    - `firstName` string
    - `lastName` string
    - `linkedinURL` string
  - `personIDs` string[]
  - `saveToList` boolean
  - `webhookURL` string

## Response `202`

Job created

- EnrichmentJobResponse
  - `channel` string
  - `clientRequestID` string
  - `completedAt` string
  - `consumedCredits` number
  - `createdAt` string
  - `failed` integer
  - `jobID` string
  - `processed` integer
  - `reservedCredits` number
  - `resultsURL` string
  - `status` string
  - `statusURL` string
  - `succeeded` integer
  - `total` integer
  - `updatedAt` string
  - `webhookURL` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Insufficient credits
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/leadsforge/apis/leadsforge-api.md) - [All operations](https://skmtc.dev/leadsforge/apis/leadsforge-api/llms.txt) - [OpenAPI document](https://skmtc.dev/leadsforge/apis/leadsforge-api/revisions/b4a6596215b5?raw)
