Skip to main content
POST
/
leads
/
advanced_search
Search leads by filters
curl --request POST \
  --url https://app.prontohq.com/api/v2/leads/advanced_search \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "name": "EU SaaS VPs of Sales",
  "webhook_url": "https://hooks.example.com/leads",
  "limit": 500,
  "streaming": true,
  "job_titles": [
    "VP of Sales",
    "Chief Revenue Officer"
  ],
  "seniority_levels": [
    "300",
    "310"
  ],
  "functions": [
    "25"
  ],
  "included_industries": [
    "96",
    "4"
  ],
  "included_locations": [
    "101452733",
    "105015875"
  ],
  "company_size": [
    "51-200",
    "201-500",
    "501-1000"
  ],
  "years_in_current_position": [
    "3",
    "4"
  ],
  "custom": {
    "hubspot_id": "134567"
  }
}
'
{
  "message": {
    "id": "8e1dcba0-f0bb-4071-99fc-f18ba6559ccc",
    "search_name": "EU SaaS VPs of Sales",
    "search_url": "https://www.linkedin.com/sales/search/people?query=(filters%3AList(...))",
    "expected_profiles_count": 842,
    "created_at": "2026-05-04T12:34:56Z",
    "custom": {
      "hubspot_id": "134567"
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.prontohq.com/llms.txt

Use this file to discover all available pages before exploring further.

Run a full lead search using structured filters. Pronto builds the underlying query for you, creates an asynchronous Search, and streams enriched leads to your webhook_url.

Overview

Use this endpoint when you want to extract leads matching a precise persona definition (titles + seniority + function + tenure + company filters + signals). Pronto:
  1. Validates and translates your filters into a search URL.
  2. Estimates the number of matching profiles.
  3. Enqueues the search and returns immediately with a Search record.
  4. Streams leads to your webhook.

Requirements

  • A valid integration must be connected on the authenticated user.
  • webhook_url is required.
  • At least one filter or keyword must be provided.

Rate Limits

  • 1 request per second per user.

Request body

Top-level options

FieldTypeDescription
webhook_urlstring (HTTPS URL)Required. Where Pronto sends the enriched leads.
namestringFriendly name. Defaults to Lead search - API - <DD/MM/YYYY HH:MM>.
keywordstringFree-text keyword. Spell correction is automatically enabled when set.
limitintegerCap on enriched leads. Effective value is min(limit, MAX_RESULTS_COUNT).
streamingbooleanIf true, leads are pushed to the webhook as they are scraped. Default false.
scalebooleanIf true, skips some data retrieval, for higher volume. Default false.
customobjectArbitrary JSON stored on the search and echoed back in every webhook payload.

Title filters

FieldTypeNotes
job_titlesarray of stringsCurrent titles to include (CURRENT_TITLE INCLUDED).
excluded_job_titlesarray of stringsCurrent titles to exclude (CURRENT_TITLE EXCLUDED).
past_titlesarray of stringsPast titles to include (PAST_TITLE INCLUDED).
excluded_past_titlesarray of stringsPast titles to exclude (PAST_TITLE EXCLUDED).

Location filters

FieldType
included_locationsarray of LinkedIn geoRegion IDs
excluded_locationsarray of LinkedIn geoRegion IDs
Resolve region names to IDs with the Location IDs endpoint.

Industry filters

FieldType
included_industriesarray of LinkedIn industry IDs
excluded_industriesarray of LinkedIn industry IDs
For the full list of industry IDs see the LinkedIn Industry List. Common values:
  • 4 Automotive
  • 6 Technology, Information and Internet
  • 12 Education
  • 43 Financial Services
  • 96 Software Development

Company filters

FieldTypeNotes
included_companiesarray of ids or { id } objectsCurrent company (CURRENT_COMPANY INCLUDED). id is the numeric LinkedIn organization id (the integer in urn:li:organization:<id>).
excluded_companiesarray of ids or { id } objectsCurrent company to exclude (CURRENT_COMPANY EXCLUDED).
past_companiesarray of ids or { id } objectsPast company (PAST_COMPANY INCLUDED).
company_headquartersarray of geoRegion IDsFilters by the lead’s company HQ region (COMPANY_HEADQUARTERS).
Each entry can be a plain LinkedIn organization id (string or integer) or an object with an id key (e.g. "1441", 1441, or { "id": "1441" }). Other shapes return 422.

Function & seniority

FieldMaps toValid IDs
functionsFUNCTION1 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
seniority_levelsSENIORITY_LEVEL100 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
Multiple IDs are combined with OR logic.

Tenure filters

LinkedIn uses bucketed IDs "1""8" for these filters:
FieldMaps to
years_of_experienceYEARS_OF_EXPERIENCE
years_at_current_companyYEARS_AT_CURRENT_COMPANY
years_in_current_positionYEARS_IN_CURRENT_POSITION
Bucket meanings (same scale for all three): "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. Buckets "6""8" are reserved by LinkedIn.

Company size & type

FieldMaps toValid values (same strings as account search)
company_sizeCOMPANY_HEADCOUNT1-10 · 11-50 · 51-200 · 201-500 · 501-1000 · 1001-5000 · 5001-10000 · 10001+ (en-dashes in requests are normalized to hyphens on the server)
company_typeCOMPANY_TYPEC Public Company · E Educational Institution · G Government Agency · N Non-Profit · P Privately Held · S Self-Employed · X Self-Owned

Lists & relationship

FieldMaps toValue type
included_account_listsACCOUNT_LIST (INCLUDED)array of account list IDs
excluded_account_listsACCOUNT_LIST (EXCLUDED)array of account list IDs
included_lead_listsLEAD_LIST (INCLUDED)array of lead list IDs
excluded_lead_listsLEAD_LIST (EXCLUDED)array of lead list IDs
relationshipRELATIONSHIParray of IDs: F 1st degree · S 2nd degree · O 3rd degree and beyond · A Group members
recently_changed_jobsRECENTLY_CHANGED_JOBSpass ["RPC"] to enable
connections_of_profileCONNECTION_OF (INCLUDED)single LinkedIn profile URL — returns 1st-degree connections of that profile
connections_of_profile accepts any recognized LinkedIn profile URL:
  • https://www.linkedin.com/in/<handle>
  • https://www.linkedin.com/in/<internal-urn>
  • https://www.linkedin.com/sales/lead/<id>
The server resolves the URL to the target member’s internal id via LinkedIn before building the search. Returns 422 if the URL is malformed or can’t be resolved.

Boolean signal filters

These send a single fixed value when truthy. Pass true to apply.
FieldMaps to
follows_your_companyFOLLOWS_YOUR_COMPANY (id CF)
viewed_your_profileVIEW_YOUR_PROFILE (id VYP)
with_shared_experiencesWITH_SHARED_EXPERIENCES (id COMM)
posted_on_linkedinPOSTED_ON_LINKEDIN (id RPOL)
past_colleaguePAST_COLLEAGUE (id CL)

Response

201 Created — returns immediately with the created Search:
{
  "message": {
    "id": "8e1dcba0-f0bb-4071-99fc-f18ba6559ccc",
    "search_name": "EU SaaS VPs of Sales",
    "search_url": "https://www.linkedin.com/sales/search/people?query=(filters%3AList(...))",
    "expected_profiles_count": 842,
    "created_at": "2026-05-04T12:34:56Z",
    "custom": { "hubspot_id": "134567" }
  }
}
Enriched leads are then POSTed to your webhook_url (one-shot at the end of the search, or per-batch when streaming: true).

Errors

StatusWhen
400 Bad RequestMissing webhook_url, invalid webhook URL format, or no filter/keyword provided.
401 UnauthorizedInvalid API key, or credentials missing/expired.
403 ForbiddenAPI key does not have access to this endpoint.
422 Unprocessable EntityInvalid filter shape, or enum ID outside the authorized list (e.g. unknown functions, seniority_levels, company_size, etc.).
429 Too Many RequestsPer-user rate limit (1 req/s) or upstream LinkedIn rate limit.

Examples

EU SaaS VPs of Sales

{
  "name": "EU SaaS VPs of Sales",
  "webhook_url": "https://hooks.example.com/leads",
  "limit": 500,
  "streaming": true,
  "job_titles": ["VP of Sales", "Chief Revenue Officer"],
  "seniority_levels": ["300", "310"],
  "functions": ["25"],
  "included_industries": ["96", "4"],
  "included_locations": ["101452733", "105015875"],
  "company_size": ["51-200", "201-500", "501-1000"],
  "years_in_current_position": ["3", "4"],
  "custom": { "hubspot_id": "134567" }
}

Engineering leaders at specific companies who recently changed jobs

{
  "name": "Eng leaders — recent movers",
  "webhook_url": "https://hooks.example.com/leads",
  "job_titles": ["VP Engineering", "Head of Engineering"],
  "functions": ["8"],
  "seniority_levels": ["220", "300"],
  "included_companies": ["1441", { "id": "162479" }],
  "recently_changed_jobs": ["RPC"]
}

Target an account list while excluding an existing lead list

{
  "webhook_url": "https://hooks.example.com/leads",
  "job_titles": ["Head of Marketing"],
  "included_account_lists": ["12345678"],
  "excluded_lead_lists": ["87654321"]
}

Past colleagues who posted on LinkedIn recently

{
  "webhook_url": "https://hooks.example.com/leads",
  "past_colleague": true,
  "posted_on_linkedin": true,
  "included_locations": ["103644278"]
}

Keyword + tenure filter, scale mode

{
  "webhook_url": "https://hooks.example.com/leads",
  "keyword": "cybersecurity",
  "years_of_experience": ["4", "5"],
  "company_type": ["P", "C"],
  "scale": true,
  "limit": 1000
}

1st-degree connections of a target profile

{
  "webhook_url": "https://hooks.example.com/leads",
  "connections_of_profile": "https://www.linkedin.com/in/williamhgates",
  "seniority_levels": ["300", "310"],
  "functions": ["25"]
}

Authorizations

X-API-KEY
string
header
required

Your API key

Body

application/json

Lead advanced search parameters

webhook_url
string<uri>
required

HTTPS URL that will receive the enriched leads. Required.

Example:

"https://hooks.example.com/leads"

name
string

Friendly name for the search. Defaults to Lead search - API - <DD/MM/YYYY HH:MM> if omitted.

Example:

"EU SaaS VPs of Sales"

keyword
string

Free-text keyword applied to the LinkedIn keywords query parameter. Spell correction is automatically enabled when a keyword is provided.

Example:

"cybersecurity"

limit
integer

Cap on the number of leads to enrich. The effective limit is min(limit, MAX_RESULTS_COUNT). If omitted, the estimated search size is used.

Required range: x >= 1
Example:

500

streaming
boolean
default:false

When true, leads are POSTed to webhook_url as they are scraped/enriched. When false, you receive them once the search completes.

Example:

true

scale
boolean
default:false

When set to true, increases request volume by omitting the following fields: connections_count, headline, and vanity LinkedIn profile URL. You will still receive a LinkedIn profile URL, but it will use the user ID instead of the vanity URL (e.g., https://www.linkedin.com/in/mathieu-brun-picard/)

Example:

false

custom
object

Arbitrary JSON stored on the search and echoed back in every webhook payload (useful for CRM correlation IDs, etc.).

Example:
{ "hubspot_id": "134567" }
job_titles
string[]

Current job titles to include (CURRENT_TITLE INCLUDED). Free text matched against the lead's current title.

Example:
["VP of Sales", "Chief Revenue Officer"]
excluded_job_titles
string[]

Current job titles to exclude (CURRENT_TITLE EXCLUDED).

Example:
["Intern", "Contractor"]
past_titles
string[]

Past job titles to include (PAST_TITLE INCLUDED).

Example:
["Account Executive"]
excluded_past_titles
string[]

Past job titles to exclude (PAST_TITLE EXCLUDED).

Example:
["SDR"]
included_locations
string[]

LinkedIn geoRegion IDs to include (REGION INCLUDED). Resolve names to IDs with the Location IDs endpoint.

Example:
["101452733", "105015875"]
excluded_locations
string[]

LinkedIn geoRegion IDs to exclude (REGION EXCLUDED).

Example:
["103644278"]
included_industries
string[]

LinkedIn industry IDs to include (INDUSTRY INCLUDED). See the LinkedIn Industry List for the full mapping. Examples: "6" Technology, Information and Internet · "96" Software Development · "43" Financial Services.

Example:
["6", "96"]
excluded_industries
string[]

LinkedIn industry IDs to exclude (INDUSTRY EXCLUDED).

Example:
["12"]
included_companies
(string | integer | object)[]

Companies the lead currently works at (CURRENT_COMPANY INCLUDED). Each entry can be a plain LinkedIn organization id (string or integer) or an object with an id key.

Numeric LinkedIn organization id (the integer in urn:li:organization:<id>).

Example:
["1441", { "id": "162479" }]
excluded_companies
(string | integer | object)[]

Companies to exclude as a current employer (CURRENT_COMPANY EXCLUDED). Same shape as included_companies.

Example:
["162479"]
past_companies
(string | integer | object)[]

Companies the lead worked at in the past (PAST_COMPANY INCLUDED). Same shape as included_companies.

Example:
[{ "id": "1441" }]
company_headquarters
string[]

LinkedIn geoRegion IDs for the lead's company headquarters (COMPANY_HEADQUARTERS).

Example:
["103644278"]
included_account_lists
string[]

Account list IDs to include (ACCOUNT_LIST INCLUDED).

Example:
["12345678"]
excluded_account_lists
string[]

Account list IDs to exclude (ACCOUNT_LIST EXCLUDED).

Example:
["12345678"]
included_lead_lists
string[]

Lead list IDs to include (LEAD_LIST INCLUDED).

Example:
["87654321"]
excluded_lead_lists
string[]

Lead list IDs to exclude (LEAD_LIST EXCLUDED).

Example:
["87654321"]
functions
enum<string>[]

LinkedIn function (department) IDs (FUNCTION). Multiple IDs are combined with OR logic.

ID → value: 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.

Available options:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
Example:
["25"]
seniority_levels
enum<string>[]

LinkedIn seniority level IDs (SENIORITY_LEVEL).

ID → value: 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.

Available options:
100,
110,
120,
130,
200,
210,
220,
300,
310,
320
Example:
["300", "310"]
years_of_experience
enum<string>[]

Bucketed total years of experience (YEARS_OF_EXPERIENCE). LinkedIn buckets: "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 (additional buckets "6""8" are reserved by LinkedIn).

Available options:
1,
2,
3,
4,
5,
6,
7,
8
Example:
["3", "4"]
years_at_current_company
enum<string>[]

Bucketed years at the current company (YEARS_AT_CURRENT_COMPANY). Same bucket scale as years_of_experience.

Available options:
1,
2,
3,
4,
5,
6,
7,
8
Example:
["2", "3"]
years_in_current_position
enum<string>[]

Bucketed years in the current position (YEARS_IN_CURRENT_POSITION). Same bucket scale as years_of_experience.

Available options:
1,
2,
3,
4,
5,
6,
7,
8
Example:
["3"]
company_size
enum<string>[]

Company size ranges to include.

Available options:
1-10,
11-50,
51-200,
201-500,
501-1000,
1001-5000,
5001-10000,
10001+
Example:
["51-200", "201-500", "501-1000"]
company_type
enum<string>[]

LinkedIn company type (COMPANY_TYPE).

ID → value: C Public Company; E Educational Institution; G Government Agency; N Non-Profit; P Privately Held; S Self-Employed; X Self-Owned.

Available options:
C,
E,
G,
N,
P,
S,
X
Example:
["P", "C"]
relationship
enum<string>[]

Connection relationship to the authenticated LinkedIn account (RELATIONSHIP).

ID → value: F 1st degree; S 2nd degree; O 3rd degree and beyond; A Group members.

Available options:
F,
S,
O,
A
Example:
["S"]
recently_changed_jobs
enum<string>[]

Restrict to leads who recently changed jobs (RECENTLY_CHANGED_JOBS). Pass ["RPC"] to enable.

Available options:
RPC
Example:
["RPC"]
follows_your_company
boolean
default:false

When true, only include leads who follow your company (FOLLOWS_YOUR_COMPANY, id CF).

Example:

false

viewed_your_profile
boolean
default:false

When true, only include leads who viewed your profile (VIEW_YOUR_PROFILE, id VYP).

Example:

false

with_shared_experiences
boolean
default:false

When true, only include leads sharing experiences with you (WITH_SHARED_EXPERIENCES, id COMM).

Example:

false

posted_on_linkedin
boolean
default:false

When true, only include leads who recently posted on LinkedIn (POSTED_ON_LINKEDIN, id RPOL).

Example:

true

past_colleague
boolean
default:false

When true, only include past colleagues (PAST_COLLEAGUE, id CL).

Example:

false

Response

Search created. Results will be delivered to webhook_url.

message
object