Finland YTJ Company Scraper — Business ID & Registrations avatar

Finland YTJ Company Scraper — Business ID & Registrations

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Finland YTJ Company Scraper — Business ID & Registrations

Finland YTJ Company Scraper — Business ID & Registrations

Scrape any Finnish company from the YTJ / PRH Business Information System by Business ID (Y-tunnus) — name, legal form, line of business, home municipality, languages, register status and Business ID history. No API key. Structured JSON for KYB. Pay only for companies found.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

NeuralVerge

NeuralVerge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

Finland YTJ Company Scraper — Business ID & Registrations

Scrape any Finnish company from the official YTJ / PRH Business Information System by Business ID (Y-tunnus) — company name, Business ID, legal form, main line of business, home municipality (kotipaikka), registered languages, register status and the full Business ID history. Data comes from the Finnish Patent and Registration Office (PRH) and Tax Administration joint service (YTJ). Powered by the Neuralverge API. No API key, login or registration required, and you only pay for companies we actually find. Structured JSON — export to CSV, JSON or Excel.

Ideal for KYB / company verification, due diligence, KYC/AML, merchant and vendor onboarding, Finnish lead generation and feeding official registry data to AI agents.

✨ Why this Actor

  • 💸 Pay only for the companies you get — unresolved Business IDs are skipped and never billed. Misses are free.
  • 🔓 No API key, no registration — the Finnish YTJ register, structured for you.
  • 🏛️ Official source, clean row — identity, line of business, register status and Business ID history, flattened into spreadsheet-ready columns and kept in full as structured JSON.
  • Real-time & AI-structured — fresh data each run and one predictable schema.

🔧 How it works

  1. Provide a Finnish Business ID (Y-tunnus), e.g. 2387338-1 — or paste a full YTJ URL such as https://tietopalvelu.ytj.fi/yritys/2387338-1.
  2. Run the Actor. Fetching and AI-structuring the profile happen on the Neuralverge backend.
  3. Get one dataset row per company. Export to CSV, JSON or Excel, or pull it over the Apify API.

If the company can't be resolved, it's logged and skipped without charge.

Input

One company per run.

FieldTypeNotes
businessIdstringThe Finnish Business ID (Y-tunnus), e.g. 2387338-1.
companyUrlstringOptional. A full YTJ profile URL, used instead of the Business ID.
countryCodestringGeo-routing code (advanced, default us).
{
"businessId": "2387338-1"
}

What you'll receive

Each row includes, when available on the profile:

  • Identitycompany_name, business_id, company_form, main_line_of_business, registered_office, status, registration_date, languages
  • Registersregistrations (register name, status, dates) with registrationsCount
  • Historybusiness_id_history (ID, change date, change type) with businessIdHistoryCount
  • Metaquery, businessId, scrapedAt, the markdown summary under human, and the complete response under raw

Example output (real run)

Real, unabridged response from a live run of Business ID 2387338-1 (5 points, ~3s):

