Skip to main content
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 to 250 per request.
For supported filters, see Search Filters Reference.

Endpoint behavior

  • Results are ranked by semantic match in the Extruct index.
  • filters narrow the candidate set; they do not replace the query.
  • A single request returns at most 250 results. Page with offset to read deeper: paid plans (Starter, Pro) can reach up to 2,000 results per query; the free tier is capped at 25.
  • 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 returns results 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:

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

q
string
required

Search query

filters
string | null

JSON string of SearchFilters. Supported keys only: include.size/country/city, exclude.size/country/city/domains, range.founded.min/max.

offset
integer | null
limit
integer | null

Response

Successful Response

Semantic search response wrapper.

results
CompanySearchResult · object[]
required

Search results

request
SearchRequestInfo · object
required

Request parameters echo