Company registry search (any country)
Search a country's official company register by name and get every match in one common shape: registry id and id type, name, status, legal form, country, incorporation and dissolution dates, address and register link. GB searches UK Companies House, FR the French SIRENE register, NO the Norwegian Brønnøysund register; every other country (or no country) searches the global LEI register (legal entities with a Legal Entity Identifier). GB, FR and NO also take filters, passed to the register: status, legal form (type), activity code, incorporation date range, postcode and (GB) address text; the answer echoes them as filters, and filtered GB results also carry activity_codes. Open the full record with /companies/v1/company. Pass next_page back as page; null on the last page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
qrequired | string | Company name (or part of it). Example: tesco |
country | string | 2-letter ISO country code. GB, FR and NO search the national register; any other code (US, DE, JP...) searches LEI-registered entities with their legal address in that country; empty searches LEI entities worldwide. Example: GB |
status | active | dissolved | GB, FR, NO: only active or only dissolved / ceased companies (NO: active only, its register lists current entities). |
type | string | Legal form in the register's own codes: GB company type (ltd, plc, llp...), FR 4-digit legal form code (5710), NO organisation form (AS, ASA, ENK...). |
activity_code | string | GB SIC codes (47110), FR NAF code (62.01Z) or NO NACE code (62.010); GB and NO take several, comma separated. |
incorporated_from | string | GB, NO: incorporated (founded) on or after this date, YYYY-MM-DD. |
incorporated_to | string | GB, NO: incorporated (founded) on or before this date, YYYY-MM-DD. |
postcode | string | GB, FR, NO: postcode of the registered office (GB matches it in the address text). |
location | string | GB: words of the registered-office address, e.g. a town. |
page | integer | Page number, starting at 1. Pass next_page back as page; it is null on the last page. Example: 1 |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/companies/v1/search?q=tesco" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/companies/v1/search",
params={"q": "tesco"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/companies/v1/search");
url.searchParams.set("q", "tesco");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).