curl --request POST \
--url https://api.sixtyfour.ai/search/query \
--header 'Content-Type: application/json' \
--data '
{
"simple_filters": {},
"filters": {},
"parsed_query": {},
"search_id": "<string>",
"query": "<string>",
"cursor": "<string>",
"mode": "company",
"page_size": 10,
"max_results": 1000,
"exclude_public_ids": [
"<string>"
],
"exclude_entity_ids": [
"<string>"
],
"exclude_list_ids": [
"<string>"
],
"location_expansion_enabled": true,
"location_expansion_radius_miles": 10
}
'{
"total_results": 123,
"search_id": "<string>",
"resource_handle_id": "",
"csv_download_url": "<string>",
"json_download_url": "<string>",
"next_cursor": "<string>",
"cursor_expires_in_seconds": 123,
"request_duration_ms": 123,
"has_more": false,
"page_size": 123,
"page_count": 123,
"page_number": 123,
"total_pages": 123,
"max_pages": 123,
"remaining_results": 123,
"download_expires_in_seconds": 123,
"total_available": 123,
"exported_count": 0,
"results": [
{}
],
"parsed_query": {},
"natural_language_query": "<string>"
}Search Query
Run a search query. Provide exactly one query source: simple_filters, filters, parsed_query, or search_id. For pagination, pass cursor alone.
curl --request POST \
--url https://api.sixtyfour.ai/search/query \
--header 'Content-Type: application/json' \
--data '
{
"simple_filters": {},
"filters": {},
"parsed_query": {},
"search_id": "<string>",
"query": "<string>",
"cursor": "<string>",
"mode": "company",
"page_size": 10,
"max_results": 1000,
"exclude_public_ids": [
"<string>"
],
"exclude_entity_ids": [
"<string>"
],
"exclude_list_ids": [
"<string>"
],
"location_expansion_enabled": true,
"location_expansion_radius_miles": 10
}
'{
"total_results": 123,
"search_id": "<string>",
"resource_handle_id": "",
"csv_download_url": "<string>",
"json_download_url": "<string>",
"next_cursor": "<string>",
"cursor_expires_in_seconds": 123,
"request_duration_ms": 123,
"has_more": false,
"page_size": 123,
"page_count": 123,
"page_number": 123,
"total_pages": 123,
"max_pages": 123,
"remaining_results": 123,
"download_expires_in_seconds": 123,
"total_available": 123,
"exported_count": 0,
"results": [
{}
],
"parsed_query": {},
"natural_language_query": "<string>"
}Headers
Body
Unified search query request — replaces both /start-filter-search and /browse.
MongoDB-style filters; the API translates them to DSL.
Raw OpenSearch DSL filters.
Structured filter set returned by a previous search.
Search history ID returned by a previous search. Replays only the query shape; pass exclusions again on this request if they should apply.
Natural-language query. Mutually exclusive with simple_filters / filters / parsed_query / search_id. People-mode only.
Opaque pagination cursor returned by a previous response.
Search mode; inferred from DB when using search_id.
people, company 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.
1 <= x <= 100Maximum number of results to return across pages.
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.
1000Inline 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.
1000Saved 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.
5Expand the parsed location filter to nearby areas via PostGIS radius. People-mode query branch only.
Radius (miles) for PostGIS location expansion. Ignored when expansion is disabled.
5 <= x <= 200Response
Successful Response
Response for a completed filter search.
Rows returned so far (cumulative for company pagination).
Search history ID returned by a previous search. Replays only the query shape; pass exclusions again on this request if they should apply.
Legacy export handle. Empty for company direct-filter mode.
Signed URL to download results as CSV.
Signed URL to download results as JSON.
Cursor to fetch the next page; null when exhausted.
Seconds until next_cursor expires.
Server-side request duration in milliseconds.
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.
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.
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.
1-based page number (company pagination).
Final total page count; omitted while has_more is true.
Upper bound on pages based on max_results and page_size.
Rows still available under max_results after this page.
Seconds until the download URLs expire.
Total OpenSearch matches across pages (capped at 50000); people-mode only. Pre-exclusion: exclusion filtering does not reduce this count.
Legacy export count; always 0 for company direct-filter mode.
Rows returned for the current page.
Structured filter set echoed back; round-trippable into a follow-up request.
Original natural-language query echoed verbatim, if any.
Was this page helpful?