Search & filters
Every filter, its values, and how filters combine.
POST /companies/search and POST /companies/count take these filters directly. POST /companies/similar takes
them too, except query and semantic_query (the seed companies describe what you want). POST /pages/search,
POST /job-postings/search and POST /vendors/{vendor}/customers take them inside a company object.
How filters combine
- Different filters are combined with AND.
countries: ["US"]plusemployees: ["11-50"]means US companies with 11–50 employees. - Values inside one list match if the company has any of them.
countries: ["US", "CA"]means US or Canada. - Lists with an
*_operator(keywords,customer_types,customer_segments,compliance,technologies,vendors) default to all:compliance: ["SOC 2", "HIPAA"]means companies that claim both. Setcompliance_operator: "or"for either. page_typesalways means the company has all of the listed pages.
Filters
Get the valid values for most filters from GET /values/{field}
(free), using the field name in the right-hand column.
| Filter | What it matches | Values |
|---|---|---|
query | Company name or domain contains this text | Any text |
semantic_query | Plain-language description of what they do and who they sell to. See Semantic search | Any text, up to 500 characters |
countries | HQ country | ISO codes, e.g. US, GB (/values/countries) |
states, cities | HQ state or city | /values/states, /values/cities |
regions | HQ region | See /values/regions |
office_locations | Any office, not just HQ | Cities or country codes |
type | Ownership type | private, public, nonprofit, government, educational, partnership, self-employed, self-owned |
employees | Employee range | 1-10, 11-50, 51-200, 201-500, 501-1K, 1K-5K, 5K-10K, over-10K |
revenue | Annual revenue (USD) | under-1m, 1m-10m, 10m-50m, 50m-100m, 100m-200m, 200m-1b, over-1b |
founded_year | Year founded | { "min": 2015, "max": 2022 } |
industries | Industry | /values/industries |
naics_codes, sic_codes | Industry codes; shorter NAICS codes include everything beneath them | /values/naics_codes, /values/sic_codes |
keywords | Keywords on the company profile | Any text |
customer_types | Who they sell to | e.g. B2B, B2C, B2G (all values: /values/customer_types) |
customer_segments | Kinds of customers they sell to | e.g. enterprise, smb, government (all values: /values/customer_segments) |
compliance | Certifications they claim on their website | e.g. SOC 2, HIPAA, ISO 27001 (all values: /values/compliance) |
technologies | Technologies they use; technology_source sets where it was found (website, jobs, any) | Slugs from /technologies |
vendors | Service providers named in their subprocessor list | Slugs from /technologies, e.g. aws |
page_types | Has these pages on their website | home, pricing, about, careers, blog, legal, integrations, case_studies, login, status, engineering, support, cart, compliance (what each is) |
funding_rounds | Has raised these round types | seed, angel, venture, series_a, series_b, series_c, series_d, series_e, series_f, series_g, series_h, debt_financing, other |
funding_amount | Total funding (USD) | { "min": 1000000 } |
funding_year | Year of most recent round | { "min": 2024 } |
investors | Backed by these investors | Names or domains |
workforce_size | Headcount in a department | [{ "department": "engineering", "min": 20 }]. Departments: e.g. engineering, sales (all values: /values/workforce_departments) |
workforce_growth | Headcount growth | { "period": "y1", "min_percent": 20 }. Periods: m6, y1, y2 (6 months, 1 year, 2 years) |
recent_hires | Recently hired people. See Recent hires | { "departments": ["sales"], "within_days": 90, "min_count": 2 }. Departments: e.g. sales, engineering, marketing, finance, operations, product (all values: /values/hire_departments). Seniorities: e.g. entry, mid, senior, director, executive (all values: /values/hire_seniorities) |
hiring | Has open job postings | { "job_functions": ["sales"], "posted_within_days": 30 }. Functions: e.g. engineering, sales (all values: /values/job_functions). Seniorities: e.g. mid, senior (all values: /values/job_seniorities) |
news | Has recent news | { "categories": ["launches"], "within_days": 90 }. Categories: e.g. launches (all values: /values/news_categories) |
require | Has this data | linkedin, twitter, icp, pricing_page, funding, revenue, founded_year, hq_city, open_jobs |
exclude | Remove companies matching any of these | { "domains": ["acme.com"], "employees": ["1-10"] } |
Example
{
"semantic_query": "practice management software for independent dental practices",
"countries": ["US"],
"employees": ["11-50", "51-200"],
"customer_types": ["B2B"],
"compliance": ["HIPAA"],
"recent_hires": { "departments": ["sales"], "within_days": 90 },
"exclude": { "domains": ["acmedental.io"] },
"limit": 25
}Order of results
- With
semantic_query: bymatch.score, highest first.semantic_weight(0–1, default0.7) sets how much relevance counts against company size and web traffic. - Without it: larger companies with more web traffic first.
Pagination
limit is 1–100 per page (default 25). Responses include next_cursor; pass it as cursor to get the next page. A cursor is valid for 24 hours.
A search returns at most 1,000 results in total; narrow your filters if you need different ones. Each new company on
a later page is charged like the first page.
Pricing information
Pricing is stored as a paragraph, so there is no price filter. To find companies by pricing details, search inside
pricing pages with POST /pages/search and page_types: ["pricing"].