# Finnish Company Leads (`cognit-dev/finnish-company-leads`) Actor

Lists of Finnish companies from the official trade register (PRH/YTJ), filtered by town, industry and registration date. Optional website, generic company email and social links. B2B lead generation, export to Excel, CSV or JSON.

- **URL**: https://apify.com/cognit-dev/finnish-company-leads.md
- **Developed by:** [Cognit](https://apify.com/cognit-dev) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 companies

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Finnish Company Leads

Get lists of Finnish companies straight from the official trade register: new limited companies in your town this month, every IT company in Oulu, or all construction firms registered in Pirkanmaa this year. Optionally add each company's website, generic company email and social media pages.

**For business use only (B2B).**

### What you can do with it

- **Find new customers early.** Newly registered companies need accountants, banks, insurance, websites, IT and office space. Run it monthly and reach them first.
- **Build regional or industry lists** for sales, marketing or market research.
- **Find companies without a website.** Web agencies: in our tests, about 7 in 10 companies had no website we could find.

### Input

| Field | Example | Notes |
|---|---|---|
| Towns or cities | `Tampere`, `Nokia` | One or more. Leave empty for all of Finland. |
| Registered on or after / before | `2026-09-01` | Registration date range. |
| Industry code | `62` | TOL 2008 code or prefix: 62 IT services, 43 construction, 56 restaurants, 69 accounting and legal. |
| Company form | Oy | Oy, Oyj, Ky or Ay. |
| Find website, emails and social links | on/off | Priced separately, see below. |
| Max companies | `1000` | Stops after this many. |

### Output

One row per company. Download as Excel, CSV, JSON or HTML, or use the API.

```json
{
  "businessId": "3645244-7",
  "name": "Parmance Oy",
  "companyForm": "Limited company",
  "industryCode": "62200",
  "industry": "Computer consultancy and computer facilities management activities",
  "industryFi": "Laitteistokonsultointi ja käyttö- ja hallintapalvelut",
  "website": "https://parmance.com",
  "street": "Hermiankatu 6-8 D",
  "postCode": "33720",
  "city": "TAMPERE",
  "registrationDate": "2026-09-03",
  "websiteMatch": "register",
  "emails": "info@parmance.com",
  "socials": "",
  "source": "Finnish Patent and Registration Office (PRH), open data, CC BY 4.0"
}
```

With **Find website, emails and social links** on:

- `website` and `websiteMatch` show how the site was matched:
  - `register`: the site is listed in the trade register.
  - `businessId`: the company's business ID was found on the site.
  - `name`: the company name plus a Finnish address or phone number were found on the site.
- `emails`: generic company addresses only (info@, myynti@, asiakaspalvelu@ ...).
- `socials`: Facebook, Instagram, LinkedIn and X pages.

**How many will have contacts?** In a test of Tampere companies registered in early 2022, 31% had a website, 13% a generic email and 18% social links. Very new companies often have no website yet, so expect lower numbers for last month's registrations.

### Pricing

You pay per company returned:

- **Company data:** $1.50 per 1,000 companies.
- **Company data with website, emails and social links:** $8 per 1,000 companies.

Set a maximum cost per run in Apify, and the run stops when it's reached.

### Privacy and GDPR

- Sole traders (toiminimi) are not included, because their data is personal data.
- Personal email addresses (such as firstname.lastname@) are never collected, only generic company addresses.
- c/o names and apartment numbers are removed from addresses.

### Using the data for marketing

In Finland, email marketing to businesses is generally allowed unless the recipient has opted out, but marketing to private individuals needs their prior consent. You are responsible for following the law where you use the data.

### FAQ

**How fresh is the data?** Every run reads the live register, so new registrations appear within days.

**Why is a company's website missing?** It isn't listed in the register and we couldn't match one safely. We prefer leaving it empty over returning the wrong company's site.

**Can I get phone numbers or named contact persons?** No. They are often personal data, so we leave them out.

### Data source and licence

Company data: Finnish Patent and Registration Office (PRH), open data, licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). This Actor is not affiliated with or endorsed by PRH.

# Actor input Schema

## `locations` (type: `array`):

One or more towns, e.g. Tampere, Nokia, Ylöjärvi. Leave empty for all of Finland (use a date range then).

## `registrationDateStart` (type: `string`):

Only companies registered on or after this date (YYYY-MM-DD). Tip: last month = this month's new leads.

## `registrationDateEnd` (type: `string`):

YYYY-MM-DD

## `mainBusinessLine` (type: `string`):

TOL 2008 industry code or prefix, e.g. 62 for IT services, 43 for construction, 56 for restaurants.

## `companyForm` (type: `string`):

Sole traders are not offered: their data is personal data.

## `withContacts` (type: `boolean`):

Finds each company's website and collects generic company emails (info@, myynti@, asiakaspalvelu@ ...) and Facebook, Instagram, LinkedIn and X pages. Personal emails are never collected. Priced separately.

## `maxItems` (type: `integer`):

Stop after this many companies.

## Actor input object example

```json
{
  "locations": [
    "Tampere"
  ],
  "companyForm": "OY",
  "withContacts": false,
  "maxItems": 1000
}
```

# Actor output Schema

## `companies` (type: `string`):

No description

# 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 = {
    "locations": [
        "Tampere"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("cognit-dev/finnish-company-leads").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 = { "locations": ["Tampere"] }

# Run the Actor and wait for it to finish
run = client.actor("cognit-dev/finnish-company-leads").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "locations": [
    "Tampere"
  ]
}' |
apify call cognit-dev/finnish-company-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cognit-dev/finnish-company-leads"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Wd3scwbg1iOUhkgLe/builds/bgCgGhRdOUSmmWKxD/openapi.json
