# Finnish company register lookup with PRH YTJ open data

> Finnish company register API with PRH YTJ open data. Check a Y-tunnus or search by name, town or business line. Get status, names and addresses.

URL: https://cliqtomedia.com/actors/finland-ytj-company-register/

Category: Leads, companies & validation · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Check Finnish companies by Business ID (Y-tunnus), or search by name and town. You get the official name, name history, form, status and addresses. The data comes from PRH open data.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `0112038-9` in Business IDs (Y-tunnus). Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Finland Company Register (PRH YTJ) looks up Finnish companies in the official YTJ open data register of the Finnish Patent and Registration Office (PRH) and the Finnish Tax Administration. Add Finnish Business IDs (Y-tunnus), or search by company name, town, company form, business line, postcode or registration date. You get one clean row per company: name and full name history, company form, main business line, register entries, addresses, website and a clear status: active, ceased, bankrupt or not found.

- Business ID lookup. Each Business ID is an exact match. The Actor checks the check digit first. A wrong ID gives an `invalid_input` row, and a valid ID that is not in the register gives a `not_found` row, so no input is lost. The same ID written twice is looked up once.
- Search. Filters by company name, town, company form, main business line, postcode and registration dates. The source decides the order of results.

### Good for

- Check that a Finnish supplier or customer exists and is still active (KYB, onboarding).
- See all names of a company: current, previous, parallel (Swedish or English) and auxiliary names, with dates.
- Fill CRM records with the official name, company form, TOL 2008 business line, address and website.
- Build a list of companies by town, form, business line or registration date.

### Not a good fit

- Email addresses and phone numbers. The register does not publish them, and the Actor does not add them.
- Directors, owners, beneficial owners or financial statements. They are not in this open data.
- Proof that a VAT number is valid on a date. `inVatRegister` shows a VAT register entry in YTJ. For a VAT check, use the EU VIES service.
- Private traders (sole proprietors). The open data covers companies registered or pending in the Trade Register, not private traders.
- Norwegian, Swedish or other Nordic companies. This Actor covers Finland only.

## Price

Prices will be shown after release.

## Questions

### Do I need an API key for YTJ?

No. The open data is free. You only need an Apify account.

### Does it show emails, phones or directors?

No. The open data does not include them.

### Can I use the data for business?

Yes. It is under CC BY 4.0, which allows commercial reuse with attribution.

### Does it prove a VAT number is valid?

No. Use the EU VIES service for a VAT check on a date.

### Do I need an API key or a Finnish account?

No. The source is open and free. You only need your Apify account.

### Does a VAT register entry mean the VAT number is valid today?

No. `inVatRegister` shows that YTJ has a current VAT register entry for the company. To check a VAT number on a date, use the EU VIES service.

### Why are there no emails or phone numbers?

PRH open data does not publish them. The Actor gives only what the register publishes.

### How fresh is the data?

Each run reads the source live. The source updates once a day. Each row has `fetchedAt` (our read time) and `lastModified` (when the source last changed the record).

## Data fields

