Company Registry API

CompanyRegistryAPI.com provides a company registry API with a free tier for accessing trade register data across multiple countries.

Powered by Coragrid

Coverage

Company dataRegistry factsCurrent officersLifecycle eventsOfficial registers via Coragrid: Companies House,Bolagsverket, CVR, Zefix and more..Your productCompany infoRelevance scoresOfficersIdentifiersSources

One search. Everything the register publishes.

Search by name or business ID

Type the start of a name or a business ID. Results carry the permanent ID, so you pick the right company once.

Registry facts

Status, legal form, industry and the date the record was last observed at the source.

Officers with sources

Current officers as the register publishes them, each with the publishing system and observation time.

Anna VirtanenChief executive officerMikko LaineBoard memberSari KoskiDeputy memberExample Robotics Oyofficial_company_register · observed 2026-07-15

Free JSON API

The same records as JSON with the same field names as the Coragrid public API. No key, a fair rate limit.

For developers

One API.
Every connected register.

Search, company profiles and current officers as JSON, with the same permanent IDs and field names as the Coragrid API. Start without a key; add one for the full platform and the cgd command line.

35
Countries
60/min
Free rate limit
3
JSON endpoints, no key
# With a Coragrid API key: cgd auth logincgd --json companies search --query "example robotics" \  --country FI --limit 5# An id from the search resultsid=<company_id>cgd --json companies get $idcgd --json companies officers $id
# No key neededbase=https://api.companyregistryapi.comcurl "$base/v1/search?q=example&country=FI&limit=5"# An id from the search resultsid=<company_id>curl "$base/v1/companies/$id"curl "$base/v1/companies/$id/officers"
const base = "https://api.companyregistryapi.com";const search = await fetch(  `${base}/v1/search?q=example&country=FI&limit=5`,);const { data } = await search.json();if (!data.length) throw new Error("No match");const company = await fetch(  `${base}/v1/companies/${data[0].id}`,);console.log(await company.json());
import requestsBASE = "https://api.companyregistryapi.com"params = {"q": "example", "country": "FI", "limit": 5}page = requests.get(f"{BASE}/v1/search", params).json()if not page["data"]:    raise SystemExit("No match")company_id = page["data"][0]["id"]url = f"{BASE}/v1/companies/{company_id}"print(requests.get(url).json()["data"]["name"])

A source-linked data platform.

Permanent identity

Every company gets an opaque, permanent ID that is independent of registry numbers and database keys. Lifecycle changes preserve the handle.

Provenance on every fact

Facts keep their source system, publication and observation times, so you can tell what the register said and when.

Honest about gaps

Coverage depends on the registers Coragrid has connected and qualified. Unknown, conflicting, restricted and unavailable data stay distinguishable.

Four steps from a name to a record you can cite.

  1. 1

    Search

    Enter the start of a company name or a business ID. Narrow by country if you know it.

  2. 2

    Pick the record

    Each result shows the country, status, legal form and identifiers, so you can tell similar names apart before opening one.

  3. 3

    Read facts and officers

    The profile lists registry facts with their observation date and current officers with the system that published them.

  4. 4

    Reuse it as JSON

    Fetch the same record by its permanent ID from the free API and keep the attribution to Coragrid.

Start with one search.

Whether you need to check one counterparty or wire company data into a product, the register is one query away and the API is free to call.