Search companies
The stored companies that pass every filter given, a page at a time, in a fixed order. A filter takes several values, comma-separated, and passes a company with any of them. A company we have no value for in a field passes no filter on it.
The stored companies that pass every filter given, a page at a time, in a fixed order. A filter takes several values, comma-separated, and passes a company with any of them. A company we have no value for in a field passes no filter on it.
ApiKeyAuthorizationBearer <token>An API key from the dashboard: Authorization: Bearer hyd_live_….
q?|Only companies whose name or legal name contains this, without case or accents; it needs at least three letters or digits in a row. To find a company by its name, GET /v1/companies/by-name ranks the candidates and allows for misspellings.
country?|Where the company is run from: ISO 3166-1 alpha-2.
industry?|A LinkedIn industry code (V2). Matches the industry and every one under it: 43, Financial Services, matches 41, Banking.
employee_band?|One of 1-10, 11-50, 51-200, 201-500, 501-1k, 1k-5k, 5k-10k, 10k+ (write the + as %2B, or leave it off).
limit?LimitThe most companies to return.
1 <= value <= 10025cursor?|The previous page's next_cursor.
fields?|The fields to return, comma-separated: hq_location, industry, employee_band, founded_year, linkedin_url, name, legal_name, registered_address, incorporated_on, company_status, incorporated_in, listing, description, founders, branches, logos, pricing_plans. Every field if left out. domain, entity_id and resolved_at always come.
include?|evidence adds each value's strongest evidence: the statements backing it, with where they are and what they say.
Successful Response
application/json- response
One page of the companies that pass a search's filters.
data*array<>next_cursor*|Pass it as cursor, with the same filters, for the next page. Null on the last page.
curl -X GET 'https://api.hydrantapi.com/v1/companies'{ "data": [ { "domain": "j-l.com", "entity_id": "6f6212b9-2763-4929-bbc5-a0400d8ff44d", "resolved_at": "2026-10-01T16:58:06.571299Z", "hq_location": { "value": { "city": "Copenhagen", "region": null, "country": "DK" }, "confidence": 0.3322, "as_of": "2026-09-30T19:57:22.004102Z", "sources": [ "wikidata" ] }, "name": { "value": "J. Lauritzen", "confidence": 0.7594, "as_of": "2026-09-30T19:57:22.004102Z", "sources": [ "wikidata" ] } } ], "next_cursor": "eyJhZnRlciI6ICI2ZjYyMTJiOS0yNzYzLTQ5MjktYmJjNS1hMDQwMGQ4ZmY0NGQiLCAiZmlsdGVycyI6ICIzNGM1YWZkZThhMjRhYzJiIn0"}Get a company's record, enriching it first if need be GET
One call for a company's record by its domain. A record we have with something fetched for it in the last 30 days is served as it is, and costs a read. Otherwise the company is enriched now, and the call waits up to 30 s for it: 200 with the record if it ends in time, and costs an enrichment, given back if it finds no company; 202 with the enrichment to follow if not. The key needs the `enrich` scope.
Get a batch's progress GET
How many of its enrichments have ended and how, and a page of its domains with each one's enrichment.