> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lusha.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Prospect and build ICP lists with Lusha

> Search Lusha's B2B database by ICP filters, then enrich the matching previews to generate net-new contact and company records for your CRM.

The Prospecting API lets you query Lusha's B2B database using filters that match your Ideal Customer Profile - job title, seniority, location, industry, company size, technologies, intent, and signals. Unlike the Enrich API, which fills in data on records you already know, Prospecting generates entirely new records you can load directly into your CRM.

## How prospecting works

Prospecting is a **filter, then enrich** flow. A prospecting search never returns full contact or company records - it returns a page of lightweight previews. You look up full data separately, only for the previews you actually want.

<Steps>
  <Step title="Search with filters">
    POST rich filter criteria to [`/v3/contacts/prospecting`](/api-reference/prospecting/prospecting-contacts) or [`/v3/companies/prospecting`](/api-reference/prospecting/prospecting-companies). The response returns a paginated list of matching previews - name, current company, job title/industry, location, and an `id` - plus a `canReveal` list showing what you could reveal and at what credit cost.
  </Step>

  <Step title="Enrich the previews you want">
    POST the `id` values you care about to [`/v3/contacts/enrich`](/api-reference/enrich/enrich-contacts) or [`/v3/companies/enrich`](/api-reference/enrich/enrich-companies) to reveal full data - verified emails, phone numbers, firmographics, and more.
  </Step>
</Steps>

<Info>
  There's no separate "enrich" endpoint scoped to prospecting results - Prospecting and Enrich are decoupled. Any `id` returned by a prospecting search can be enriched with the same Enrich endpoints you'd use for any other contact or company `id`.
</Info>

## Prospecting flows

<Tabs>
  <Tab title="Contacts">
    | Step         | Endpoint                                                           | Purpose                                                 |
    | ------------ | ------------------------------------------------------------------ | ------------------------------------------------------- |
    | 1 (optional) | `GET /v3/contacts/prospecting/filters` and `/filters/{filterType}` | Look up valid filter values                             |
    | 2            | `POST /v3/contacts/prospecting`                                    | Search for matching contacts; get back previews + `id`s |
    | 3            | `POST /v3/contacts/enrich`                                         | Reveal full contact data for the `id`s you want         |

    See [Search contacts](/prospecting/search-contacts) and the [API reference](/api-reference/prospecting/prospecting-contacts) for full details.
  </Tab>

  <Tab title="Companies">
    | Step         | Endpoint                                                            | Purpose                                                  |
    | ------------ | ------------------------------------------------------------------- | -------------------------------------------------------- |
    | 1 (optional) | `GET /v3/companies/prospecting/filters` and `/filters/{filterType}` | Look up valid filter values                              |
    | 2            | `POST /v3/companies/prospecting`                                    | Search for matching companies; get back previews + `id`s |
    | 3            | `POST /v3/companies/enrich`                                         | Reveal full firmographic data for the `id`s you want     |

    See [Search companies](/prospecting/search-companies) and the [API reference](/api-reference/prospecting/prospecting-companies) for full details.
  </Tab>
</Tabs>

## Premium filters

<Note>
  **Signal filtering** narrows results to contacts or companies with recent activity - a promotion, a company change, a hiring surge, and more. Filter by signal type under `filters.contacts.include.signals` or `filters.companies.include.signals`. Credits are charged for each matched signal type per result, on top of the standard per-result charge. See [Search contacts](/prospecting/search-contacts) and [Search companies](/prospecting/search-companies) for signal filter syntax.
</Note>

<Note>
  **DNC filtering** - pass `"options": { "excludeDnc": true }` on a contacts prospecting request to exclude contacts whose phone numbers are all marked Do Not Call. Contacts with at least one callable number remain in results.
</Note>

## Filter reference

Both filter categories expose dedicated endpoints for discovering valid values before you search.

<CardGroup cols={2}>
  <Card title="Contact filters" icon="person" href="/api-reference/filters/contact-filter-types">
    Look up available filter types and their valid values for contact prospecting searches.
  </Card>

  <Card title="Company filters" icon="building" href="/api-reference/filters/company-filter-types">
    Look up available filter types and their valid values for company prospecting searches.
  </Card>
</CardGroup>