- `inputBusinessId` (string): Your input value as given (lookup mode); null for search rows.
- `status` (string): Row result: complete (company found), not_found (valid Business ID not in YTJ open data), invalid_input (not a valid Business ID, not charged) or error (source problem, not charged).
- `statusReason` (string): Plain-English reason for not_found, invalid_input and error rows; null when complete.
- `businessId` (string): Finnish Business ID (Y-tunnus) as text with the leading zero, e.g. 0112038-9.
- `name` (string): Current official company name.
- `isActive` (boolean): true = valid Business ID, not dissolved, not removed or ceased on the Trade Register and not in bankruptcy or liquidation. null when unknown.
- `businessIdStatus` (string): Business ID status label, e.g. Valid, Pending, Invalidated.
- `businessIdStatusCode` (string): Business ID status code from the source (1 pending, 2 valid, 5 invalidated).
- `tradeRegisterStatus` (string): Trade Register status label, e.g. Registered, Ceased, Removed, Start-up not registered.
- `tradeRegisterStatusCode` (string): Trade Register status code from the source.
- `companyForm` (string): Current company form, e.g. Limited company; for a dissolved company the last known form.
- `companyFormCode` (string): Numeric company form code from the source.
- `companyFormAbbreviation` (string): Company form abbreviation, e.g. OY, OYJ, KY, AY, TMI.
- `mainBusinessLineCode` (string): Main business line code (TOL 2008), e.g. 70100.
- `mainBusinessLine` (string): Main business line description in the chosen language.
- `mainBusinessLineCodeSet` (string): Code set of the main business line (TOIMI…).
- `website` (string): Website as registered (not verified).
- `registrationDate` (string): Company registration date, YYYY-MM-DD.
- `endDate` (string): Company end (dissolution) date, YYYY-MM-DD; null when not ended.
- `businessIdRegistrationDate` (string): Date the Business ID was granted, YYYY-MM-DD.
- `euId` (string): EUID (European unique identifier) when published.
- `inTradeRegister` (boolean): Currently registered in the Trade Register.
- `inVatRegister` (boolean): Currently has a VAT register entry. This is the YTJ register entry, not a VIES check of VAT validity on a given date.
- `inEmployerRegister` (boolean): Currently in the employer register.
- `inPrepaymentRegister` (boolean): Currently in the prepayment (tax) register.
- `currentSituations` (array): Current special situations: KONK (bankrupt), SELTILA (liquidation), SANE (restructuring).
- `streetAddress` (object): Visiting (street) address; city in the chosen language with Finnish and Swedish variants.
- `postalAddress` (object): Postal address; city in the chosen language with Finnish and Swedish variants.
- `previousNames` (array): Earlier official names.
- `parallelNames` (array): Current parallel names (other language versions of the official name).
- `auxiliaryNames` (array): Current auxiliary (trade) names.
- `names` (array): All names with type, registration and end dates (current and historical).
- `companyForms` (array): Company form history with dates.
- `situations` (array): Bankruptcy, liquidation and restructuring entries with dates.
- `registeredEntries` (array): Register entries (Trade Register, VAT, employer, prepayment, foundations, associations…) with status and dates.
- `lastModified` (string): Last change of this company in the source (Finnish local time, as published).
- `ytjUrl` (string): Public company page in the YTJ information service.
- `sourceUrl` (string): Exact API request that produced this row.
- `provider` (string): Data provider.
- `licence` (string): Data licence (CC BY 4.0).

## Input settings

- `businessIds` (array): Exact lookup of up to 100 Finnish Business IDs, e.g. 0112038-9. Also accepts 01120389, the old six-digit form and FI VAT numbers (FI01120389). Wrong check digits are reported as invalid_input (free). Duplicates are looked up once. Leave empty to run a search instead.
- `name` (string): Search filter, not combinable with Business IDs. Matches current and earlier names, at least 2 characters, e.g. nokia.
- `location` (string): Search filter: town/city of the registered address, e.g. Helsinki, Espoo or Tampere.
- `companyForm` (string): Search filter: company form, e.g. OY (limited company) or OYJ (public limited company).
- `mainBusinessLine` (string): Search filter: TOL 2008 code (e.g. 62010) or text from its description (e.g. software).
- `postCode` (string): Search filter: 5-digit Finnish postcode, e.g. 00100.
- `registrationDateFrom` (string): Search filter: company registration date from (inclusive), YYYY-MM-DD.
- `registrationDateTo` (string): Search filter: company registration date to (inclusive), YYYY-MM-DD.
- `maxResults` (integer): Search mode only. Maximum companies returned, 1–5000. Default 100. Each company row is charged.
- `language` (string): Language of labels (company form, statuses, business line, city). Values the source has only in Finnish fall back to Finnish.

## Step by step on Apify

1. Open the Input tab. The form already has three Business IDs: Nokia Oyj (active), Nokia Networks Oy (ceased) and Primera Holidays Oy (bankrupt).
2. Click Start.
3. Open the Companies view in the Output tab. Check `name`, `isActive`, `tradeRegisterStatus` and `currentSituations`.
4. Replace the IDs with your own list (up to 100), or clear the list and use the search filters.

