# Search Contacts

Look up contacts by identifier. Returns a non-PII preview of each profile — no emails or phone numbers.

Accepted identifiers (one required per contact):
- Lusha contact id
- linkedinUrl
- email
- firstName + lastName + companyName or companyDomain

Up to 100 contacts per request. Each result includes:
- has — data points available on this profile
- canReveal — what you can unlock via Enrich Contacts, and the credit cost

Pass a signals filter to narrow results to contacts with recent activity (e.g. promotion, job change).

> Billing: Charged per successful result via the api_search action.

Endpoint: POST /v3/contacts/search
Security: ApiKeyAuth

## Request fields (application/json):

  - `contacts` (array, required)

  - `contacts.clientReferenceId` (string)
    Example: "my-ref-1"

  - `contacts.id` (string)
    Example: "12345"

  - `contacts.linkedinUrl` (string)
    Example: "https://www.linkedin.com/in/orit-shilvock-6243bb5"

  - `contacts.email` (string)
    Example: "orit.shilvock@lusha.com"

  - `contacts.firstName` (string)
    Example: "Orit"

  - `contacts.lastName` (string)
    Example: "Shilvock"

  - `contacts.companyName` (string)
    Example: "Lusha"

  - `contacts.companyDomain` (string)
    Example: "lusha.com"

  - `options` (object)
    Additional options for search requests

  - `options.includePartialProfiles` (boolean)
    Include partial profiles in results
    Example: true

  - `signals` (object)

  - `signals.types` (array, required)
    Enum: "allSignals", "promotion", "companyChange"

  - `signals.startDate` (string)
    Example: "2025-01-01"

  - `signals.maxResultsPerSignal` (integer)
    Example: 10

## Response 200 fields (application/json):

  - `requestId` (string)
    Example: "3c7f6d96-4a72-40cd-96c1-2efcfabeb727"

  - `results` (array)

  - `results.clientReferenceId` (string)
    Example: "my-ref-1"

  - `results.id` (string)
    Example: "4389064704"

  - `results.firstName` (string)
    Example: "Orit"

  - `results.lastName` (string)
    Example: "Shilvock"

  - `results.jobTitle` (object)

  - `results.jobTitle.title` (string)
    Example: "Vice President of Partnerships"

  - `results.jobTitle.departments` (array)
    Example: ["Business Development"]

  - `results.jobTitle.seniority` (string)
    Example: "Vice President"

  - `results.company` (object)

  - `results.company.id` (string)
    Example: "16303253"

  - `results.company.name` (string)
    Example: "Lusha"

  - `results.company.domain` (string)
    Example: "www.lusha.com"

  - `results.location` (object)

  - `results.location.country` (string)
    Example: "Israel"

  - `results.location.state` (string)
    Example: "Tel Aviv District"

  - `results.location.city` (string)
    Example: "Tel Aviv"

  - `results.socialLinks` (object)

  - `results.socialLinks.linkedin` (string)
    Example: "https://www.linkedin.com/in/orit-shilvock-6243bb5"

  - `results.has` (array)
    Example: ["firstName","lastName","jobTitle","location","socialLinks","emails"]

  - `results.canReveal` (array)

  - `results.canReveal.field` (string)
    Enum: "emails", "phones"

  - `results.canReveal.credits` (integer)
    Credit cost (0 when already revealed for this account)
    Example: 1

  - `results.signalTypes` (array)
    Example: ["promotion","companyChange"]

  - `results.error` (object)
    Per-item error in a batch response

  - `results.error.code` (string)
    Enum: "NOT_FOUND", "COMPLIANCE_RESTRICTED", "ENRICH_FAILED"

  - `results.error.message` (string)
    Example: "Contact not found"

  - `billing` (object)
    Credit usage summary for a V3 API request

  - `billing.creditsCharged` (integer)
    Total credits charged for this request
    Example: 3

  - `billing.resultsReturned` (integer)
    Number of successful results returned
    Example: 1

## Response 400 fields (application/json):

  - `statusCode` (integer, required)
    HTTP status code
    Example: 400

  - `message` (string, required)
    Error message
    Example: "Validation failed"

  - `errors` (array)
    Detailed error messages (optional, only for validation errors)
    Example: ["entityType must be one of: contact, company"]


