> ## 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.

# Discover lookalike contacts and companies with AI

> Use AI-powered similarity search to find new prospects that match your best contacts and accounts based on seed data you already own.

The Lookalikes API uses AI to surface new prospects that closely resemble contacts or companies you already know. Feed it a set of seed records - people or accounts you consider high-quality - and it returns ranked candidates with similar roles, seniority levels, firmographics, and industry patterns. This lets you expand your pipeline without rebuilding your ideal customer profile from scratch.

## What lookalikes do

* **Contact lookalikes** - Given 5–100 seed contacts identified by LinkedIn URL, email, Lusha contact ID, or name plus company, the API returns new contacts who share comparable job functions, seniority, and industry characteristics.
* **Company lookalikes** - Given 5–100 seed companies identified by domain or LinkedIn company URL, the API returns companies with similar firmographics such as employee count, industry, and geography.

Both endpoints return lightweight previews and use the same `dedupeSessionId` deduplication mechanism, so you can paginate through results across multiple calls without receiving the same record twice.

## How deduplication sessions work

Each lookalike run is tracked with a `dedupeSessionId`. The server uses this ID to remember which results it has already returned for a given seed set, so subsequent "get more" calls skip over contacts or companies you have already seen.

<Steps>
  <Step title="First request - start a new session">
    Omit `dedupeSessionId` entirely. The server generates a new session, returns the first page of results, and includes the `dedupeSessionId` in the response body.
  </Step>

  <Step title="Subsequent requests - fetch more without duplicates">
    Pass the `dedupeSessionId` from the previous response back in the next request body. The server deduplicates all results it has returned so far for that session and returns only new candidates.
  </Step>
</Steps>

<Note>
  Session history is retained for **30 days** from the last activity using a sliding window. After 30 days of inactivity, the session expires and a new one is created on the next request.
</Note>

You can also provide an `exclude` parameter on any request to filter out specific contacts or companies regardless of session state. The server combines your exclusions with its own session-level deduplication on every call.

## From lookalike to full record

Lookalike results are lightweight previews - name/domain, company, job title or industry, and location. They don't include emails or phone numbers. Pass the `id` from each result you want into the Enrich API to reveal full data:

<CardGroup cols={2}>
  <Card title="Enrich contacts" icon="user" href="/api-reference/enrich/enrich-contacts">
    Reveal emails, phones, and full profile data for contact lookalike `id`s.
  </Card>

  <Card title="Enrich companies" icon="building" href="/api-reference/enrich/enrich-companies">
    Reveal full firmographic data for company lookalike `id`s.
  </Card>
</CardGroup>

## Available endpoints

<CardGroup cols={2}>
  <Card title="Contact lookalikes" icon="user" href="/lookalikes/contact-lookalikes">
    Find contacts similar to your seed contacts with `POST /v3/contacts/lookalike`.
  </Card>

  <Card title="Company lookalikes" icon="building" href="/lookalikes/company-lookalikes">
    Find companies similar to your seed accounts with `POST /v3/companies/lookalike`.
  </Card>
</CardGroup>