## Use cases

| Task | Input | Key fields |
|---|---|---|
| Verify a company (KYB) | `businessIds` | `status`, `isActive`, `tradeRegisterStatus`, `currentSituations`, `endDate` |
| Match old invoices or contracts to a company | `businessIds` or `name` | `names`, `previousNames`, `parallelNames`, `auxiliaryNames` |
| Clean CRM records | `businessIds` | `name`, `companyForm`, `mainBusinessLine`, `streetAddress`, `website` |
| Prospect list by town and activity | `location` + `mainBusinessLine` | `businessId`, `name`, `registrationDate`, `postalAddress` |
| New companies in a period | `registrationDateFrom` / `registrationDateTo` + filters | `registrationDate`, `companyForm`, `streetAddress` |

## Tips

- You can paste IDs with or without the dash, or as FI VAT numbers.
- Add filters to a search. Helsinki alone has about 90,000 companies.
- New companies can be missing until the next daily update.

## Limits



- Up to 100 Business IDs per run, or up to 5,000 companies per search. A town like Helsinki has about 90,000 companies, so add filters to narrow a search.
- The Actor sends about one request per second, because the source blocks fast clients for a while. 100 Business IDs take about 100 seconds; a 5,000-company search took about 90 seconds in our test.
- The source updates once a day. A company registered today can be `not_found` until the next update.
- The internal time budget is 240 seconds and 700 requests. When a run reaches it, the run stops with `CAPPED` and the rows found so far are kept.
- If the source fails or blocks the run, the Actor stops after two failed requests in a row. The rest of the IDs get free `error` rows and the run is `PARTIAL` or `ERROR`. Run those IDs again later.
- Search pages can hold fewer than 100 companies. If the source serves fewer unique companies than it reports, `RUN_SUMMARY.warnings` says so.

## Sample result

```json
{
  "inputBusinessId": "0112038-9",
  "status": "complete",
  "businessId": "0112038-9",
  "name": "Nokia Oyj",
  "isActive": true,
  "tradeRegisterStatus": "Registered",
  "companyFormAbbreviation": "OYJ",
  "mainBusinessLineCode": "70100",
  "mainBusinessLine": "Activities of head offices",
  "website": "www.nokia.com",
  "registrationDate": "1896-12-19",
  "inVatRegister": true,
  "currentSituations": [],
  "streetAddress": { "formatted": "Karakaari 7, 02610 ESPOO", "postCode": "02610", "city": "ESPOO", "citySv": "ESBO" },
  "previousNames": ["Oy Nokia Ab"],
  "parallelNames": ["Nokia Abp", "Nokia Corporation"],
  "names": [
    { "name": "Oy Nokia Ab", "type": "Company name", "typeCode": "1", "registrationDate": "1966-06-10", "endDate": "1997-08-31", "current": false }
  ],
  "lastModified": "2026-08-19T10:04:06",
  "ytjUrl": "https://tietopalvelu.ytj.fi/yritys/0112038-9",
  "licence": "CC BY 4.0",
  "fetchedAt": "2026-10-12T09:21:05.000Z"
}
```

## Use cases with this tool

- [Lead lists from public data](https://cliqtomedia.com/actors/use-cases/lead-generation/): Build lists of companies and contacts from public sites. Check emails and phones before you send.

## Similar tools

- [France Company & SIRET Search](https://cliqtomedia.com/actors/france-sirene-company-search/)
- [Norway Company Register (Brreg) & Updates](https://cliqtomedia.com/actors/norway-brreg-company-register/)
- [Website Contact Scraper](https://cliqtomedia.com/actors/website-contacts-scraper/)
- [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://cliqtomedia.com/actors/email-verifier/)
- [Domain WHOIS (RDAP) & DNS Lookup, No Login](https://cliqtomedia.com/actors/domain-whois-dns-lookup/)
- [EU VAT Number Validator (VIES) - Bulk Check, No Login](https://cliqtomedia.com/actors/vat-number-validator/)
