Trade Register API

TradeRegister.fi provides free trade register API 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. What the trade register says.

Search by name or business ID

Type the start of a name or a business ID. Each result shows the country, status and legal form and carries the permanent ID you keep.

Registry facts

Status, legal form, identifiers and activity codes as the register publishes them, with the date the register was last observed.

Officers with sources

Current officers as the register lists them, each with the system that published them and the time it was observed.

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 field names of the Coragrid public API. No key and a fair rate limit per client address.

For developers

One API.
Every connected trade register.

Three read-only endpoints return company search, profiles and current officers as JSON, with the permanent IDs and field names of the Coragrid API. Start without a key; add a Coragrid API key for the full platform and the cgd command line.

62
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" \  --address-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.traderegister.ficurl "$base/v1/search?q=example&address_country=FI"# An id from the search resultsid=<company_id>curl "$base/v1/companies/$id"curl "$base/v1/companies/$id/officers"
const base = "https://api.traderegister.fi";const search = await fetch(  `${base}/v1/search?q=example&address_country=FI`,);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.traderegister.fi"params = {"q": "example", "address_country": "FI"}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"])

Facts you can cite.

Permanent identity

An opaque company ID that outlives renames, mergers and splits, independent of registry numbers and database keys.

Provenance on every fact

Each fact names its source system and its publication and observation times, so you know what the register said and when.

Honest about gaps

Coverage is the registers Coragrid has connected and qualified. Unknown, conflicting, restricted and unavailable values are shown as such, never filled in.

From a company name to a record you can cite.

  1. 1

    Search

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

  2. 2

    Pick the record

    Results show the country, status, legal form and identifiers, so similar names are told apart before you open 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 Coragrid attribution where you show it.

Check a company now.

One counterparty or a whole onboarding flow: the trade register is one query away, and the JSON API is free to call.