# Finland YTJ Company Scraper — Business ID & Registrations (`neuralverge/neuralverge-ytj-company`) Actor

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.

- **URL**: https://apify.com/neuralverge/neuralverge-ytj-company.md
- **Developed by:** [NeuralVerge](https://apify.com/neuralverge) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### Finland YTJ Company Scraper — Business ID & Registrations ✅ No API Key

Scrape any Finnish company from the **YTJ / PRH Business Information System**
(tietopalvelu.ytj.fi) by Business ID (Y-tunnus) — name, Business ID, company form, main
line of business, registered office, languages, status, official register memberships
and Business ID history. Powered by the Neuralverge API. **No API key or account
required**, and **you only pay for companies we actually find**.

Ideal for KYC/KYB, due diligence, compliance, lead enrichment and feeding company data
to AI agents.

### ✨ Why this Actor

- 🇫🇮 **Full YTJ profile** — identity, registrations and Business ID history in one
  structured object.
- 💸 **Pay only for the companies you get** — unresolved Business IDs are skipped and
  never billed. Misses are free; no empty, billable rows.
- 🔑 **No API key or account** — extraction runs on the Neuralverge backend.
- ⚡ **Real-time & structured** — fresh data each run and one predictable JSON schema.

### 🔧 How it works

1. **Provide a Finnish Business ID** (Y-tunnus, e.g. `2387338-1`) — or an advanced full
   tietopalvelu.ytj.fi profile URL.
2. **Run the Actor.** Fetching and AI-structuring the profile happens on the Neuralverge
   backend.
3. **Get one dataset row per company** — the source `url`, the extraction `settings`
   (including the JSON schema) and the structured `machine` object. 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.

| Field | Type | Notes |
|---|---|---|
| `businessId` | string | The Finnish Business ID (Y-tunnus), e.g. `2387338-1`. |
| `companyUrl` | string | Advanced: a full tietopalvelu.ytj.fi profile URL to use instead of the Business ID. |

```json
{
  "businessId": "2387338-1"
}
````

### What you'll receive

Each dataset row mirrors the Neuralverge system output and has three top-level blocks:

- **`url`** — the tietopalvelu.ytj.fi profile URL that was scraped.
- **`settings`** — the extraction settings, including the full JSON schema used, at
  `settings.extract_schema_json`.
- **`machine`** — the structured result with these sections: `company_details`
  (company\_name, business\_id, company\_form, main\_line\_of\_business, languages,
  registered\_office, registration\_date, status), `registrations` (register memberships
  with status and dates) and `business_id_history`.

> **Nulls & empty values are normal.** Only data present on the profile is filled —
> e.g. a registration `end_date` is `null` while it's still active.

#### Example output (real run)

A real dataset row from `https://tietopalvelu.ytj.fi/yritys/2387338-1`, shown **in full** —
including the complete extraction **schema** (`settings.extract_schema_json`) and the full
**machine-readable result** (`machine`). The `human` markdown summary is produced by the
system but omitted from the dataset.

```json
{
  "url": "https://tietopalvelu.ytj.fi/yritys/2387338-1",
  "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"
      ]
    }
  },
  "machine": {
    "company_details": {
      "company_name": "Norges Bank (Central Bank of Norway)",
      "business_id": "2387338-1",
      "company_form": "Foreign organisation",
      "main_line_of_business": "64110 Central banking",
      "languages": [
        "Finnish"
      ],
      "registered_office": "FOREIGN COUNTRIES",
      "registration_date": "2011-01-31",
      "status": "Active"
    },
    "registrations": [
      {
        "register": "Tax Administration",
        "status": "Registered",
        "registration_date": "2011-01-31",
        "end_date": null
      }
    ],
    "business_id_history": [
      {
        "business_id": "2387338-1",
        "change_date": "2011-01-31",
        "change_type": "ID given"
      }
    ]
  }
}
```

> Genuine output from a live run — Norges Bank (Central Bank of Norway), with its
> registrations and Business ID history resolved.

### Pricing

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

| Event | Price |
|---|---|
| Actor start | Free |
| 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](https://docs.apify.com/api). The Actor
also plugs into Apify's integrations (Make, Zapier, n8n, webhooks) and can be called
from any [MCP](https://mcp.apify.com/) client.

### FAQ

**Do I need an account or API key?** No. Extraction runs on the Neuralverge backend.

**What identifier do I use?** The Finnish Business ID (Y-tunnus), e.g. `2387338-1`. You
can also pass a full tietopalvelu.ytj.fi profile URL.

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

***

**Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed
by, or sponsored by the Finnish Patent and Registration Office (PRH) or the Finnish Tax
Administration. Data originates from the public YTJ Business Information System.

# Actor input Schema

## `businessId` (type: `string`):

The Finnish Business ID (Y-tunnus) to look up, e.g. 2387338-1.

## `companyUrl` (type: `string`):

Optional. A full YTJ company URL to use instead of the Business ID, e.g. https://tietopalvelu.ytj.fi/yritys/2387338-1.

## Actor input object example

```json
{
  "businessId": "2387338-1"
}
```

# Actor output Schema

## `results` (type: `string`):

Structured YTJ company data (name, Business ID, form, line of business, registrations, ID history), one row per matched company.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "businessId": "2387338-1"
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuralverge/neuralverge-ytj-company").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "businessId": "2387338-1" }

# Run the Actor and wait for it to finish
run = client.actor("neuralverge/neuralverge-ytj-company").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "businessId": "2387338-1"
}' |
apify call neuralverge/neuralverge-ytj-company --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=neuralverge/neuralverge-ytj-company",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Finland YTJ Company Scraper — Business ID & Registrations",
        "description": "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.",
        "version": "0.1",
        "x-build-id": "zFwe3cOv1PNfOFRiu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/neuralverge~neuralverge-ytj-company/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-neuralverge-neuralverge-ytj-company",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/neuralverge~neuralverge-ytj-company/runs": {
            "post": {
                "operationId": "runs-sync-neuralverge-neuralverge-ytj-company",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/neuralverge~neuralverge-ytj-company/run-sync": {
            "post": {
                "operationId": "run-sync-neuralverge-neuralverge-ytj-company",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "businessId": {
                        "title": "Business ID (Y-tunnus)",
                        "type": "string",
                        "description": "The Finnish Business ID (Y-tunnus) to look up, e.g. 2387338-1."
                    },
                    "companyUrl": {
                        "title": "Company profile URL (advanced)",
                        "type": "string",
                        "description": "Optional. A full YTJ company URL to use instead of the Business ID, e.g. https://tietopalvelu.ytj.fi/yritys/2387338-1."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
