LinkedIn Search leads API
LinkedIn lead search with Sales Navigator's search and filters: one call returns a page of up to 25 people matching a keyword and Sales Navigator lead filters (location, job title, current and past company, school, seniority, function, company size, and more), or the results of a Sales Navigator lead-search URL you built yourself. Each lead comes with name, current positions, location, summary, and photo, and its url opens the profile and can be passed to linkedin.profile for the full record. For full profiles in one call use linkedin.search_profiles.
Pricing
LinkedIn Search leads API pricing
Call it
Get LinkedIn search leads in one request
import os, requests res = requests.post( "https://api.getanyapi.com/v1/run/linkedin.search_leads", headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"}, json={ "currentCompanies": [ "Google" ], "page": 1, "query": "engineer" }, ) print(res.json())
{
"data": {
"items": [
{
"about": "A short example description of this item.",
"currentPositions": [
{
"companyId": "Acme Inc",
"companyLinkedinUrl": "https://example.com/page",
"companyName": "Acme Inc",
"startedOn": {},
"tenureAtCompany": {},
"tenureAtPosition": {},
"title": "Example title"
}
],
"firstName": "Alex",
"id": "a1b2c3d4",
"image": "https://example.com/image.jpg",
"lastName": "Rivera",
"location": "example",
"openProfile": true,
"premium": true,
"url": "https://example.com/page"
}
],
"page": 29,
"totalPages": 12500,
"totalResults": 12500
},
"found": true,
"reason": "not_found"
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-11-14 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- companyHeadcountarray
Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+.
- companyHeadquarterLocationsarray
Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']). Commas are not allowed in a value. Up to 70 values.
- currentCompaniesarray
["Google"]
Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR). Commas are not allowed in a value. Up to 50 values.
- excludeCompanyHeadquarterLocationsarray
Exclude people whose current company is headquartered in any of these locations. Commas are not allowed in a value. Up to 70 values.
- excludeCurrentCompaniesarray
Exclude people who currently work at any of these companies, by name. Commas are not allowed in a value. Up to 50 values.
- excludeCurrentJobTitlesarray
Exclude people whose current job title matches any of these. Commas are not allowed in a value. Up to 70 values.
- excludeFunctionIdsarray
Exclude these job functions (same codes as functionIds). Up to 30 values.
- excludeLocationsarray
Exclude people in any of these locations, by place name. Commas are not allowed in a value. Up to 70 values.
- excludePastCompaniesarray
Exclude people who previously worked at any of these companies, by name. Commas are not allowed in a value. Up to 50 values.
- excludePastJobTitlesarray
Exclude people who held any of these past job titles. Commas are not allowed in a value. Up to 70 values.
- excludeSchoolsarray
Exclude people who attended any of these schools, by name. Commas are not allowed in a value. Up to 50 values.
- excludeSeniorityLevelIdsarray
Exclude these seniority levels (same codes as seniorityLevelIds). Up to 20 values.
- firstNamesarray
Filter to people whose first name matches any of these. Commas are not allowed in a value. Up to 70 values.
- functionIdsarray
Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Healthcare Services, 12=Human Resources, 13=Information Technology, 14=Legal, 15=Marketing, 16=Media and Communication, 17=Military and Protective Services, 18=Operations, 19=Product Management, 20=Program and Project Management, 21=Purchasing, 22=Quality Assurance, 23=Real Estate, 24=Research, 25=Sales, 26=Customer Success and Support.
- jobTitlestring
Optional current job title filter (e.g. 'Software Engineer'). Commas are not allowed in a value.
- lastNamesarray
Filter to people whose last name matches any of these. Commas are not allowed in a value. Up to 70 values.
- locationstring
Optional location filter (e.g. 'San Francisco'). Commas are not allowed in a value.
- pageinteger
Which page of up to 25 leads to return, starting at 1 (1-100, default 1). Also pages through a salesNavUrl search. Each page is billed as one request.
- pastCompaniesarray
Filter to people who previously worked at any of these companies, by name. Commas are not allowed in a value. Up to 50 values.
- pastJobTitlesarray
Filter by a past job title the person held (e.g. ['Product Manager']). Commas are not allowed in a value. Up to 70 values.
- profileLanguagesarray
Filter by the profile's primary language.
- querystring
engineer
Search keywords for LinkedIn leads: a role, name, or keywords (e.g. 'Marketing Manager'). Provide this or salesNavUrl.
- recentlyChangedJobsboolean
When true, only return people who recently changed jobs (a strong sales/recruiting signal).
- recentlyPostedOnLinkedInboolean
When true, only return people who recently posted on LinkedIn (an activity signal).
- salesNavUrlstring
Alternatively, a LinkedIn Sales Navigator lead-search URL you built in Sales Navigator (e.g. https://www.linkedin.com/sales/search/people?query=(keywords%3Aengineer)). When set it overrides query and every other filter on this request; only page still applies.
- schoolsarray
Filter to people who attended any of these schools, by name. Commas are not allowed in a value. Up to 50 values.
- seniorityLevelIdsarray
Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner.
- yearsAtCurrentCompanyIdsarray
Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.
- yearsOfExperienceIdsarray
Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years.
Response
JSON, one example value per field.
Matching leads, up to 25 per page. Populated whenever the provider has data for the entity.
- aboutstring
Profile summary text, when the member wrote one.
- firstNamestring
Member's first name. Populated whenever the provider has data for the entity.
- idstring
LinkedIn member id, the last segment of `url`.
- imagestring
Profile picture URL. The query string is a signed token, so keep the URL intact. Populated whenever the provider has data for the entity.
- lastNamestring
Member's last name. Populated whenever the provider has data for the entity.
- locationstring
Member's location as a single string (city, region, country). Populated whenever the provider has data for the entity.
- openProfileboolean
Whether the member accepts messages from people outside their network.
- premiumboolean
Whether the member has a LinkedIn Premium subscription.
- urlstring
LinkedIn profile URL in its member-id form (https://www.linkedin.com/in/ACwAAA...). It opens the profile on LinkedIn, and passing it as `url` to linkedin.profile returns the full record. Populated whenever the provider has data for the entity.
Current roles. Populated whenever the provider has data for the entity.
- companyIdstring
LinkedIn company id.
- companyLinkedinUrlstring
LinkedIn company page URL.
- companyNamestring
Company name.
- startedOnobject
When the role started, as `month` (1-12, when shown) and `year`.
- tenureAtCompanyobject
Time at this company, as `numYears` and `numMonths`.
- tenureAtPositionobject
Time in this role, as `numYears` and `numMonths`.
- titlestring
Job title.
The results wrapper, or null when nothing matched.
- pageinteger
The page this response holds, starting at 1.
- totalPagesinteger
How many pages of up to 25 leads the search has.
- totalResultsinteger
How many leads match the search in total, across every page.
- foundboolean
True when the page returned at least one lead.
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
FAQ
About the LinkedIn Search leads API
The AnyAPI LinkedIn Search leads API returns LinkedIn search leads data as normalized JSON from one POST call to /v1/run/linkedin.search_leads. LinkedIn lead search with Sales Navigator's search and filters: one call returns a page of up to 25 people matching a keyword and Sales Navigator lead filters (location, job title, current and past company, school, seniority, function, company size, and more), or the results of a Sales Navigator lead-search URL you built yourself. Each lead comes with name, current positions, location, summary, and photo, and its url opens the profile and can be passed to linkedin.profile for the full record. For full profiles in one call use linkedin.search_profiles. AnyAPI returns one normalized schema whichever source serves it. It costs from $70 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 96.0% of LinkedIn search leads calls through AnyAPI succeeded, with a median response time of 4.2 seconds across 1,590 measured calls.