Finland YTJ Company Registry Scraper avatar

Finland YTJ Company Registry Scraper

Pricing

Pay per event

Go to Apify Store
Finland YTJ Company Registry Scraper

Finland YTJ Company Registry Scraper

Search Finland’s public YTJ company registry by name or Business ID. Export legal names, legal forms, municipalities, industries, and source context for verified Finnish company records.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Search public Finnish company records from the YTJ (Yritys- ja yhteisötietojärjestelmä) registry.

Export Finnish Business IDs, legal names, company forms, municipalities, and industries in structured JSON.

What does it do?

This Apify Actor searches the public YTJ company and organisation registry by company name or exact Y-tunnus.

Use it to turn public Finnish registry searches into records that can be filtered, exported, or sent to downstream tools.

It supports discovery searches such as Nokia and direct verification lookups such as 0112038-9.

Who is it for?

  • Sales operations teams building a Finland-focused company prospect list.
  • KYB and compliance teams verifying a public Business ID.
  • Analysts researching Finnish corporate entities and industries.
  • Developers who need a repeatable YTJ registry extractor in an automated workflow.

This Actor is for public registry information only. It does not provide private company data or paid PRH/Virre documents.

Why use the YTJ registry scraper?

Manual registry lookup is useful for one company, but it is slow to repeat across many name searches.

The Actor produces a consistent dataset with the search query retained on every row.

That makes it easy to join results with an existing lead list, deduplicate by Business ID, or audit how a company was found.

Public data returned

FieldDescription
businessIdFinnish Y-tunnus / Business ID
legalNameCurrent legal company or organisation name
legalFormPublic legal-form label from YTJ
municipalityRegistered municipality / domicile
industryPublic main-industry label when available
queryThe input that generated the row
queryModecompanyName or businessId
sourceUrlPublic YTJ result or company page URL
scrapedAtISO 8601 collection timestamp

Quick start

  1. Open the Actor in Apify.
  2. Enter one or more company names or Business IDs.
  3. Keep the first run small with a low maxItems value.
  4. Run the Actor and download the dataset as JSON, CSV, Excel, or via API.

A name search can have many partial matches. Use an exact Business ID when you already know the entity to verify.

Search by company name

Use companyNames to discover companies that match a word or phrase.

{
"companyNames": ["Nokia"],
"maxItems": 10
}

The registry may return similarly named organisations as well as the best-known company. Filter by legal form, municipality, or industry after export.

Search by Finnish Business ID

Use businessIds for direct public company verification.

{
"businessIds": ["0112038-9"],
"maxItems": 1
}

The Business-ID mode opens the public company record and returns current legal-name, legal-form, municipality, and main-industry values.

Combine searches carefully

You can submit both input modes in one run.

{
"companyNames": ["Nokia", "Kone"],
"businessIds": ["0112038-9"],
"maxItems": 20
}

maxItems is a global cap for the entire run. Put direct IDs first in a separate run if they must not be crowded out by a broad name search.

Input reference

InputTypePurpose
companyNamesarray of stringsName queries for public YTJ results
businessIdsarray of stringsExact Y-tunnus values to look up
maxItemsinteger, 1–100Maximum dataset rows across all queries

At least one company name or Business ID is required.

Output example

{
"businessId": "0112038-9",
"legalName": "Nokia Oyj",
"legalForm": "Julkinen osakeyhtiö",
"municipality": "HELSINKI",
"industry": "70100 Pääkonttorien toiminta",
"query": "0112038-9",
"queryMode": "businessId",
"sourceUrl": "https://tietopalvelu.ytj.fi/yritys/0112038-9",
"scrapedAt": "2026-07-11T00:00:00.000Z"
}

Some public records do not list an industry. In those cases industry is null rather than a guessed value.

How much does it cost to scrape Finland YTJ company records?

This Actor uses pay-per-event pricing: a small run-start event plus one event for each output company record.

Current per-item prices are shown in the Apify pricing panel before a run starts. Keep initial searches small so you can confirm the returned match quality.

Tips for better matches

  • Prefer a full legal name over a generic keyword.
  • Use a Business ID for an exact entity lookup.
  • Start with 5–10 results for broad names.
  • Deduplicate exported records using businessId.
  • Retain query and queryMode when combining searches from multiple teams.

Integrations

Use the dataset in a lead-enrichment workflow: search names from a CRM, filter Finnish entities by municipality or industry, then save the Business ID back to your CRM.

For KYB workflows, submit known Business IDs and archive the returned sourceUrl with the verification result.

For data pipelines, fetch the default dataset after each run and load rows into a warehouse keyed by businessId.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/finland-ytj-company-registry-scraper').call({
companyNames: ['Nokia'],
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/finland-ytj-company-registry-scraper").call(
run_input={"businessIds": ["0112038-9"], "maxItems": 1}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~finland-ytj-company-registry-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"companyNames":["Nokia"],"maxItems":10}'

MCP usage

Add this Actor to Apify MCP tools with ?tools=automation-lab/finland-ytj-company-registry-scraper.

For Claude Code, add the Apify MCP server:

$claude mcp add --transport http apify https://mcp.apify.com/?tools=automation-lab/finland-ytj-company-registry-scraper

For Claude Desktop, add this server configuration and restart the app:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=automation-lab/finland-ytj-company-registry-scraper"
}
}
}

Example prompts: “Search the Finnish YTJ registry for companies named Nokia and return the first five Business IDs.”

“Verify Finnish Business ID 0112038-9 and return its legal form and municipality.”

Reliability and limitations

YTJ is a public website whose markup and availability can change.

Broad searches can return hundreds of matches; this Actor deliberately reads only the first result page and respects maxItems.

It does not bypass login controls, paywalls, CAPTCHA challenges, or access restrictions.

No result is returned when YTJ has no matching public entry.

Legality and responsible use

Only collect and use public registry information for lawful, legitimate purposes.

Respect YTJ terms, applicable Finnish and EU data-protection requirements, and your organisation’s compliance policies.

Do not use public company data to make decisions about individuals or to send unlawful marketing.

Troubleshooting

Why did a name search return unexpected companies?

YTJ name matching can include partial matches and organisations with the word in their name. Use a more specific name, reduce maxItems, or look up a known Y-tunnus.

Why is an industry empty?

Not every public record exposes a current main-industry value. The Actor returns null in that case.

Why did I receive zero rows?

Check the Business ID format, spelling, and whether the entity appears in the public YTJ service. Retry later if the public service is temporarily unavailable.

FAQ

Does this Actor return paid Virre documents?

No. It extracts only information publicly displayed by YTJ.

Can I search terminated companies?

The current MVP searches the public default result set for active entities. Use the YTJ website directly for special search filters not exposed by this Actor.

Can I request more than 100 companies?

The Actor caps one run at 100 items to keep results predictable and avoid excessive broad searches.

For adjacent European registry workflows, see the France Sirene Company Scraper.

For broader B2B workflows, combine registry data with your CRM or a company-domain enrichment Actor.

Support

Include your non-sensitive input, run ID, and an example expected result when reporting an issue.

Do not send credentials or private data in Actor support requests.