{
"session_id": "7b246ea3-5b49-4cac-898d-b263d96e7e73",
"kind": "extract",
"url": "https://tietopalvelu.ytj.fi/yritys/2387338-1",
"used_url": "https://tietopalvelu.ytj.fi/yritys/2387338-1",
"instructions": "Extract data from YTJ profile\n- Company details\n- Registrations\n- Business ID history",
"settings": {
"has_schema": true,
"country_code": "us",
"extract_schema_json": {
"type": "object",
"properties": {
"company_details": {
"type": "object",
"description": "General details about the company.",
"properties": {
"company_name": { "type": "string", "description": "The official name of the company." },
"business_id": { "type": "string", "description": "The current Business ID (Y-tunnus) of the company." },
"company_form": { "type": "string", "description": "The legal form of the company (e.g., Osakeyhtiö)." },
"main_line_of_business": { "type": "string", "description": "The company's primary industry or line of business." },
"languages": { "type": "array", "description": "List of the company's officially registered languages.", "items": { "type": "string" } },
"registered_office": { "type": "string", "description": "The municipality where the company is officially registered (kotipaikka)." },
"registration_date": { "type": "string", "format": "date", "description": "The date the company was first registered." },
"status": { "type": "string", "description": "The current operational status of the company (e.g., Active, Ceased)." }
},
"required": ["company_name", "business_id"]
},
"registrations": {
"type": "array",
"description": "A list of the company's registrations in different official registers.",
"items": {
"type": "object",
"properties": {
"register": { "type": "string", "description": "The name of the register, e.g., 'Employer Register', 'VAT Register', 'Prepayment Register'." },
"status": { "type": "string", "description": "The company's status in this specific register (e.g., 'Registered', 'Deregistered')." },
"registration_date": { "type": "string", "format": "date", "description": "The date the registration became effective." },
"end_date": { "type": "string", "format": "date", "description": "The date the registration ended, if applicable." }
},
"required": ["register", "status", "registration_date"]
}
},
"business_id_history": {
"type": "array",
"description": "A history of the company's Business IDs and related changes.",
"items": {
"type": "object",
"properties": {
"business_id": { "type": "string", "description": "The Business ID (Y-tunnus) from a specific period." },
"change_date": { "type": "string", "format": "date", "description": "The date the change related to this Business ID occurred." },
"change_type": { "type": "string", "description": "The type of change or event, e.g., 'New registration', 'ID change', 'Merger'." }
},
"required": ["business_id", "change_date", "change_type"]
}
}
},
"required": [
"company_details",
"registrations",
"business_id_history"
]
}
},
"human": "{\n \"markdown\": \"# Company Details\\n\\n## Norges Bank (Central Bank of Norway)\\n\\n**Business ID:** 2387338-1\\n\\n**Company Name:** Norges Bank (Central Bank of Norway)\\n\\n**Company Form:** Foreign organisation\\n\\n**Registered Office:** FOREIGN COUNTRIES\\n\\n**Registration Date:** 31.01.2011\\n\\n**Main Line of Business:** 64110 Central banking\\n\\n**Languages:** Finnish\\n\\n## Registrations\\n\\n### Registrations in Force\\n\\n* **Register:** Tax Administration\\n * **Status:** Registered\\n * **Registration Date:** 31.01.2011\\n\\n## Business ID History\\n\\n| Date | Transaction | Description |\n| ---------- | ----------- | ----------- |\\n| 31.01.2011 | ID given | |\",\n \"extracted\": {\n \"company_details\": {\n \"company_name\": \"Norges Bank (Central Bank of Norway)\",\n \"business_id\": \"2387338-1\",\n \"company_form\": \"Foreign organisation\",\n \"main_line_of_business\": \"64110 Central banking\",\n \"languages\": [\n \"Finnish\"\n ],\n \"registered_office\": \"FOREIGN COUNTRIES\",\n \"registration_date\": \"2011-01-31\",\n \"status\": null\n },\n \"registrations\": [\n {\n \"register\": \"Tax Administration\",\n \"status\": \"Registered\",\n \"registration_date\": \"2011-01-31\",\n \"end_date\": null\n }\n ],\n \"business_id_history\": [\n {\n \"business_id\": \"2387338-1\",\n \"change_date\": \"2011-01-31\",\n \"change_type\": \"ID given\"\n }\n ]\n }\n}",
"machine": null,
"total_points": 5,
"duration_ms": 2574
}

For this source machine is null and the structured data arrives inside human as a JSON string wrapping { "markdown": ..., "extracted": {...} }. The Actor parses that, lifts the identity fields (company_name, business_id, company_form, main_line_of_business, registered_office, status, registration_date) to the top level, adds registrationsCount / businessIdHistoryCount, and keeps the full human and raw response.

Pricing

Pay per result — $0.005 per company ($5 per 1,000) returned to the dataset. You pay only for companies returned — misses are free.

EventPrice
Actor startFree
Company returned (per dataset row)$0.005

Business IDs that can't be resolved are not billed. Pricing is on top of your Apify platform usage.

Integrations & API

Results are stored in a standard Apify dataset — export as CSV, JSON, XML or Excel, or fetch on demand through the Apify API. The Actor also plugs into Apify's integrations (Make, Zapier, n8n, webhooks) and can be called from any MCP client to give an AI agent live Finnish company-registry data for KYB and verification.

FAQ

Do I need a YTJ account or API key? No. Fetching and structuring run on the Neuralverge backend — you never provide credentials or keys.

Am I charged if a company isn't found? No. You're billed only for rows returned to the dataset.

What identifier do I use? The Finnish Business ID (Y-tunnus), e.g. 2387338-1.

Is the data official? Yes — it comes from the YTJ Business Information System (PRH + Finnish Tax Administration).

How fresh is the data? Each run fetches the profile at run time.


Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by YTJ, the Finnish Patent and Registration Office (PRH), or the Finnish Tax Administration. All trademarks are property of their respective owners. Data is sourced from the public register; use it in compliance with the register's terms and applicable data-protection law.