Skip to main content
POST
Search Query

Headers

x-api-key
string | null

Body

application/json

Unified search query request — replaces both /start-filter-search and /browse.

simple_filters
Simple Filters · object | null

MongoDB-style filters; the API translates them to DSL.

filters
Filters · object | null

Raw OpenSearch DSL filters.

parsed_query
Parsed Query · object | null

Structured filter set returned by a previous search.

search_id
string | null

Search history ID returned by a previous search. Replays only the query shape; pass exclusions again on this request if they should apply.

query
string | null

Natural-language query. Mutually exclusive with simple_filters / filters / parsed_query / search_id. People-mode only.

cursor
string | null

Opaque pagination cursor returned by a previous response.

mode
enum<string>
default:company

Search mode; inferred from DB when using search_id.

Available options:
people,
company
page_size
integer
default:10

Maximum number of results per page (1-100). Pages may contain fewer rows while more results remain (e.g. with exclusion filtering); rely on has_more/next_cursor, never on page fullness.

Required range: 1 <= x <= 100
max_results
integer
default:1000

Maximum number of results to return across pages.

exclude_public_ids
string[] | null

People-mode inline identifiers to exclude from results, applied as a post-filter. Accepts LinkedIn public IDs or profile URLs. For company searches, use exclude_entity_ids. Max 1000.

Maximum array length: 1000
exclude_entity_ids
string[] | null

Inline identifiers to exclude from results, applied as a post-filter. People mode: LinkedIn public IDs or profile URLs. Company mode: numeric LinkedIn company IDs, company URLs/slugs, or exact website domains (values that resolve to no or multiple companies are ignored). Max 1000.

Maximum array length: 1000
exclude_list_ids
string[] | null

Saved exclusion-list IDs to apply as a post-filter. Each list's entity type must match the search mode (person lists for people searches, company lists for company searches). Max 5.

Maximum array length: 5
location_expansion_enabled
boolean
default:true

Expand the parsed location filter to nearby areas via PostGIS radius. People-mode query branch only.

location_expansion_radius_miles
integer
default:10

Radius (miles) for PostGIS location expansion. Ignored when expansion is disabled.

Required range: 5 <= x <= 200

Response

Successful Response

Response for a completed filter search.

total_results
integer
required

Rows returned so far (cumulative for company pagination).

search_id
string | null

Search history ID returned by a previous search. Replays only the query shape; pass exclusions again on this request if they should apply.

resource_handle_id
string
default:""

Legacy export handle. Empty for company direct-filter mode.

csv_download_url
string | null

Signed URL to download results as CSV.

json_download_url
string | null

Signed URL to download results as JSON.

next_cursor
string | null

Cursor to fetch the next page; null when exhausted.

cursor_expires_in_seconds
integer | null

Seconds until next_cursor expires.

request_duration_ms
integer | null

Server-side request duration in milliseconds.

has_more
boolean
default:false

True when another page is available via next_cursor. Always continue via the cursor; a short or empty page does NOT mean the results are exhausted.

page_size
integer | null

Maximum number of results per page (1-100). Pages may contain fewer rows while more results remain (e.g. with exclusion filtering); rely on has_more/next_cursor, never on page fullness.

page_count
integer | null

Number of results in this response page. May be less than page_size (down to 0) while has_more is true, e.g. when exclusion filtering is active.

page_number
integer | null

1-based page number (company pagination).

total_pages
integer | null

Final total page count; omitted while has_more is true.

max_pages
integer | null

Upper bound on pages based on max_results and page_size.

remaining_results
integer | null

Rows still available under max_results after this page.

download_expires_in_seconds
integer | null

Seconds until the download URLs expire.

total_available
integer | null

Total OpenSearch matches across pages (capped at 50000); people-mode only. Pre-exclusion: exclusion filtering does not reduce this count.

exported_count
integer
default:0

Legacy export count; always 0 for company direct-filter mode.

results
Results · object[]

Rows returned for the current page.

parsed_query
Parsed Query · object | null

Structured filter set echoed back; round-trippable into a follow-up request.

natural_language_query
string | null

Original natural-language query echoed verbatim, if any.