Skip to main content
Search Contacts looks up contacts by identifier and returns a non-PII preview of each match - no emails or phone numbers yet. Use it as the first step before revealing full data with Enrich Contacts, or when you only need firmographic and job-title context without spending reveal credits.
This is a single endpoint for one contact or a hundred - there’s no separate “single” and “bulk” version. Send an array with 1 to 100 contacts in one call.

Identifiers you can search by

Provide one of the following for each contact in your request:
  • Lusha contact id
  • linkedinUrl
  • email
  • firstName and lastName and (companyName or companyDomain)
Attach your own clientReferenceId to each contact in the request. Lusha echoes it back on the matching result, so you can line results back up with your input list.

What you get back

Each result includes:
  • Preview data - name, job title, seniority, department, company, location, and LinkedIn URL, when available.
  • has - the data points already present on this profile.
  • canReveal - which fields (emails, phones) you can unlock via Enrich Contacts, and the credit cost for each. A cost of 0 means you’ve already revealed that field for this account.
If a contact can’t be found, the result contains an error with a code of NOT_FOUND, COMPLIANCE_RESTRICTED, or ENRICH_FAILED instead of profile data.

Filtering by recent activity

Pass a signals filter to narrow your results to contacts with recent activity, such as a promotion or a job change. Matching results include a signalTypes array showing which signal fired.

Billing

Search Contacts is charged per successful result via the api_search action. Looking up a contact that returns NOT_FOUND isn’t charged.

Next step

Once you have contact id values from your search results, pass them to Enrich Contacts to reveal emails and phones - or use Search and Enrich Contacts to do both in one call next time. For full request and response field details, see the Search Contacts API reference.