POST https://api.lusha.com/prospecting/contact/search is step 2 of the 3-step prospecting flow. You pass a set of filters that describe your Ideal Customer Profile and receive back a paginated list of matching contacts, each with a contactId. No credits are consumed at this step - credits are charged when you enrich the results in step 3.
Before building your request, use the Contact Filters endpoints to look up the valid values for each field.
Request body
Send a JSON body with afilters object. Filters are split into contacts and companies, each with include and exclude sections. All filter fields are optional - include only the ones relevant to your ICP.
Common filter fields
Signal filtering (premium feature)
You can narrow results to contacts at key career moments by filtering on signal types.Signal filtering is a premium feature. Credits are charged for each signal type that returns results.
signal object under filters.contacts.include to match contacts who have recently experienced a specific event:
allSignals, promotion, and companyChange.
DNC filtering (Scale feature)
Set"excludeDnc": true at the top level of the request body to filter out contacts whose phone numbers are all marked Do Not Call:
excludeDnc is enabled:
- Contacts with at least one callable phone number remain in results.
- Only callable phone numbers are shown - DNC numbers are hidden.
- Contacts whose phones are all DNC are excluded entirely.
Example request
Example response
requestId and each contact’s contactId are what you pass to the Enrich Contacts endpoint to retrieve full records. See the full API reference for the complete response schema, including all has* availability flags.