Companies API
Search Companies
Powerful full-text and filter-based company discovery with geographic proximity, recruiter filtering, and rich metadata.
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.string
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.
View all funding_types values
View all funding_types 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.
string
Filter by company website URL.
string
default:"hottest"
Field to sort results by. Accepted values:
hottest(default) — with a text query (query,company_nameorkeywords), by search relevance, thenclout; without one, byclout.relevance— by search relevance, thenclout.clout— byclout, the prominence signal returned on each company.rated— bymean_opinion_score.size— by the top of the company’ssize_range(largest first by default).newest— byfoundedyear (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.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
422 Unprocessable Entity
422 Unprocessable Entity
Validation failures, including any parameter the endpoint does not recognize. An unknown key returns Other validation failures (e.g.,
"Extra inputs are not permitted"; a misnamed headcount filter returns a hint:limit above 100):400 Bad Request
400 Bad Request
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.429 Too Many Requests
429 Too Many Requests
Rate limit exceeded — 100 requests per 60 seconds per API key.
429 responses include a Retry-After header.500 Internal Server Error
500 Internal Server Error
Unexpected server issue – please contact support.
This endpoint reflects Hirebase 2.2 enhancements: smarter geo-proximity, recruiter noise filtering, and rich keyword understanding across company descriptions and tech stacks.