---
title: "Search and Enrich Contacts"
method: POST
path: "/v3/contacts/search-and-enrich"
tags: ["Search & Enrich"]
---

# Search and Enrich Contacts

`POST /v3/contacts/search-and-enrich`

Find contacts and reveal their full data in a single call. Combines Search and Enrich into one request.

Provide contact identifiers the same way you would for Search Contacts. Use the `reveal` field to control what gets unlocked (`emails`, `phones`, or both).

Up to 100 contacts per request.

> **Billing:** Two charges apply — one for the search (`api_search`) and one per revealed field. The `billing.creditsCharged` in the response reflects the total.

## Request body

- V3ContactsSearchAndEnrichRequest
  - `contacts` V3ContactSearchItem[], required
    - `clientReferenceId` string
    - `id` string
    - `linkedinUrl` string
    - `email` string, email
    - `firstName` string
    - `lastName` string
    - `companyName` string
    - `companyDomain` string
  - `reveal` string[]
  - `options` V3SearchOptions — Additional options for search requests
    - `includePartialProfiles` boolean — Include partial profiles in results

## Response `200`

Successful response

- V3ContactsSearchAndEnrichResponse
  - `requestId` string, uuid
  - `results` V3SearchAndEnrichContactResult[]
    - `id` string
    - `firstName` string
    - `lastName` string
    - `fullName` string
    - `jobTitle` object
      - `title` string
      - `departments` string[]
      - `seniority` string
    - `location` object
      - `country` string
      - `countryIso2` string
      - `state` string
      - `city` string
      - `continent` string
      - `coordinates` number[]
      - `isEuContact` boolean
    - `tags` V3ContactTag[]
      - `id` string
      - `name` string
      - `color` string
    - `emails` V3EmailAddress[]
      - `email` string, email
      - `type` 'work' | 'private' | 'unknown'
      - `confidence` string, nullable
      - `updateDate` string, date
    - `phones` V3PhoneNumber[]
      - `number` string
      - `type` 'mobile' | 'direct' | 'work' | 'unknown'
      - `doNotCall` boolean
      - `updateDate` string, date
    - `company` V3EnrichedContactCompanyRef
      - `id` string
      - `name` string
      - `domain` string
      - `industry` string
    - `socialLinks` object
      - `linkedin` string
      - `xUrl` string
    - `previousEmployment` object[]
      - `company` object
        - `name` string
        - `domain` string
      - `jobTitle` object
        - `title` string
        - `departments` string[]
        - `seniority` string
    - `updateDate` string, date
    - `error` V3ItemError — Per-item error in a batch response
      - `code` 'NOT_FOUND' | 'COMPLIANCE_RESTRICTED' | 'ENRICH_FAILED' | 'NO_SCORE'
      - `message` string
    - `clientReferenceId` string
  - `billing` V3Billing — Credit usage summary for a V3 API request
    - `creditsCharged` integer — Total credits charged for this request
    - `resultsReturned` integer — Number of successful results returned

## Other responses

- `400` — Bad request - invalid input data
- `401` — Unauthorized - invalid or missing API key
- `402` — Payment required - insufficient credits
- `403` — Forbidden - account inactive, V3 access not enabled, or plan does not include this feature
- `429` — Too many requests - rate limit exceeded

---

[API](https://skmtc.net/lusha/apis/lusha-api-documentation.md) · [All operations](https://skmtc.net/lusha/apis/lusha-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lusha/lusha-api-documentation/revisions/d37bb08edd61/schema)
