Finland Company Register - PRH YTJ Y-tunnus Business Search
Pricing
from $4.25 / 1,000 companies
Finland Company Register - PRH YTJ Y-tunnus Business Search
Search and export Finnish companies from the official PRH / YTJ Business Information System. Filter by name, Business ID, town, postal code, legal form, line of business and registration date. Returns 26 fields per company and, by default, only companies still on the register.
Pricing
from $4.25 / 1,000 companies
Rating
0.0
(0)
Developer
PublicData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Export the Finnish company register as a spreadsheet: every company in the PRH / YTJ Business Information System, filtered by name, Business ID, town, postal code, legal form, line of business or registration date — and, by default, only the ones still trading.
This Actor calls the open-data API of the Finnish Patent and Registration Office (avoindata.prh.fi) directly. No API key, no login, no scraped HTML: what you export is the register, licensed CC BY 4.0.
The register has 824,112 entries. About half of them are companies that have ceased, and PRH offers no way to exclude them. The Finland Company Register Actor filters them out before anything is exported, so you are not charged for defunct companies — and can flip the switch if the dead ones are exactly what you want.
What you get
Every row is one company, with 26 fields:
- Business ID (Y-tunnus) and the current registered name, plus the previous names — a name search matches those too, so a row that looks unrelated is explained by its own
previousNamescell - Status: still on the register, ceased, start-up not registered, or unregistered — with the registration date, and the end date where there is one
- Legal form in English with the letter code the register accepts: OY limited company, OYJ public limited, KY limited partnership, AY partnership, OK co-operative, AOY housing company, SL branch of a foreign trader, SÄÄ foundation, and 19 more
- Line of business — code plus the description in English and Finnish. PRH publishes every description in three languages; this Actor keeps the English one so the export is usable outside Finland
- Both addresses in their own columns: the visiting address and the postal address, each with street, postal code and town
- VAT registration, read from the VAT register specifically, with what the company is VAT-liable for in the register's own wording
- A link to the official YTJ page, and the source attribution the licence requires
Who uses this
- A sales team pulls every limited company in Helsinki registered under a given line of business, and gets a list where every row is a company that still exists.
- A recruiter or founder watches companies registered in the last 30 days in a town, and reaches them first.
- A compliance analyst resolves a Y-tunnus to legal form, status, addresses and VAT standing for a KYB file.
- A market analyst counts companies per town and industry straight from the register instead of estimating.
- A developer or AI agent keeps a Finland table fresh on a schedule, or calls the Actor as an MCP tool to answer company questions on demand.
Example output
One real record, exported by this Actor on 2026-08-28 from Helsinki, line of business 62100, legal form OY:
{"businessId": "0248523-2","name": "Blue Yonder Finland Oy","previousNames": "JDA Technologies Oy","legalForm": "Limited company","legalFormCode": "OY","legalFormType": "16","status": "Registered","statusCode": "1","registrationDate": "1978-09-29","endDate": null,"businessIdRegistrationDate": "1979-01-04","businessLineCode": "62100","businessLine": "Computer programming activities","businessLineFi": "Ohjelmistojen suunnittelu ja valmistus","streetAddress": "Kansakoulukuja 1","streetPostCode": "00100","streetCity": "HELSINKI","postalAddress": null,"postalCode": null,"postalCity": null,"vatRegistered": true,"vatDetail": "VAT-liable for business activity","inTradeRegister": true,"sourceUrl": "https://tietopalvelu.ytj.fi/yritys/0248523-2","sourceApi": "avoindata.prh.fi/opendata-ytj-api/v3","source": "Finnish Patent and Registration Office (PRH) / YTJ, CC BY 4.0"}
Input
| Field | What it does |
|---|---|
query | Name match — current, previous, parallel and auxiliary names. |
businessId | A single Y-tunnus, with the check digit, e.g. 0205709-4. |
location | Registered town, e.g. HELSINKI. |
postCode | Five-digit postal code, matched against either address. |
companyForms | Letter codes, e.g. OY. See the warning below. |
businessLine | Industry code or free text. See the classification note below. |
registeredAfter / registeredBefore | Registration-date window, YYYY-MM-DD. |
status | active (default), ceased, or any. |
maxItems | Stop after this many exported rows. 0 means no limit. |
includeRaw | Attach the untouched PRH JSON to each row. |
The industry code changed on 1 January 2026
This is the mistake that costs the most, and the register's own documentation walks you into it.
Finland re-registered every company's line of business under a new classification on 2026-01-01. Codes were renumbered. PRH's API documentation still points at the older TOL 2008 codes — which now match only records frozen before the migration, and those are overwhelmingly companies that have ceased.
Measured on 2026-08-28, searching Helsinki for computer programming companies:
| Code | Classification | Matches | Still trading |
|---|---|---|---|
62010 | TOL 2008, the documented one | 44 | 0% |
62100 | current | 3,583 | 99% |
Same activity, different number, 81× the results and all of them alive. This Actor checks the first page of every industry search and writes a warning into the run log naming the retired classification when your code looks like an old one, so you find out during the run instead of after the export.
Legal form: letter codes only
The register accepts OY, and silently ignores 16 — the numeric type that appears inside the data for exactly the same thing. "Silently" means HTTP 200 and all 824,112 companies, as though no filter had been sent. Under pay-per-result billing that is an invoice for the whole country.
This Actor refuses a code that is not on the register's list rather than run that query, and the error names the letter code you probably meant.
Half the register has ceased
824,112 entries, of which roughly half are no longer trading. PRH has no status parameter, so status is applied by this Actor as rows arrive — and a row dropped by it is never charged, because the charge follows the row into the dataset.
Results come back ordered by Business ID, which is roughly oldest first, so a broad search with status: active reads through older ceased companies before it reaches newer live ones. That is the register's ordering, not a delay in the Actor.
Pricing
Pay per result: charged once per company row actually exported. A search that matches nothing costs nothing beyond the platform's start event.
Where the data comes from
The Finnish Patent and Registration Office publishes the Business Information System (YTJ) as open data under CC BY 4.0, declared in the API's own OpenAPI document. The licence requires attribution, which is why every row carries a source field naming PRH and the licence — keep it in whatever you build. PRH also asks that services built on the data do not use the PRH or YTJ logo or otherwise resemble PRH's own services.
Frequently asked questions
Can I use this commercially?
Yes — CC BY 4.0 permits it, provided you attribute the Finnish Patent and Registration Office. The source column carries the attribution string for you.
How current is the data? The Actor queries the live API at run time. A company registered yesterday is available today; there is no cached copy in between.
Why does my industry search return old, dead companies?
Because the code is from the classification retired on 2026-01-01. See the table above — 62010 and 62100 are the same activity in the two schemes. The run log names the problem when it detects it.
Why did my legal-form filter return the whole register?
It did not, in this Actor — it refuses to run. The underlying API ignores an unrecognised code and returns everything, which is why the check exists. Use OY, not 16.
Can I export all 824,112 companies in one run?
Yes in principle: the API pages 100 at a time with no offset ceiling, so nothing is unreachable. Expect a long run, and set maxItems deliberately, since every exported row is billed.
Do I get directors, owners or financial statements? No. Those live in separate PRH services with their own terms. This Actor stays within the open Business Information System.
Does it work as an MCP tool? Yes. Like every Apify Actor it exposes an MCP endpoint, so an AI agent can call the Finland Company Register Actor and get structured rows back.
Related Actors
- Norway Company Register Search — the same job for the Norwegian Brreg register
- France Company Register Scraper — France, with named directors
- Brazil CNPJ Lookup — resolve Brazilian company identifiers
- GLEIF LEI Scraper — Legal Entity Identifiers, for joining registers across countries