POST
/
search
/
realtime
/
leads
Search realtime leads
curl --request POST \
  --url https://api.generect.com/api/v1/search/realtime/leads/ \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "job_titles": [
    "CEO",
    "Founder"
  ],
  "seniorities": [
    "CXO"
  ],
  "locations": [
    "San Francisco, CA"
  ],
  "company_industries": [
    "Software"
  ],
  "company_headcounts": [
    "51-200"
  ],
  "limit_by": 50
}
'
{
  "data": {
    "leads": [
      {
        "lead_id": "lead_abc123xyz",
        "first_name": "John",
        "last_name": "Doe",
        "title": "CEO"
      }
    ],
    "results_count": 1240
  },
  "meta": {
    "amount_charged": 49.6
  }
}

Use Case:

Search fresh lead data with full realtime filters.

Pricing

This is a billable endpoint — you are charged for each result returned. If no results are found, the request is free.
Your price decreases automatically as your lifetime spend grows. Check your current tier and pricing →

Authorizations

Authorization
string
header
required

Use the required Token prefix. Example: Authorization: Token xxxxxxxxx

Body

application/json
job_titles
string[]

Job titles held by the people you want to find. A lead only needs to match one of the titles you provide — adding more expands your search. Results may also include similar titles (e.g. "marketing manager" can return "content marketing manager"). Combine with seniorities to target both function and level. Examples: "sales development representative", "marketing manager", "software engineer".

seniorities
string[]

Job seniority levels at the lead's current employer (current position only, not previous roles). A lead needs to match at least one; adding more values expands your search. Allowed values: owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern. Combine with job_titles to narrow targeting.

locations
string[]

Geographic locations where leads currently live — matches across cities, states/regions and countries. A lead needs to match at least one. To filter by the employer's HQ location, use company_locations. Examples: "San Francisco, California, United States", "Germany", "London".

exclude_locations
string[]

Locations to exclude from results.

company_locations
string[]

Headquarters location of the lead's current employer; a lead is included if their company's HQ matches at least one. Filters by where the company is based — distinct from locations, which is where the lead personally lives.

exclude_company_locations
string[]

Company locations to exclude.

company_industries
string[]

Industries of the lead's current employer; a lead is included if their company matches at least one. Values follow LinkedIn's industry taxonomy. Examples: "Software Development", "Financial Services", "Information Technology".

exclude_company_industries
string[]

Company industries to exclude.

company_headcounts
string[]

Size of the lead's current employer, as employee-count ranges; a lead is included if their company falls into at least one. Allowed values: "1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10001+".

exclude_company_headcounts
string[]

Company size ranges to exclude.

company_types
string[]

Company types: "Public Company", "Privately Held", "Non Profit", "Government Agency", "Educational", "Self Employed", "Partnership", "Self Owned".

company_name
string

Target company name (mutually exclusive with company_link and company_id).

LinkedIn company URL (mutually exclusive with company_name and company_id).

company_id
integer

LinkedIn company numeric ID (mutually exclusive with company_name and company_link).

without_company
boolean
default:false

Search by lead criteria only, without targeting a specific company.

personas
array[]

List of persona tuples. Each persona: [name, functions, seniorities, prohibits, priority?].

exclude_names
string[]

Skip leads by full name.

exclude_ids
string[]

Skip leads by Sales Navigator ID.

filter_empty_vars
string[]

Skip leads where these fields are empty. Options: job_started_on, profile_photo, started_at_position, company_website.

limit_by
integer

Maximum number of leads to return.

offset_by
integer

Number of leads to skip (for pagination).

strict
string[]

Fields to apply strict matching on (e.g. "company_locations").

keywords
string[]

Free-text keywords searched across lead profiles (headline, current job description, skills, summary); a lead is included if their profile contains at least one. Realtime mode only — database mode does not support free-text search. Examples: "machine learning", "growth marketing", "kubernetes".

functions
string[]

Job functions — categorize roles by business area, independent of seniority or title; a lead is included if their function matches at least one. Common values: Sales, Marketing, Engineering, Operations, Finance, HR, Product, Customer Success, Legal, Data. Combine with seniorities for function-by-seniority targeting.

past_company_names
string[]

Filter by companies where the lead previously worked; a lead is included if their work history contains at least one. Useful for alumni outreach (e.g. ex-Google engineers) or targeting people who left a competitor. Examples: "Google", "Meta", "Stripe".

schools
integer[]

School IDs to filter by.

groups
integer[]

LinkedIn group IDs to filter by.

years_in_position
integer[]

Time in current position: 1 = under 1y, 2 = 1-2y, 3 = 3-5y, 4 = 6-10y, 5 = 10y+.

years_in_company
integer[]

Time at current company: 1 = under 1y, 2 = 1-2y, 3 = 3-5y, 4 = 6-10y, 5 = 10y+.

changed_jobs
boolean
default:false

Filter for leads who recently changed jobs.

posted_on_linkedin
boolean
default:false

Filter for leads who recently posted on LinkedIn.

Pre-built LinkedIn or Sales Navigator search URL to extract filters from.

Response

Full realtime lead search results

data
object

Search results.

meta
object

Operation metadata returned in every data/meta response.