YTJ Scraper: Finland Company Registry (PRH) Search
Pricing
from $1.20 / 1,000 companies
YTJ Scraper: Finland Company Registry (PRH) Search
Search Finland's official YTJ/PRH business register by name, city, industry or registration date: Business ID (Y-tunnus), company form, TOL code, website, VAT.
Pricing
from $1.20 / 1,000 companies
Rating
0.0
(0)
Developer
MRSLM Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
Search Finland's official business register (YTJ) by name, city, industry or registration date: Business ID, company form, TOL code, addresses, website, VAT. $1.50 per 1,000 companies.
This Actor searches YTJ, the Finnish Business Information System run by the Finnish Patent and Registration Office (PRH) and the Tax Administration. It is the official record of every Finnish company: Business ID (Y-tunnus), company form, TOL industry code, addresses, website, and whether the company is in the trade, VAT, employer and prepayment registers. Search by name or Business ID, or filter by city, postcode, industry, company form and registration date. It reads PRH's open-data API, so no login, captcha or browser is involved.
What the YTJ Scraper does
The Actor sends your criteria to the PRH open-data company API (avoindata.prh.fi), pages through every match, keeps only active companies by default, skips records without a company form (private traders), and maps each company to a flat row with English descriptions. Typical jobs:
- New-company feed: every limited company registered yesterday in Helsinki, or every new software company in Finland this week.
- Prospect lists by city and industry, with websites and register flags.
- Verification of a list of Business IDs: name, form, status, VAT and employer registration in one pass.
Who it is for
- B2B sales and marketing teams selling to Finnish companies.
- Accountants, banks and payroll providers who want to reach new companies in their first weeks.
- Finance, procurement and compliance teams verifying suppliers' Business IDs and VAT status.
- Analysts and researchers tracking start-up formation by city and sector.
Quick start
- Press Start. The form is already filled with this example input, so the first run returns real rows in under a minute:
{"cities": ["Helsinki"],"industryCodes": ["62"],"registeredWithinDays": 60,"maxResults": 30}
- Swap in your own values, or call the Actor through the Apify API, Make, Zapier, n8n or the Python/JS clients with the same JSON.
- Download the results as JSON, CSV or Excel from the Output tab, or schedule the run to repeat.
Real example: new IT companies in Tampere in the last 180 days
Run on 2 November 2026 with this input:
{"cities": ["Tampere"],"industryCodes": ["62"],"registeredWithinDays": 180,"maxResults": 200}
Result: 54 companies in 6 seconds, charged 54 company events (about $0.08).
- All 54 are limited companies (OY); 50 are under TOL 62100 (computer programming), the rest under 62200 / 62900.
- 11 list a website, 39 are already VAT-registered and 3 are in the employer register: early signals of which start-ups are already trading.
- Each row links to its official page on tietopalvelu.ytj.fi.
Newest rows:
| Name | Business ID | TOL | Registered |
|---|---|---|---|
| WholeRev Oy | 3665184-1 | 62100 | 2026-10-30 |
| Massatori Oy | 3665271-3 | 62100 | 2026-10-30 |
| Mirleo Oy | 3665511-3 | 62100 | 2026-10-30 |
| Nowari Oy | 3665132-3 | 62100 | 2026-10-29 |
| Versus Entertainment Oy | 3656973-3 | 62100 | 2026-10-27 |
| Jankalites Oy | 3664424-6 | 62100 | 2026-10-27 |
Swap Tampere for Helsinki, Espoo, Oulu or Turku, or remove cities to cover all of Finland.
Sample row (real run, trimmed)
{"businessId": "3664020-2","euId": "FIFPRO.3664020-2","name": "Apex Ventures Oy","parallelNames": [],"auxiliaryNames": [],"formerNames": [],"companyFormCode": "OY","companyForm": "Limited company","businessIdDate": "2026-10-19","registrationDate": "2026-10-26","active": true,"tradeRegisterStatusCode": "1","situations": [],"vatStatus": [],"industryCode": "62200","industry": "Computer consultancy and computer facilities management activities","industryCodeSet": "TOIMI4","website": null,"visitingAddress": null,"postalAddress": "Linnankuja 2 B 7, 00160 HELSINKI","postCode": "00160","city": "HELSINKI","municipalityCode": "091","registers": ["Trade register","Tax Administration"],"vatRegistered": false,"employerRegistered": false,"prepaymentRegistered": false,"lastModified": "2026-10-26T23:11:46","registryUrl": "https://tietopalvelu.ytj.fi/yritys/3664020-2"}
Also included: previous and parallel names, company form code, all addresses with municipality code, Business ID date, trade-register status, register entries (Trade Register, VAT, prepayment, employer), EUID and last-modified date.
Output fields
| Field | What it holds |
|---|---|
businessId | Finnish Business ID (Y-tunnus), format 1234567-8. |
euId | EU-wide identifier (EUID). |
name | Registered name. |
parallelNames / auxiliaryNames / formerNames | Other registered names (Swedish names, trade names, earlier names). |
companyFormCode / companyForm | Form code (OY, OYJ, KY, AY, OSK…) and its name. |
businessIdDate | Date the Business ID was issued. |
registrationDate | Trade register registration date. |
active | False for ceased companies. |
tradeRegisterStatusCode | PRH status code. |
situations | Liquidation, bankruptcy or restructuring, when any. |
vatStatus | VAT register entries. |
industryCode / industry | Main TOL 2008 (NACE) code and its English description. |
industryCodeSet | Which classification version the code uses. |
website | Website, when registered. |
visitingAddress / postalAddress / postCode / city / municipalityCode | Address details. |
registers | Registers the company is in (Trade register, Tax Administration, VAT, Employer register…). |
vatRegistered / employerRegistered / prepaymentRegistered | Quick flags from the registers. |
lastModified | Last change in the register. |
registryUrl | Official YTJ page. |
scrapedAt | When this run read the record. |
Filters
searchTerms: company names.businessIds: exact Y-tunnus values (with or without the dash).citiesandpostCodes: address filters, e.g.Helsinki,Espoo,00100.industryCodes: TOL 2008 codes or prefixes, e.g.62IT services,62010software,70220business consulting.companyForms:OY,OYJ,KY,AY,OSKand others.registeredWithinDays: only companies registered in the last N days.activeOnly(on by default): skip ceased companies and those in liquidation, bankruptcy or restructuring.maxResultsPerSearchandmaxResults: caps.
Leave everything empty and the Actor runs the example search (Helsinki IT companies registered in the last 60 days, up to 30).
Export to CSV, Excel, JSON or Google Sheets
Every run saves its rows to an Apify dataset. Open the Output tab and pick a format:
- CSV or Excel for spreadsheets and CRM imports. Nested fields (arrays and objects) are flattened into columns such as
locations/0. - JSON or JSONL to keep the nested structure for code and databases.
- Google Sheets: add the Apify "Google Sheets export" integration to the Actor or schedule, and every finished run is appended to a sheet.
You can also copy the dataset link from the Storage tab. It is a stable API URL your own scripts can download at any time.
Use it from Make, Zapier or n8n
The Actor has official Apify modules in all three tools:
- Make: add the Apify → Run an Actor module, choose
mrslm_data/finland-company-registry, paste the JSON input, then add Apify → Get Dataset Items and map the fields into Google Sheets, HubSpot, Airtable or Slack. - Zapier: use the Apify app with the trigger Finished Actor Run (set up a schedule in Apify) or the action Run Actor, then Fetch Dataset Items.
- n8n: use the Apify node (Run Actor + Get dataset items), or a plain HTTP Request node calling the run-sync endpoint shown below.
Schedule it
In Apify Console open Schedules → Create new, choose this Actor and a cron such as 0 7 * * 1-5 (07:00 every working day). With registeredWithinDays: 1 each daily run returns only companies registered since the day before. Pair the schedule with an integration (e-mail, Slack, Google Sheets or a webhook) so new rows reach you without opening Apify.
Call it from the API (Python, JavaScript or curl)
The input below is the same JSON you would paste into the form.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("mrslm_data/finland-company-registry").call(run_input={"cities": ["Helsinki"],"industryCodes": ["62"],"registeredWithinDays": 7})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('mrslm_data/finland-company-registry').call({"cities": ["Helsinki"], "industryCodes": ["62"], "registeredWithinDays": 7});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, 'companys');
curl (runs the Actor and returns the rows in one call, for runs under 5 minutes):
curl -X POST "https://api.apify.com/v2/acts/mrslm_data~finland-company-registry/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>&format=csv" \-H "Content-Type: application/json" \-d '{"cities": ["Helsinki"], "industryCodes": ["62"], "registeredWithinDays": 7}'
Use it from AI agents and chat assistants (MCP)
Apify's MCP server (https://mcp.apify.com) exposes Store Actors as tools for Claude, ChatGPT, Cursor and other MCP clients. Add the server with your Apify token, enable mrslm_data/finland-company-registry, and ask in plain language, for example: "Find software companies registered in Helsinki in the last 7 days and show their Business IDs and websites." The assistant fills the input, runs the Actor and reads the rows back. You pay the same per-company price as a normal run.
What it costs
- Company: $1.50 per 1,000 saved (Silver $1.35, Gold $1.20)
- Plus $0.00005 per run. You pay only for companies saved after your filters. Searches with no matches are free.
Worked example: the Tampere run below saved 54 companies, about $0.08. A daily feed of every newly registered Finnish limited company is typically a few hundred rows a working day, under $1.
Tips
- Verify in bulk: paste hundreds of Business IDs into
businessIds; each one is a direct lookup. - Only trading companies: after the run, filter on
vatRegisteredoremployerRegisteredto drop dormant shells. - Whole country: leave
citiesempty and useindustryCodesplusregisteredWithinDays.
Limits
- No people: board members and owners are not in the PRH open-data API, and private traders without a company form are skipped.
- No financial statements or employee counts; YTJ does not publish them openly.
- PRH rate-limits its API, so very large country-wide pulls take a few minutes. The Actor paces requests and retries automatically.
FAQ
Where does the data come from? From the official PRH open-data API (avoindata.prh.fi), published under CC BY 4.0.
Is any personal data included? Records without a company form (private traders and other natural persons) are skipped, so every row is a company or other legal entity. No people's names are output.
How fresh is it? Live. PRH updates the register daily.
Can I get only new records each day? Yes. Use the date window input and schedule the Actor; each run returns what is new in that window.
What is the difference between YTJ and PRH? YTJ is the joint public service of PRH and the Tax Administration; this Actor reads PRH's open-data interface to the same data.
Does it include the Swedish name of a company? Yes, in parallelNames when the company registered one.
Data source, freshness and licence
Source: Finnish Patent and Registration Office open-data API (avoindata.prh.fi, YTJ company data). PRH updates it daily, and every run queries it live. Licence: Creative Commons Attribution 4.0 (CC BY 4.0); credit "Finnish Patent and Registration Office (PRH)" when you republish.
Is it legal?
This Actor only reads official open-data APIs that the publisher offers to everyone without a login or key. It obeys robots.txt, stays under the published rate limits, and never tries to get past logins, paywalls, captchas or bot checks. Records without a company form (private traders and other natural persons) are skipped, so every row is a company or other legal entity. No people's names are output. You are responsible for how you use the data: follow the source's licence and terms and the privacy and marketing laws that apply to you (GDPR, CAN-SPAM, PECR, etc.). This tool is independent and not affiliated with or endorsed by the data publisher.