# Search Contact Signals

Search for contact signals using identifiers like LinkedIn URL, email, or name + company.
This endpoint combines search and signal enrichment in a single request.

Endpoint: (POST) https://api.lusha.com/api/signals/contacts/search

Search Requirements:
Each contact can be identified by:
- Contact ID
- LinkedIn URL
- Email address
- Full name + Company (name or domain)

Default Behavior:
- Returns signals from the last 6 months by default
- Contacts are matched based on provided identifiers
- Returns both contact data and associated signals

Endpoint: POST /api/signals/contacts/search
Security: ApiKeyAuth

## Request fields (application/json):

  - `contacts` (array, required)

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

  - `contacts.social_link` (string)
    Example: "https://www.linkedin.com/in/ron-nabet"

  - `contacts.full_name` (string)
    Example: "Ron Nabet"

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

  - `contacts.companies` (array)

  - `contacts.companies.name` (string, required)
    Example: "Lusha"

  - `contacts.companies.domain` (string, required)
    Example: "lusha.com"

  - `contacts.companies.is_current` (boolean)
    Example: true

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

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

  - `maxResultsPerSignal` (integer)
    Example: 10

## Response 200 fields (application/json):

  - `contacts` (object)

  - `endDate` (string)
    Example: "2025-07-31"

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

  - `creditCharged` (integer)
    Example: 2

## 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"]


