Skip to main content
POST
Search Companies
Search for companies using a combination of keyword/full-text search and precise filters. This endpoint powers both the Hirebase web app’s enhanced company explorer and the public Company Search API used by over 500 customers.
Metering: company search bills m_company_api_calls at 1 unit per company returned (a limit: 50 search returning 50 companies costs 50 units). See Usage Headers & Metering.

Endpoint

Authentication

string
required
Your Hirebase API key. Authentication required — every request, including page 1, requires an API key in the x-api-key header. Requests without a key return 401. See Authentication.

Request Body

All fields are optional and can be combined freely.
string
Full-text search across company name, description, products/services, tech stack, and culture keywords (e.g., “Agentic Coding”, “climate tech”, “remote-first”).
string
Exact or partial company name match.
string[]
Filter by primary industry (e.g., ["Tech, Software & IT Services", "Healthcare"]). See List Industries for accepted values.
string[]
Narrow by subindustry (e.g., ["Medical Practices", "Blockchain"]).
string[]
Filter by company headcount bucket (maps to size_range). Accepted values: "1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10000+".
string[]
Categorical company classification. Accepted values: "Startup", "Enterprise", "Mid-Size", "Small Business", "Non-Profit", "Government", "Franchise", "Academic", "Other".
object[]
Filter by company headquarters. Array of { city, region, country } objects; multiple entries are OR’d.
Exact LinkedIn company URL. Must start with https://www.linkedin.com/ or https://linkedin.com/.
string[]
Keyword match across company text. Distinct from query (which is full-text); pass an array of terms.
boolean
Exclude recruiting-agency companies from results.
boolean
Filter to (or by) recruiting agencies.
boolean
Filter by the third-party agency flag.
string[]
Filter by company funding stage/type. Pass one or more of the accepted values.
Pre seed · Seed · Angel · Convertible note · Equity crowdfunding · Series unknown · Series A · Series B · Series C · Series D · Series E · Series F · Series G · Series H · Corporate round · Private equity · Debt financing · Secondary market · Grant · Non equity assistance · Undisclosed · Post IPO equity · Post IPO debt · Post IPO secondaryTip: the Post IPO … values indicate companies that have gone public — useful as a proxy for public companies.
string
Filter by parent company.
Filter by company website URL.
string
default:"hottest"
Field to sort results by. Accepted values:
  • hottest (default) — with a text query (query, company_name or keywords), by search relevance, then clout; without one, by clout.
  • relevance — by search relevance, then clout.
  • clout — by clout, the prominence signal returned on each company.
  • rated — by mean_opinion_score.
  • size — by the top of the company’s size_range (largest first by default).
  • newest — by founded year (most recently founded first by default).
string
default:"desc"
Sort direction ("asc" or "desc"). Applies to size, newest, clout, and rated; hottest and relevance always run descending.
"asc" puts companies with a missing value first (for example no size_range or founded). Combine with a filter such as company_sizes if you want the smallest known companies rather than unknown ones.
Because total_count caps at 1001 (see response), the narrowing effect of these filters can be hard to observe on broad queries — but they are accepted and applied. Judge a filter by the returned rows (for example each company’s size_range), not by total_count.
Unknown parameters are rejected with a 422, never silently ignored. There is no min/max headcount filter — names such as size_range, size_min, size_max, or employee_count return a 422 pointing you to company_sizes and its accepted buckets.
integer
default:"1"
Page number (1-indexed).
integer
default:"10"
Results per page. Max: 100.

Response

array[object]
Matching company records.
integer
Total matching companies. Capped at 1001 — broader queries report total_count: 1001 even when more companies match. Use narrower filters to reach specific records.
integer
Current page
integer
Results per page
integer
Total pages available. Capped at 1001 — broader queries report total_pages: 1001 even when more pages exist. Use narrower filters to reach specific records.

Example Requests

Example Response

Error Responses

Validation failures, including any parameter the endpoint does not recognize. An unknown key returns "Extra inputs are not permitted"; a misnamed headcount filter returns a hint:
Other validation failures (e.g., limit above 100):
Hand-rolled checks (e.g., unsafe strings). Note: a malformed or non-matching linkedin_link is not an error — it returns 200 with an empty companies array.
Missing, invalid, or revoked API key.
Rate limit exceeded — 100 requests per 60 seconds per API key. 429 responses include a Retry-After header.
Unexpected server issue – please contact support.
Pro Tip: Combine query with industries for hyper-relevant discovery — e.g., find “climate tech” companies hiring within Agriculture.
This endpoint reflects Hirebase 2.2 enhancements: smarter geo-proximity, recruiter noise filtering, and rich keyword understanding across company descriptions and tech stacks.