People Search Lusha API
Prospect Lusha's contact database by department, seniority, job title, location, company size, industry and technology. One flat price per page; reveal a contact's email and phone with Person Enrichment - Lusha.
- Category enrichmentRequests / mo -Routing 1 lane · no failover
Pricing
One price, in dollars
pay per request · no subscription · fallbacks added as the catalog growsCall it
Make your first request
POST /v1/run/people_search.lusha · same shape for every APIimport os, requests res = requests.post( "https://api.getanyapi.com/v1/run/people_search.lusha", headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"}, json={ "filters": "" }, ) print(res.json())
{
"data": {
"currentPage": 29,
"pageLength": 180,
"people": [
{
"available": {
"companyCity": true,
"companyCountry": true,
"companyEmployeesCount": true,
"companyFunding": true,
"companyIntent": true,
"companyMainIndustry": true,
"companyRevenue": true,
"companySubIndustry": true,
"companyTechnologies": true,
"contactLocation": true,
"department": true,
"directPhone": true,
"emails": true,
"mobilePhone": true,
"phones": true,
"privateEmail": false,
"seniority": true,
"socialLink": true,
"workEmail": true
},
"companyDescription": "Acme Inc",
"companyDomain": "example.com",
"companyId": "Acme Inc",
"companyName": "Acme Inc",
"contactId": "a1b2c3d4",
"fullName": "Alex Rivera",
"image": "https://example.com/image.jpg",
"isShown": true,
"jobTitle": "Example title",
"personId": "a1b2c3d4"
}
],
"totalResults": 12500
},
"found": true
}interface PeopleSearchLushaResponse {
data: {
currentPage?: number;
pageLength?: number;
people: {
available?: {
companyCity?: boolean;
companyCountry?: boolean;
companyEmployeesCount?: boolean;
companyFunding?: boolean;
companyIntent?: boolean;
companyMainIndustry?: boolean;
companyRevenue?: boolean;
companySubIndustry?: boolean;
companyTechnologies?: boolean;
contactLocation?: boolean;
department?: boolean;
directPhone?: boolean;
emails?: boolean;
mobilePhone?: boolean;
phones?: boolean;
privateEmail?: boolean;
seniority?: boolean;
socialLink?: boolean;
workEmail?: boolean;
};
companyDescription?: string;
companyDomain?: string;
companyId?: string;
companyName?: string;
contactId?: string;
fullName: string;
image?: string;
isShown?: boolean;
jobTitle?: string;
personId?: string;
}[];
totalResults?: number;
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-03 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/people_search.lusha \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"filters":{"companies":{"include":{"names":["PostHog"]}},"contacts":{"include":{"departments":["Engineering & Technical"]}}},"pages":{"page":0,"size":10}}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| filters | string | {"companies":{"include":{"names":["PostHog"]}},"contacts":{"include":{"departments":["Engineering & Technical"]}}}Prospecting filters. Two keys are accepted, contacts and companies, and each takes an include and an exclude object. contacts.include and contacts.exclude accept departments, seniority, locations, existing_data_points and signals; companies.include and companies.exclude accept names, locations, sizes, revenues, technologies, intentTopics, mainIndustriesIds, subIndustriesIds, naicsCodes and sicCodes. Locations are objects such as {"country": "United States"}; sizes and revenues are ranges such as {"min": 200, "max": 500}. Example: {"companies": {"include": {"names": ["PostHog"]}}, "contacts": {"include": {"departments": ["Engineering & Technical"]}}}. |
| excludeDnc | boolean | Exclude contacts whose phone numbers are all marked do-not-call. |
| includePartialContact | boolean | Include contacts Lusha holds only partial information for. Defaults to true upstream. |
| pages | string | {"page":0,"size":10}Which page of results to return. Lusha charges one flat price per page whatever its size. |
| Response | ||
| data | object | One page of matching contacts plus its paging counters. |
| data.currentPage | integer | Zero-based page number this response holds. |
| data.pageLength | integer | Contacts returned on this page. |
| data.people | object[] | Contacts on this page. Email addresses and phone numbers are not included here; reveal them with Person Enrichment - Lusha. |
| data.people[].available | object | What Lusha holds for this contact and would return on reveal. Every flag is a boolean; privateEmail can also come back as a redaction marker. |
| data.people[].available.companyCity | boolean | Employer city is available. |
| data.people[].available.companyCountry | boolean | Employer country is available. |
| data.people[].available.companyEmployeesCount | boolean | Employer headcount is available. |
| data.people[].available.companyFunding | boolean | Employer funding data is available. |
| data.people[].available.companyIntent | boolean | Employer buying-intent data is available. |
| data.people[].available.companyMainIndustry | boolean | Employer top-level industry is available. |
| data.people[].available.companyRevenue | boolean | Employer revenue is available. |
| data.people[].available.companySubIndustry | boolean | Employer sub-industry is available. |
| data.people[].available.companyTechnologies | boolean | Employer technology stack is available. |
| data.people[].available.contactLocation | boolean | The person's location is available. |
| data.people[].available.department | boolean | A department is available. |
| data.people[].available.directPhone | boolean | A direct dial is available. |
| data.people[].available.emails | boolean | Any email address is available. |
| data.people[].available.mobilePhone | boolean | A mobile number is available. |
| data.people[].available.phones | boolean | Any phone number is available. |
| data.people[].available.privateEmail | boolean | A personal email address is available. Lusha redacts this flag on some plans, in which case it is a string marker rather than a boolean. |
| data.people[].available.seniority | boolean | A seniority band is available. |
| data.people[].available.socialLink | boolean | A social profile link is available. |
| data.people[].available.workEmail | boolean | A work email address is available. |
| data.people[].companyDescription | string | Employer description. |
| data.people[].companyDomain | string | Fully qualified host for the employer's website. |
| data.people[].companyId | string | Lusha's own company identifier for the employer. |
| data.people[].companyName | string | Employer name. |
| data.people[].contactId | string | Lusha's contact identifier for this search row. |
| data.people[].fullName | string | Person's full name. |
| data.people[].image | string | Employer logo URL. |
| data.people[].isShown | boolean | True when this contact has already been revealed on the Lusha account. |
| data.people[].jobTitle | string | Current job title. |
| data.people[].personId | string | Lusha's own person identifier. |
| data.totalResults | integer | Total contacts matching the filters across all pages. |
| found | boolean | False when no contact matched the filters. |
| Price | ||
| Price per request | USD | $0.084 |
| Price /1k req | USD | $84.00 |
FAQ
About the People Search Lusha API
The AnyAPI People Search Lusha API returns People Search lusha data as normalized JSON from one POST call to /v1/run/people_search.lusha. Prospect Lusha's contact database by department, seniority, job title, location, company size, industry and technology. One flat price per page; reveal a contact's email and phone with Person Enrichment - Lusha. AnyAPI returns one normalized schema whichever source serves it. It costs from $84 per 1,000 requests, in US dollars with no subscription and no monthly minimum.
Get started
Two ways to start on AnyAPI
Humans fund a USD wallet and pay per request. Agents point a coding agent at one URL and onboard themselves.