# Official Company Headcount: France, Norway, UK, Latvia, Estonia (`northbell/company-registry-headcount`) Actor

Company name or registry number in: the registry number and the official headcount (France: INSEE band; Norway: NAV; UK: filed accounts; Latvia, Estonia: tax board quarterly figures), with reference date, source and why a figure is missing. Official filings, not a live LinkedIn count.

- **URL**: https://apify.com/northbell/company-registry-headcount.md
- **Developed by:** [Northbell](https://apify.com/northbell) (community)
- **Categories:** Lead generation, Business
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Official Company Headcount — France, Norway, UK, Latvia, Estonia, Czechia, Slovakia, Romania & Japan

**Employee numbers you can cite**: the figure the state publishes from employers' own declarations, for supplier and KYC checks, sizing a sales list, due diligence and market research. Give company names or registry numbers. For each company you get the **registry number**, the **official headcount or band**, **what that figure measures and when**, the **source and licence**, and **why a figure is missing** when there is none — in the same columns for every country. No login, no API key, $2 per 1,000 companies plus $0.01 a run.

**Try it now — the input is already filled in.** Press **Start**: a French name, a Norwegian registry number and a UK company number come back with the official figure in about 9 seconds, for about $0.02.

| `country` | `name` | `employees` | `employeesAsOf` | `employeesBasis` |
| --- | --- | --- | --- | --- |
| FR | DECATHLON | 5000-9999 | 2024 | INSEE salaried-employee band |
| NO | EQUINOR ASA | 21231 | 2026-10-10 | employees registered with NAV |
| UK | TIDE PLATFORM LTD | 934 (956 a year before) | 2025-12-31 | average employees in the filed accounts |

Every figure says when it is from and where it comes from, so you can cite it. A name can match several companies: `FR: Decathlon` also returns DECATHLON FRANCE (10000+) and a third company at the same address, ranked and marked `needsReview`; a registry number returns exactly one.

| country | official figure | updated |
|---|---|---|
| France | INSEE employee band, plus the latest published turnover and profit | yearly, more than a year behind |
| Norway | exact employees registered with NAV | about monthly |
| UK | average employees from the accounts filed at Companies House | yearly |
| Latvia, Estonia | the tax boards' employee count for every company | quarterly |
| Czechia (`CZ:` name or IČO), Slovakia (IČO only) | the statistical register's size category | yearly |
| Romania (CUI only) | exact average employees, plus turnover and net profit from the filed annual statement | yearly |
| Japan (法人番号, or a name in Japanese) | exact employees shown on gBizINFO (METI), with the source it names and that source's update date | as the source updates |

It is not a live LinkedIn headcount: it counts people on the payroll as declared to the state, not profiles, and each row says how old the figure is. For today's LinkedIn count and its growth week by week, use [LinkedIn Company Scraper with Headcount Growth](https://apify.com/northbell/linkedin-company-growth-scraper).

What the filled-in input returned on 18 Oct 2026 (8 s, $0.02), plus one Latvian and one Estonian name in a second run (11 s):

| you typed | registry number | company | official figure | as of |
|---|---|---|---|---|
| `FR: Decathlon` | 306138900 | DECATHLON | 5,000–9,999 (INSEE band) | 2024 |
| `923609016` | 923609016 | EQUINOR ASA | 21,231 (NAV) | 2026-10-10 |
| `UK:09595646` | 09595646 | TIDE PLATFORM LTD | 934 (average in the accounts) | 2025-12-31 |
| `LV: airBaltic` | 40003245752 | AIR BALTIC CORPORATION AS | 2,761 (VID, 2026 Q3) | 2026-09-30 |
| `EE: Bolt Technology` | 12417834 | BOLT TECHNOLOGY OÜ | 629 (EMTA, 2026 Q3) | 2026-09-30 |

A name can match several registered companies: `FR: Decathlon` also returned DECATHLON FRANCE (10,000+) and a third company, each row saying why it matched.

### What you get

| Field | France | Norway | UK |
|---|---|---|---|
| `companyId` | SIREN | Organisasjonsnummer | Company number |
| `employees` | – (France publishes bands) | exact count | average over the financial year |
| `employeesMin` / `employeesMax` / `employeeBand` | INSEE band, e.g. 5000–9999 | the count, or the official 0–4 range | the average |
| `employeesAsOf` | reference year (31 Dec of that year) | date of the NAV registration | end of the financial year (`periodStart` too) |
| `previousEmployees`, `previousEmployeesAsOf`, `employeesChange` | – | – | last year's average from the same accounts, and the change |
| `employeeAnswer` | `count`, `range`, `none` or `missing` | same | `count` or `missing` |
| `missingReason` | why there is no figure | same | same |
| `companySize`, `revenue`, `netIncome`, `financialYear` | INSEE size category and the latest published accounts | – | – (`accountsMadeUpTo`, `accountsFiledOn`, `accountsDocumentUrl` instead) |
| `status`, `legalForm`, `industryCode`, `city`, `foundedOn`, `registryUrl` | yes | yes | `status` (name searches) and `registryUrl` |
| `address` | registered address of the seat | registered business address | – |
| `source`, `license`, `licenseUrl`, `retrievedAt`, `attribution` | on every row | on every row | on every row |

`address` is the registered address of a company (France, Norway, Czechia and Japan). It is left empty for a sole proprietor (France: legal form 1xxx, Norway: ENK, Czechia: a natural person), whose registered address is often a home, and for the other countries.

Romania also fills `previousEmployees`, `previousEmployeesAsOf` and `employeesChange` from the year before's statement (one more ANAF request, still two years at most). The other countries leave them `null`.

#### What changed since your last run

Every row also carries the figure your own earlier runs returned for the same company, in every country:

| Field | Meaning |
|---|---|
| `employeesAtLastRun`, `employeeBandAtLastRun`, `employeesAsOfAtLastRun` | the figure, band and reference date when your runs last returned this company |
| `lastRunAt` | when that was |
| `changedSinceLastRun` | `true` if the figure, band or reference date moved, `false` if not, `null` the first time you look a company up |

Norway's register moves every month, the Latvian and Estonian tax files every quarter, UK accounts and Romanian statements once a year. Schedule the same list and turn on **Only companies whose figure changed** (`onlyChanged`): unchanged companies are left out and not charged, so each run returns only what moved. The run's summary counts `changedSinceLastRun`, `unchangedSinceLastRun`, `firstSeen` and `skippedUnchanged`. The figures are kept in a store named `registry-headcount-seen` in your account.

Latvia and Estonia use the same columns:

| Field | Latvia | Estonia |
|---|---|---|
| `companyId` | Registration number (11 digits) | Registry code (8 digits) |
| `employees` | average number of employed persons in the quarter | employed persons in the employment register on the last day of the quarter |
| `employeesAsOf` | last day of the quarter (`periodStart` too) | last day of the quarter |
| `quarter` | e.g. `2026-Q3` | same |
| `employeeAnswer` | `count` (0 is VID's own figure) or `missing` | `count` or `missing` |
| `industry`, `city`, `registryUrl` | – | yes (`registryUrl` is the e-Business Register page) |

#### Official "no employees" is an answer, not a gap

- **France `NN`**: no salaried staff, or presumed so for want of a declaration. Returned as `employeeAnswer: "none"`.
- **France `00`**: 0 employees on 31 December, but it did employ people during that year. Returned as a count of 0.
- **Norway, no employees registered with NAV**: returned as `employeeAnswer: "none"` and never written as 0.
- **Norway, employees registered but no number**: the registry leaves the number empty when a business has 0–4 employees (Enhetsregisteret API changelog, version 2). Returned as the range 0–4.
- **`missing`** is kept for real gaps only, for example when a French company has asked for partial publication. A hidden figure is never guessed.

### Names or numbers

**Registry numbers are the sure way.** A 9-digit number is checked against both check-digit rules, so the Actor knows whether it is a SIREN or a Norwegian organisation number. A 14-digit SIRET finds its company. A UK company number has 8 characters (`09595646`, `SC045551`). A Latvian registration number has 11 digits. An Estonian registry code has 8 digits and a check digit; an 8-digit number without a prefix that passes the Estonian check is looked up in both the UK and Estonia. Put `FR:`, `NO:`, `UK:`, `LV:` or `EE:` in front to force a country. A Czech IČO (8 digits, check digit) needs `CZ:` in front, or Czechia picked in *Countries for names*; leading zeros a spreadsheet dropped are put back.

**Names return candidates, never one silent pick.** Each candidate carries:

- `matchReason`: `exact name`, `exact trade name` (BlaBlaCar is registered as COMUTO) or `name contains every word`.
- `confidence`: `high` only for the one exact name, otherwise `review`.
- `otherMatches`: how many more candidates were left out.

Works councils, foundations, clubs, pension trustees and nominee companies that carry the company's name are left out. A name that says *Group* or *Holding* must have that word in the company's name to count as exact. So are fuzzy hits that share only part of a word.

**A registry counts one legal entity.** A listed holding often has a handful of staff (STOREBRAND ASA: 8), while its operating company holds the people (STOREBRAND LIVSFORSIKRING AS: 1,155). Raise *Max candidates per name* to see both side by side.

The registries' name search looks at current names only. A company that was renamed is found under its new name (Sendinblue → Brevo) or by its number.

### The UK: electronic accounts only

Companies House gives away its accounts as free bulk data. This Actor takes **only the employee number** written in a company's latest accounts (the average number of employees during the financial year); the text of the accounts is never returned.

Be aware of what that covers:

- **Electronically filed accounts only.** Accounts filed on paper or as a PDF are not in the bulk data, and **most large companies file PDFs**: see the measurements below. Those rows say `not machine-readable (paper or PDF filing, ...)` and are not charged.
- **The latest 13 months of filings.** The free bulk data keeps 60 daily files and 12 monthly files. Older accounts come back as `accounts older than the free bulk data`.
- **No accounts filed yet** (new companies) and **dormant companies** return a reason, not a figure.
- A UK lookup reads the filing history and then the accounts file, so it takes a few seconds per company (longer for the first company of each month).

### Latvia and Estonia: the tax boards' quarterly files

Both tax boards publish, every quarter, a file with every company's taxes paid and its number of employees. This Actor reads the file once per run and keeps only the rows that match your companies.

- **Latvia** (VID, the State Revenue Service, on data.gov.lv): the **average number of employed persons in the quarter**. The file holds the latest quarter only. A 0 is VID's own figure and is returned as a count of 0. The portal says the data is for information only and has no legal force.
- **Estonia** (EMTA, the Tax and Customs Board): the **number of employed persons with a valid entry in the employment register on the last day of the quarter**, management and supervisory board members excluded. EMTA leaves the figure blank when nobody is counted; such a row says so in `missingReason` and is not charged. Only the latest quarter in the file is used, so last spring's headcount is never shown as current.
- **Not returned**: Estonian self-employed persons (FIE) and Latvian individual merchants (IK), because their name is a person's name.
- A run that names Latvia or Estonia downloads the file (about 15 MB and 66 MB), which adds some seconds. A run whose companies all name another country (by prefix or number) does not.

### Czechia: the statistical register's size category (only when you ask)

Write `CZ:` before a name or an IČO (`CZ: Škoda Auto`, `CZ:00177041`), or pick Czechia in *Countries for names*. Czechia is **never searched by default**, so a list of French or Norwegian names does not pick up Czech namesakes.

- **What the figure is**: the employee size category the Czech Statistical Office keeps in its business register (RES), read through ARES, the Ministry of Finance's public register service. It is a range (`200-249`, `10000+`), not a count, and RES does not say which year it describes, so `employeesAsOf` stays empty and `registryUpdatedAt` gives the date of the RES record.
- **Official none and not stated**: category 110 (no employees) comes back as an official none; category 000 (not stated) or no RES record comes back with the reason and is not charged.
- **Left out**: people in business (natural persons), associations, sports clubs, trade unions, foundations and endowment funds that carry the company's name (`CZ: Škoda Auto` also finds the Škoda Auto endowment fund, a union branch and four sports clubs).
- **Measured on 20 October 2026**: 20 well-known Czech companies by name. All 20 were found, and 17 had a category: Škoda Auto a.s. 10,000+, ČEZ a.s. 5,000-9,999, Kiwi.com s.r.o. 250-499, JetBrains s.r.o. 200-249.

### Slovakia: by IČO only

Write `SK:` before a Slovak IČO (`SK:35763469`). The figure is the organisation size category the Statistical Office of the Slovak Republic assigns, as published in the Register of Financial Statements (RÚZ), for example Slovak Telekom 2,000-2,999, SLOVNAFT 2,000-2,999, Slovenská sporiteľňa 3,000-3,999 (20 October 2026). The RÚZ API has no name search, so a Slovak name is answered with a request for the IČO. Category 01 (0 employees) is an official none; 00 (unknown) comes back with the reason and is not charged.

### Romania: exact average headcount, turnover and profit, by CUI

Write the CUI with `RO:` in front or in its VAT form (`RO14399840`). The figure is the **average number of employees in the financial year** from the company's annual financial statements, read through ANAF's public web service, and the same row carries the **net turnover and net profit or loss in RON**. The latest filed year is used (statements are due by the end of May). Measured on 20 October 2026, financial year 2025: Dante International (eMAG) 2,889 employees, OMV Petrom 6,701, Bitdefender 1,665. ANAF allows one request a second, so Romanian companies take about a second each. ANAF has no name search, so a Romanian name is answered with a request for the CUI.

### Japan: by 法人番号 or by a name written in Japanese

Give the 13-digit corporate number (法人番号), with or without `JP:` in front (`1180301018771`, `JP:1180301018771`), or the company name in Japanese (`トヨタ自動車`, `サイボウズ`). A name in Latin letters goes to Japan only with `JP:` in front. The figure is the **number of employees gBizINFO shows**, the Ministry of Economy, Trade and Industry's open corporate database, and `employeesBasis` names where gBizINFO took it from (most often the Ministry of Health, Labour and Welfare's workplace information site). `employeesAsOf` is the date that source last updated its data. Legal forms do not matter in a name (`株式会社サイボウズ` = `サイボウズ株式会社`), and a name that contains the whole query is a `partial` match, marked `review`.

- **Measured on 22 October 2026**: トヨタ自動車株式会社 83,533 (source updated 2026-07-25), サイボウズ株式会社 1,096 (2026-04-26). A name returned the exact company first and サイボウズ・ラボ株式会社 as a partial match.
- **No figure**: most small corporations have none on gBizINFO; they come back with the reason and are not charged. Closed corporations are left out of name searches unless *Include closed companies* is on.
- **Left out**: the representative's name is never read. Trade unions, health insurance societies, pension funds and employee shareholding associations that carry the company's name are not returned.
- gBizINFO is read one page at a time with a pause, so a Japanese company takes one to a few seconds.

### What it is for

- **Filtering a sales list by size**, including dropping companies that officially employ nobody.
- **Building a population for market research**: every company in a sector or town, with its size.
- **Keeping an audit trail**: every row carries the source, licence, reference year and retrieval date.

### Measured on 18 October 2026

40 well-known companies per country, searched by name:

| | France | Norway |
|---|---|---|
| Employee figure or band returned | 90% | 88% |
| Right legal entity found from the name | 83% | 90% |
| Reference year known, where a figure was returned | 100% | 100% |

40 companies per country picked at random from the registry (active companies only, sole traders excluded):

| | France | Norway |
|---|---|---|
| An answer returned (figure, range or official "none") | 100% | 100% |
| Employee figure or band returned | 23% | 13% |
| No figure because the company officially employs nobody | 77% | 87% |

Most registered companies at random are property holdings, associations and housing co-operatives that employ nobody.

**The UK**, measured the same day:

| | Well-known (40) | Random active (80, two samples) |
|---|---|---|
| Employee figure returned | 5% (2 of 40) | 61% (49 of 80; 21 and 28 of 40) |
| Right company found from the name | 100% | – (looked up by number) |
| Why the rest have no figure | PDF filing 37, no accounts filed 1 | no accounts filed yet 15, older than the bulk data 6, dormant 4, PDF 3, no figure in the accounts 3 |

So the UK works for **small and mid-sized companies**, which mostly file electronic accounts; it rarely works for big groups, which file PDFs. A row without a figure costs nothing. Searches by name are slower than lookups by number, because each name is searched in each chosen country.

**Latvia and Estonia**, measured the same day on the files for 2026 Q3:

| | Latvia | Estonia |
|---|---|---|
| Well-known (40), searched by name: employee figure returned | 98% (39 of 40) | 92% (37 of 40) |
| Well-known: right company found from the name | 95% (37 of 39 found) | 92% (35 of 38 found) |
| Random companies (40, by number): employee figure returned | 100% (20 of them a 0) | 43% (17 of 40; the rest blank in the EMTA file) |

Misses in Latvia: Latvijas Banka (the central bank is not in the file); "Olainfarm" found only a small namesake, OLAINFARM ENERĢIJA, and "Dzintars" found DZINTARS AB SIA (marked `review`, with 13 other candidates). The Latvian list used the current name *Amber Latvijas balzams* (searched as *Latvijas Balzams*, it is not found). Misses in Estonia: Skype Technologies and Glia Technologies were not in the file, and "Enefit Green" found only ENEFIT GREEN SOLAR OÜ. In both countries a listed holding is its own legal entity with a few staff (AKTSIASELTS EKSPRESS GRUPP: 12); raise *Max candidates per name* to see the operating companies.

### Sources and licences (attribution required)

- **France**: INSEE SIRENE and the RNE, read through the government's *API Recherche d'entreprises* (recherche-entreprises.api.gouv.fr). Licence Ouverte 2.0 (Etalab). The Actor stays under the API's limit of 7 requests a second.

- **Norway**: Enhetsregisteret, Brønnøysund Register Centre (data.brreg.no); the employee figure comes from the NAV employer register. Norwegian Licence for Open Government Data (NLOD) 2.0.

- **UK**: Companies House. The latest accounts are found on the public filing history, and the employee number is taken from the bulk accounts data Companies House provides free of charge (download.companieshouse.gov.uk). Only that number, the dates and links come back; the text of the accounts is not copied.

- **Latvia**: State Revenue Service (VID), "taxes paid by taxpayers in the quarter" with the average number of employed persons, on the Latvian Open Data Portal (data.gov.lv). CC0 1.0.

- **Estonia**: Estonian Tax and Customs Board (EMTA), "taxes paid, turnover and number of employees", current and previous year (emta.ee open data). CC BY-SA 3.0.

- **Czechia**: Czech Statistical Office business register (RES), read through ARES, Ministry of Finance of the Czech Republic (ares.gov.cz). ARES states that anyone may use its services within its operating conditions (ares.gov.cz/stranky/podminky-provozu); the Actor asks one company at a time, at most two requests per company, well under ARES's limit of 500 a minute.

- **Romania**: ANAF, the Romanian tax administration: public information from the annual financial statements (webservicesp.anaf.ro/bilant), used within ANAF's rule of at most one request a second.

- **Slovakia**: Statistical Office of the Slovak Republic size category, via the Register of Financial Statements (RÚZ, registeruz.sk). CC0 1.0 (RÚZ Open API).

- **Japan**: gBizINFO, Ministry of Economy, Trade and Industry (info.gbiz.go.jp), from its public corporation pages. Government of Japan Standard Terms of Use 2.0, compatible with CC BY 4.0: name the source, and say that you processed the data when you did. Each row's `attribution` line does both.

**Rows from Estonia must be used under CC BY-SA 3.0**: name EMTA as the source and pass the data on under the same licence. Each Estonian row carries the source and the licence name for this.

The French and Norwegian licences require you to name the source when you reuse the data. Latvia's CC0 does not, but its rows carry the source too. Every row has an `attribution` line you can copy, for example `Source: Enhetsregisteret, Brønnøysund Register Centre (data.brreg.no); employees from the NAV employer register, Norwegian Licence for Open Government Data (NLOD) 2.0, retrieved 2026-10-18`.

### What is never returned

- **People.** France's officer list is dropped, and the UK's directors and the text of its accounts are never read into the output. Sole traders are skipped in France, Norway, Latvia (IK), Estonia (FIE) and Czechia and Slovakia (natural persons in business), because their company name is a person's name. Norwegian phone numbers are not copied. Japan's representative name is never read (a 法人番号 belongs to a corporation, never to a sole trader).
- **Guesses.** A band the registry hides stays empty, with the reason.

### Pricing

Pay per event: **$0.01 per run** plus **$2.00 per 1,000 companies** returned with a figure, a range or an official "no employees". Rows that come back with only a missing reason (a UK PDF filing, a French band hidden at the company's request, a blank Estonian quarter), not-found and error rows are not charged. A company asked twice in one run (by name and by number) is returned and charged once.

### Input example

Latvia and Estonia: `["LV: Air Baltic Corporation", "40003032949", "EE: Bolt Technology", "EE:10234957"]`.

```json
{
  "companies": ["Decathlon", "306138900", "NO:923609016", "Storebrand"],
  "countries": ["FR", "NO"],
  "maxMatchesPerName": 3
}
```

### Output example

```json
{
  "type": "company",
  "query": "923609016",
  "country": "NO",
  "companyId": "923609016",
  "name": "EQUINOR ASA",
  "status": "active",
  "employees": 21231,
  "employeesMin": 21231,
  "employeesMax": 21231,
  "employeeBand": "21231",
  "employeeAnswer": "count",
  "employeesAsOf": "2026-10-10",
  "employeesBasis": "Employees registered with NAV (Aa-registeret), as copied into Enhetsregisteret",
  "missingReason": null,
  "matchReason": "registry number",
  "confidence": "high",
  "legalForm": "Allmennaksjeselskap",
  "industryCode": "06.100",
  "registryUrl": "https://virksomhet.brreg.no/oppslag/enheter/923609016",
  "license": "Norwegian Licence for Open Government Data (NLOD) 2.0",
  "retrievedAt": "2026-10-18T08:00:00.000Z"
}
```

# Actor input Schema

## `companies` (type: `array`):

One per line. Registry numbers are the sure way: a French SIREN (9 digits, or a 14-digit SIRET), a Norwegian organisation number (9 digits; the check digit tells France and Norway apart), a UK company number (8 characters, e.g. 09595646 or SC045551), a Latvian registration number (11 digits) an Estonian registry code (8 digits) or, with CZ: or SK: in front, a Czech or Slovak IČO (8 digits; Slovakia by IČO only), or a Romanian CUI as RO14399840 or RO:14399840 (by CUI only), or a Japanese corporate number (法人番号, 13 digits) or a name written in Japanese. Add FR:, NO:, UK:, LV:, EE:, CZ:, SK:, RO: or JP: in front to force a country. A name returns up to 'Max candidates per name' companies, each with why it matched and a confidence.

## `countries` (type: `array`):

Where names are searched. Leave the default five to search each name in all of them; Czechia is searched only when you pick it here or write CZ: before a name; pick one when you know the country, so the other registries’ namesakes stay out. A UK name search reads each candidate’s accounts, so it is slower; Latvia and Estonia read the tax board’s whole quarterly file once per run (about 15 and 66 MB). Registry numbers ignore this.

## `maxMatchesPerName` (type: `integer`):

How many companies to return for each name and country. A registry counts one legal entity, so a group's holding and its operating company are separate rows: raise this to see them side by side. Registry numbers always return one company.

## `includeClosed` (type: `boolean`):

Off (default): name searches return active companies only. On: closed, deleted and bankrupt companies too (France, Norway and the UK; the Latvian and Estonian tax files list current taxpayers only, so a closed company there is not found). A registry number always returns its company, whatever its status.

## `onlyChanged` (type: `boolean`):

Off (default): every company is returned, with its figure from your previous run beside it (employeesAtLastRun, changedSinceLastRun). On: a company whose figure is the same as when your runs last returned it is left out and not charged, so a scheduled run returns only what moved. A company you have not looked up before is always returned.

## Actor input object example

```json
{
  "companies": [
    "FR: Decathlon",
    "923609016",
    "UK:09595646"
  ],
  "countries": [
    "FR",
    "NO",
    "UK",
    "LV",
    "EE"
  ],
  "maxMatchesPerName": 3,
  "includeClosed": false,
  "onlyChanged": false
}
```

# Actor output Schema

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

Registry number, official employees or employee band, reference year, why a figure is missing, match reason and confidence, source and licence.

# 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 = {
    "companies": [
        "FR: Decathlon",
        "923609016",
        "UK:09595646"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("northbell/company-registry-headcount").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 = { "companies": [
        "FR: Decathlon",
        "923609016",
        "UK:09595646",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("northbell/company-registry-headcount").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 '{
  "companies": [
    "FR: Decathlon",
    "923609016",
    "UK:09595646"
  ]
}' |
apify call northbell/company-registry-headcount --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,northbell/company-registry-headcount"
        }
    }
}
```

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/FLZJP32kc4stQzgFi/builds/8sunljrdrlERnjR5s/openapi.json
