Skip to main content
Reference material for Company Search: the full list of filter operators, searchable fields with sortable flags, response fields, validation rules, and error responses. For walk-through examples, see Company Search and Examples.

Filter operator reference

Company Search accepts the following filters.type operators.
The operators >= and <= are not supported. Use => and =< instead.

geo_distance — radius around headquarters

geo_distance keeps companies whose headquarters is within a radius of a point. Both geo operators work on the locations.headquarters field only. Supply the centre of the radius using one of:
  • location — a string that is geocoded server-side (e.g. "Palo Alto, CA").
  • lat_lng — explicit coordinates as [lat, lng]. Skips geocoding.
If both are supplied, lat_lng wins. distance is required; unit defaults to km. See geo_distance examples for end-to-end requests using both location and lat_lng.

geo_exclude — exclude a radius

geo_exclude is the inverse of geo_distance: it removes companies headquartered inside the radius and keeps everyone else. It takes the same value object — location or lat_lng, a required distance, and an optional unit (defaults to km) — and works on the same locations.headquarters field. Use it to carve out a metro you already cover, or to target companies outside a region.

Searchable fields

These are common fields that can be used in the field key of a filter condition. Some indexed filter fields are search-only and are not returned in the response payload. For the full schema, see the API reference. Fields are grouped by family below. Every field listed is filterable; the Sortable column marks the subset also valid in sorts.

Identity & timestamps

Basic info

Revenue & funding

Headcount & roles

The headcount.growth_percent.* and headcount.growth_absolute.* dotted period paths are filterable but not sortable. To rank results by growth, filter on the period you care about and sort on headcount.total (or another sortable field). See Find high-growth mid-size companies.
Replace <function> with one of: accounting, administrative, arts_and_design, business_development, community_and_social_services, consulting, customer_success_and_support, education, engineering, entrepreneurship, finance, healthcare_services, human_resources, information_technology, legal, marketing, media_and_communication, military_and_protective_services, operations, product_management, program_and_project_management, purchasing, quality_assurance, real_estate, research, sales, support. For example, roles.distribution.engineering filters on the number of engineers. See Find companies by team size in a function.

Locations

Normalized location facets. locations.state and locations.city filter against and return normalized values derived from geocoding each company’s headquarters address — the value you see in a response is the value you filter with. locations.country accepts both vocabularies: ISO-3 codes ("USA", "GBR") and full country names ("United States") each match all companies, so existing ISO-3 filters keep working unchanged. Responses return the normalized full country name. Use Autocomplete to discover indexed values before filtering.

Taxonomy

Followers

Social profiles

Competitors (filter-only)

Technographics (filter-only)

Technographics values are not returned in search responses — these fields are filter-only (technographics.total_technologies is also sortable). To get the values, request the technographics field group on Company Enrich. Use Autocomplete with the technology and technology_category fields to discover valid filter values.
Use Autocomplete to discover exact values for fields like basic_info.industries, taxonomy.professional_network_industry, locations.country, basic_info.company_type, and funding.last_round_type.

Response fields

Each company in the response can include these sections (depending on fields):

Filterable but not returned

Some indexed fields can be used in filters to narrow results but are not part of the response payload — search is lightweight discovery, not full enrichment. Filter on them, then fetch their values with Company Enrich.

Validation rules

Default/max limits and pagination behavior reflect current platform behavior. See the API reference for the formal OpenAPI contract.
Filter sizing. To match many values of a field, put them all in a single in condition rather than many separate conditions — in compiles to one efficient query. A single in list of up to ~5,000–10,000 values returns in a few seconds; larger lists get progressively slower, and very large lists (roughly 50,000+) are rejected. For bigger sets, split the values into ~5,000–10,000 chunks across multiple requests and merge. The request body is hard-capped at 10 MB (larger bodies return 413 request_too_large), though with typical payloads you reach the query-size limit first.

Errors

Common error responses for Search:
400 — Unsupported field
400 — Invalid operator
Use => for greater-than-or-equal and =< for less-than-or-equal. The operators >= and <= are not supported.
401 — Invalid API key

API reference summary

How sorts work

The sorts parameter orders your results. Each sort rule needs:
  • column — a dot-path field (e.g., funding.total_investment_usd, headcount.total, basic_info.name).
  • order — either asc (ascending) or desc (descending).
You can provide multiple sort rules. The API applies them in order. For the full list of sortable fields, see Search reference.

Paginate through results

When your search matches more companies than your limit, use cursor-based pagination to walk through all pages. First page: send your normal search request.
Next page: take the next_cursor value from the response and pass it in your next request. Keep the same filters, sorts, limit, and fields.
Continue until next_cursor is null, which means you have reached the last page.
Changing filters, sorts, or fields between pages invalidates the cursor. Always include sorts when paginating to guarantee stable ordering.
See the full API reference for the complete OpenAPI schema.