Company Search
Search Companies
deprecated
Find companies from a natural-language query and optional filters.
GET
Search Companies
Prefer
POST /v1/companies/search. This GET endpoint is deprecated. It still works and returns identical results, but POST is the recommended default: it takes filters as a JSON object and is not limited by URL length (required for large exclude.domains lists).Overview
Semantic Search returns companies that match a natural-language query, with optional firmographic filters. It is the recall-first search endpoint over the Extruct index and the usual starting point before lookalike or Deep Search.Example request
Key parameters
q(required): Natural-language query.filters(optional): JSON string used to narrow results.offset(optional): Pagination offset.limit(optional): Page size, up to250per request.
filters, see Search Filters Reference.
Endpoint behavior
- Results are ranked by semantic match in the Extruct index.
filtersnarrow the candidate set; they do not replace the query.- A single request returns at most
250results. Page withoffsetto read deeper: paid plans (Starter, Pro) can reach up to2,000results per query; the free tier is capped at25. - Good matches from search often become inputs for Company Lookup, seed companies for Lookalike Search, or a shortlist for Deep Search.
Success signal
A successful response returnsresults and request metadata. Reuse results[].id or results[].domain as downstream identifiers, including company lookup and lookalike input.
Common errors
401 Unauthorized
Check that your header is Authorization: Bearer ${EXTRUCT_API_TOKEN}.
422 Unprocessable Entity
Most often caused by malformed filters JSON. Validate before sending:
Related endpoints
Related guides
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Search query
JSON string of SearchFilters. Supported keys only: include.size/country/city, exclude.size/country/city/domains, range.founded.min/max.
Search Companies