Skip to main content
Search and Enrich Contacts combines Search Contacts and Enrich Contacts into one request. Send the same identifiers you’d use for Search Contacts, and get back fully enriched profiles - no intermediate step to inspect matches and pass id values around.
This is a single endpoint for one contact or a hundred. Send an array of 1 to 100 contacts in one call.

When to use this instead of the two-step flow

Use Search and Enrich Contacts when you already trust your match criteria and want the full record in one round trip - for example, syncing a CRM import where every row already has an email or LinkedIn URL you’re confident in. Use the two-step Search → Enrich flow instead when you want to inspect canReveal and its credit cost before spending credits - for example, when a rep reviews a match before you enrich it.

Identifiers you can search by

Provide one of the following for each contact:
  • Lusha contact id
  • linkedinUrl
  • email
  • firstName and lastName and (companyName or companyDomain)

Controlling what gets revealed

Use the reveal field to control what gets unlocked for each matched contact:
  • emails - work and personal email addresses
  • phones - mobile and direct phone numbers
Omit reveal entirely to get both by default. If a contact can’t be found or enriched, its result contains an error with a code of NOT_FOUND, COMPLIANCE_RESTRICTED, or ENRICH_FAILED instead of profile data.

Billing

Two charges apply per successful contact: one for the search, via the api_search action, and one per revealed field (email or phone), via per-datapoint pricing. For full request and response field details, see the Search and Enrich Contacts API reference.