ToolsSearch & Enrichment

Search companies

Stage companies by industry, size, funding, or geo.

Tool: search_companies

The call returns named rows plus search_id and creates no companies or lead group. Review the rows, use continue_search with search_id and the returned search_version for another bounded turn, then save_search(search_id) once to create or append to a company group. Changed filters start a new independent search. Defaults to US HQ (hq_country='United States') when you pass no geo; set hq_country or hq_location to search elsewhere. NOT for: hiring signals → search_companies_hiring; lookalike → search_companies_similar; one company's detail → get_company_detail.

Parameters

ParamTypeRequiredDescription
company_namestringnoCompany name (fuzzy) - prefer domain when known.
domainstring or string[]noCompany domain list (exact).
industrystringnoIndustry (fuzzy) - resolve_industry for validated values.
headcount_bandstring[]noSize bucket, e.g. 201-500 (enum) - the size filter (no numeric min/max).
hq_countrystring[]noCountry names, ISO-2, or ISO-3; normalized to ISO-3. Pass multiple countries as a list.
hq_locationstringnoHQ location string (fuzzy).
funding_stagestring[]noLast round type list, e.g. series_a (enum).
last_funding_afterstringnoISO date or 6m_ago - last raise on/after.
annual_revenue_minintegernoMinimum estimated annual revenue in USD (gte).
year_foundedintegernoFounding year; use as a recency floor.
limitintegernoMaximum rows for this staged turn, 1-1000. Default: 25.
exclude_lead_groupstring (slug or UUID)noSkip companies already in this group using stable domains.

Returns named staged company rows and a durable search_id; it does not create companies or a lead group.

Every durable response returns search_version; pass that value to continue_search(search_id, search_version) for one bounded turn.

On the first save, use save_search(search_id, group_name=...) or save_search(search_id, lead_group_id=...) to commit approved rows.

Changing filters starts a new typed search.

Unknown named params are rejected with validation_error (a typo'd filter must never silently broaden the search) - unlike most operations, which ignore extras.

Sample request — success

{
  "industry": "Software"
}

Sample request — named params

{
  "industry": "Software",
  "headcount_band": [
    "51-200"
  ]
}

On this page