Estonia Company Registry: Revenue and Activity Search avatar

Estonia Company Registry: Revenue and Activity Search

Pricing

from $1.60 / 1,000 companies

Go to Apify Store
Estonia Company Registry: Revenue and Activity Search

Estonia Company Registry: Revenue and Activity Search

Search Estonian register records by name, location or activity and review latest available annual-report revenue.

Pricing

from $1.60 / 1,000 companies

Rating

0.0

(0)

Developer

MRSLM Data

MRSLM Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Security

Limited permissions

Share

Estonia Company Registry Scraper: Revenue & NACE

Get a clean, filterable list of Estonian companies straight from the official e-Business Register (Äriregister), and see in the same row how big each company really is: the revenue from its latest annual report, its size class (micro, small, medium, large), whether the report was audited, and its main activity code (EMTAK, the Estonian version of NACE). Search by company name, registry code, city, county, legal form, VAT status, registration date, revenue or industry code, then download the result as JSON, CSV, Excel or through the API.

The data comes from the open data service of the Centre of Registers and Information Systems (RIK), the state agency that runs the Estonian business register. RIK publishes the register and the annual-report summaries as daily open data files under the CC BY 4.0 licence. This Actor downloads those files on every run, so you always get the register as it was published this morning, with no login, no API key, no captcha and no scraping of company pages.

Full guide: How to Get a List of Estonian Companies with Revenue and NACE Codes from the e-Business Register (Real Run: IT Companies in Tartu)

What the Estonia Company Registry Scraper does

On every run the Actor downloads RIK's public open data files from avaandmed.ariregister.rik.ee:

  1. Basic company data (ettevõtja rekvisiidid, lihtandmed), refreshed daily: name, registry code, legal form, VAT number, status, first registration date and address.
  2. General annual report data (aruannete üldandmed): for each report, the year, reporting period, filing date, whether it is consolidated, whether it was audited and the size class.
  3. Sales revenue by EMTAK code (EMTAK müügitulu): the revenue in each report split by activity code.

It filters the register by your criteria, picks each matching company's latest annual report (the newest year; within a year, the company's own report before a consolidated one), and joins the revenue and activity codes. One row per company.

Rows include the 8-digit registry code, name, legal form in Estonian and English, VAT number, status in Estonian and English, first registration date, full address, postal code, city, county and location name, the EHAK administrative code, the address ID, a link to the company page on ariregister.rik.ee, and the licence credit. With financials on, each row also has the latest report year, period and filing date, the consolidated and audited flags, size class, revenue in euros, main activity code (EMTAK), its NACE class, the classification version and up to 10 activity codes.

What it does not include: sole proprietors (FIE), who are private persons and are always excluded; board members, shareholders and beneficial owners, which the Actor does not read; e-mail addresses and phone numbers, which are not in the open data; and deleted companies, which are not in the source file.

Who it is for

  • B2B sales and marketing teams that sell into Estonia and want a target list by region, sector and size, not just a list of names.
  • Investors, M&A advisers and analysts who screen companies by revenue and industry.
  • Recruiters who look for the largest employers of a skill in a city, for example software companies in Tartu.
  • Researchers and public bodies who study regional economies with official data.
  • Data teams who enrich a CRM with registry codes, VAT numbers and NACE codes.

Real example: IT companies in Tartu with revenue over €1 million

Tartu is Estonia's second city and home to its oldest university and a strong software sector. The goal: list the 25 largest IT companies in Tartu by revenue.

Step 1: Enter the input

Open the Estonia Company Registry Scraper in Apify Console, switch the input form to JSON and paste the exact input used:

{
"locations": [
"Tartu"
],
"activityCodes": [
"62"
],
"minRevenueEur": 1000000,
"includeFinancials": true,
"sortBy": "revenue",
"maxResults": 25
}

What each setting does:

  • locations: text that must appear in the registered address or its administrative unit. Matching ignores case and accents. Tartu matches Tartu city, Tartu county and Tartu parish, and, as you will see, any street named after Tartu.
  • activityCodes: EMTAK / NACE code prefixes without dots. 62 is computer programming, consultancy and related activities; 6210 would be programming only. A company matches when any activity in its latest annual report starts with the prefix.
  • minRevenueEur: 1000000 keeps companies with at least €1 million revenue in their latest report. Companies without a report are dropped when this is set.
  • includeFinancials: true (the default) joins the latest annual report. It is turned on automatically when you filter or sort by revenue or activity.
  • sortBy: revenue sorts by revenue, largest first. The other options are newest (the default, by registration date), oldest and name. Sorting is applied before the limits, so maxResults keeps the top of the sorted list.
  • maxResults: 25 saves at most 25 companies, which also caps the cost.

The other inputs:

  • searchTerms: words the company name must contain, for example software, logistika or Bolt. Case and accents are ignored.
  • regCodes: exact 8-digit registry codes. These are always returned, whatever the other filters say.
  • legalForms: limit to forms by code, such as OU (private limited company, OÜ) or AS (public limited company). By default all commercial forms are included.
  • includeNonProfits: also include non-profit associations, foundations, apartment associations and public bodies when no legal form is picked.
  • activeOnly: true (the default) skips companies in liquidation or bankruptcy.
  • registeredWithinDays: only companies first entered in the register in the last N days, for a new-company list.
  • vatRegisteredOnly: only companies with an Estonian VAT number (KMKR).
  • maxResultsPerSearch: a cap per name search term.

Step 2: Run it

Press Start. The run finished with status SUCCEEDED and saved 25 companies, charged as 25 company events plus the start event: $0.0501 on the Free/Bronze tier. It took about 114 seconds, most of it downloading the register file and the two annual report files (the report files alone are about 33 MB of ZIPs), including one download that RIK refused at first and that succeeded on retry. Download time does not affect the price.

Step 3: Read the output

All 25 rows, cut to the most useful columns:

namecityrevenueEursizeCategoryauditedlatestReportYearmainActivityCoderegisteredDate
osaühing Playtech EstoniaTartu linn€54,477,200Largetrue2025621012001-02-15
Rush Street Interactive Development EstoTartu linn€19,238,544Mediumtrue2025621012021-02-22
Burfa Tech OÜTallinn€15,992,889Mediumtrue2021620912013-06-13
SaleMove OÜTartu linn€14,579,810Mediumtrue2025621012016-01-14
Concise Systems OÜElva vald€14,457,676Mediumtrue2025621012008-03-12
Merit Tarkvara ASTartu linn€11,833,097Mediumtrue2025621011997-08-26
Estneti OsaühingTallinn€10,767,771Smalltrue2025621012002-04-02
Askend Estonia OÜTallinn€10,003,100Smalltrue2025621012016-10-13
SoftwareOne Estonia OÜTallinn€9,185,628Smalltrue2025622022023-07-19
Finnair Business Services OÜTartu linn€8,418,290Smalltrue2025692022001-08-06
FINEST ASTallinn€8,289,316Smalltrue2025621012000-12-11
Turnit OÜTartu linn€8,150,754Mediumtrue2025621012015-05-18
HANZA SSC Tartu OÜTartu vald€7,582,000Smalltrue2025622022014-12-30
Evocon OÜTartu linn€6,868,355Smalltrue2025621012016-01-13
Titanium Systems OÜTartu linn€6,850,970Smalltrue2025621012003-06-19
Raintree Systems OÜTartu linn€6,485,930Smalltrue2025621012021-11-15
Astro Baltics osaühingTartu linn€5,859,923Smalltrue2024622011998-03-11
osaühing VideoBTartu linn€5,735,597Smalltrue2025621012004-10-08
Apteekide Infotehnoloogia OÜTartu linn€5,120,562Smalltrue2025631022000-07-19
CryptoCompany OÜTartu linn€4,925,903Smallfalse2024629012018-03-14
AS LHV PaytechTallinn€4,603,401Smalltrue2025649912012-05-08
OÜ Plausible InsightsTartu linn€4,332,427Smallfalse2025621012019-04-22
Rulta OÜTallinn€4,317,793Smallfalse2025622012019-01-11
BURFA MEDIA OÜTallinn€4,191,661Mediumtrue2021620912013-06-27
AS Reach-UTartu linn€4,140,865Smalltrue2025621011997-11-03

One full row as JSON:

{
"regCode": "10736593",
"name": "osaühing Playtech Estonia",
"legalFormCode": "OU",
"legalForm": "Osaühing",
"legalFormEn": "Private limited company (OÜ)",
"legalFormSubtype": null,
"vatNumber": "EE100677825",
"status": "Registrisse kantud",
"statusEn": "Registered",
"registeredDate": "2001-02-15",
"address": "Tartu maakond, Tartu linn, Tartu linn, Ülikooli tn 1a",
"postalCode": "51001",
"city": "Tartu linn",
"county": "Tartu maakond",
"locationName": "Tartu linn, Tartu linn, Tartu maakond",
"ehakCode": "8151",
"adsAddressId": "3824813",
"registryUrl": "https://ariregister.rik.ee/est/company/10736593",
"openDataLicence": "CC BY 4.0, Estonian e-Business Register (RIK)",
"latestReportYear": 2025,
"reportPeriodStart": "2025-01-01",
"reportPeriodEnd": "2025-12-31",
"reportFiledDate": "2026-06-30",
"consolidated": false,
"audited": true,
"sizeCategory": "Large",
"revenueEur": 54477200,
"mainActivityCode": "62101",
"mainActivityNace": "62.10",
"activityClassification": "EMTAK 2025",
"activityCodes": [
"62101"
]
}

What the 25 real rows show:

  • Playtech Estonia leads by far, with €54.5 million revenue in 2025 and the only Large size class in the list. Rush Street Interactive Development Estonia (€19.2 million), SaleMove (€14.6 million), Concise Systems in Elva (€14.5 million) and Merit Tarkvara (€11.8 million) follow. Several of the largest are development centres of foreign groups, which is a useful signal for recruiters.
  • The 25 companies reported €256.4 million revenue in total.
  • "Tartu" also matched a street. 8 of the 25 rows are in Tallinn, not Tartu: their address is on Tartu mnt (Tartu road), a main street in central Tallinn. Burfa Tech (Tartu mnt 83), Estneti, Askend, FINEST and AS LHV Paytech are examples. 15 rows are in Tartu city itself (city = Tartu linn), and the others are elsewhere in Tartu county (Elva vald, Tartu vald). To get only the city, use locations: ["Tartu linn"], or filter on city or county afterwards.
  • Reports can be old. Most rows are from the 2025 annual report, filed in 2026. But Burfa Tech's and Burfa Media's latest reports are from 2021, and Astro Baltics' and CryptoCompany's from 2024. Always check latestReportYear before you compare revenues.
  • Not all are audited. CryptoCompany, Plausible Insights and Rulta have audited: false; smaller companies are not always required to have an audit.
  • Some reports are consolidated. Rush Street Interactive Development Estonia and Titanium Systems have consolidated: true: their latest report is a group report, so the revenue may include subsidiaries.
  • Activity matching uses all codes. Finnair Business Services' main activity is 69202 (accounting), but its report also lists 62202 (IT consultancy), so it matched 62. AS LHV Paytech's main code is 64991 (financial services), with 62201 as a second activity. Look at mainActivityCode when you need the main business only.
  • Revenue is the sum across activities. revenueEur adds up the revenue the report splits by activity code. For Merit Tarkvara that covers four codes, including software (62101) and wholesale (46501).
  • Long-established companies. Merit Tarkvara and AS Reach-U were registered in 1997 and Playtech Estonia in 2001, while Raintree Systems (2021) is among the youngest.

Output fields

FieldWhat it meansExample from this run
regCode8-digit registry code (registrikood).10736593
nameCompany name as registered.osaühing Playtech Estonia
legalFormCode / legalForm / legalFormEnLegal form code and its Estonian and English name.OU / Osaühing / Private limited company (OÜ)
legalFormSubtypeSubtype, when the register has one.null
vatNumberEstonian VAT number (KMKR), when registered.EE100677825
status / statusEnRegister status in Estonian and English.Registrisse kantud / Registered
registeredDateFirst entry in the register.2001-02-15
address / postalCodeFull registered address and postal code.Tartu maakond, Tartu linn, Tartu linn, Ülikooli tn 1a / 51001
city / county / locationNameMunicipality, county and full administrative unit.Tartu linn / Tartu maakond
ehakCode / adsAddressIdEstonian administrative unit code and address ID.8151 / 3824813
registryUrlCompany page on ariregister.rik.ee.https://ariregister.rik.ee/est/company/10736593
openDataLicenceCredit line for the CC BY 4.0 licence.CC BY 4.0, Estonian e-Business Register (RIK)
latestReportYearYear of the latest annual report.2025
reportPeriodStart / reportPeriodEnd / reportFiledDateReport period and filing date.2025-01-01 / 2025-12-31 / 2026-06-30
consolidated / auditedGroup report flag and audit flag.false / true
sizeCategoryMicro, Small, Medium or Large, as stated in the report.Large
revenueEurSum of revenue by activity in the report, in euros.54477200
mainActivityCode / mainActivityNaceMain EMTAK code and its NACE class.62101 / 62.10
activityClassificationEMTAK version used in the report.EMTAK 2025
activityCodesUp to 10 activity codes in the report, main first.["62101"]
scrapedAtWhen the row was built.2026-10-30T23:17:02.601Z

Export Estonian companies to CSV, Excel or Google Sheets

Every run saves its rows to a dataset, and a dataset can be downloaded in any common format without code.

From Apify Console. Open the run, go to the Output tab and click Export. Pick CSV, Excel (XLSX), JSON, XML, HTML or RSS, and tick only the columns you want. Nested values such as lists and objects are flattened into columns like name/0 or object/field in CSV and Excel.

From a URL. The same export is a plain HTTPS link. Replace <DATASET_ID> with the dataset ID shown on the run's Storage tab:

# CSV with just the columns you need
curl -H "Authorization: Bearer $APIFY_TOKEN" \
"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=1&fields=regCode,name,legalFormEn,vatNumber,city,county,registeredDate,latestReportYear,sizeCategory,audited,revenueEur,mainActivityCode,registryUrl" -o estonia-companies.csv
# Excel
curl -H "Authorization: Bearer $APIFY_TOKEN" \
"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=xlsx&clean=1" -o estonia-companies.xlsx

Into Google Sheets. Three options, from simplest to most automatic:

  1. One-off: download the CSV and use File > Import > Upload in Google Sheets. Choose "Replace current sheet" to refresh an existing tab.
  2. Automatic, no code: use Make, Zapier or n8n as described in the next section, ending in a Google Sheets "Add row" step.
  3. Formula: =IMPORTDATA("https://api.apify.com/v2/actor-tasks/<USERNAME>~<TASK_NAME>/runs/last/dataset/items?status=SUCCEEDED&format=csv&token=<YOUR_TOKEN>") always pulls the latest successful run of a saved task. The token sits in the formula, so anyone who can open the sheet can see it. Only use this in a private sheet.

Use it from Make, Zapier or n8n

All three automation tools have an official Apify app, so you can run this Actor and pass its rows on without writing code.

  1. Trigger. Use a schedule in the automation tool, or Apify's "Watch Actor runs" / "Watch task runs" trigger if you already schedule the task in Apify.
  2. Run. Add the Apify "Run Actor" (or "Run task") action, choose mrslm_data/estonia-company-registry and paste the JSON input from Step 1. Turn on "wait for finish" so the next step gets the data.
  3. Get the rows. Add "Get dataset items" and map the run's default dataset ID from the previous step.
  4. Send them on. Add a Google Sheets "Add row" step for a target list, a HubSpot or Pipedrive step that creates a company with its registry code, VAT number and revenue, or a Slack message for each new company in your sector.

Each module only moves data; the Actor's pricing is the same as when you run it in Console.

Schedule a weekly new-company list

New Estonian companies are registered every day. A weekly run with registeredWithinDays: 7 and your locations or name words returns the companies first registered in that week. New companies have no annual report yet, so leave minRevenueEur and activityCodes empty for this list.

  1. In the Actor's input form, set up the input from Step 1 and click Save as new task. Give it a clear name such as estonia-new-companies-weekly.
  2. Go to Schedules > Create new, set the cron expression to 0 8 * * 1 and pick your timezone, so it runs at 8 AM every Monday.
  3. Add the task to the schedule and save. Each run gets its own fresh dataset.
  4. Optional: on the task's Integrations tab, add a webhook, Slack or email notification for "Run succeeded", or connect Make, Zapier or n8n, so the new rows go where you need them.

To fetch the newest results without looking up a run ID, use the task's last-run link: https://api.apify.com/v2/actor-tasks/<USERNAME>~estonia-new-companies-weekly/runs/last/dataset/items?status=SUCCEEDED&format=json.

Call it from the API (Python, JavaScript or curl)

Start the Actor from your own code with the official Apify clients. Put your API token (Console > Settings > API & Integrations) in an environment variable called APIFY_TOKEN rather than in the code.

Python (pip install "apify-client>=3"):

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {
"locations": [
"Tartu"
],
"activityCodes": [
"62"
],
"minRevenueEur": 1000000,
"includeFinancials": true,
"sortBy": "revenue",
"maxResults": 25
}
run = client.actor("mrslm_data/estonia-company-registry").call(run_input=run_input)
# apify-client 3.x returns a Run object, so use run.default_dataset_id
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["regCode"], item["name"], item["city"], item["revenueEur"])

In apify-client 3.x, call() returns a typed object. Older examples that use run["defaultDatasetId"] were written for 1.x and 2.x and fail in 3.x with TypeError: 'Run' object is not subscriptable.

JavaScript / Node.js (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
"locations": [
"Tartu"
],
"activityCodes": [
"62"
],
"minRevenueEur": 1000000,
"includeFinancials": true,
"sortBy": "revenue",
"maxResults": 25
};
const run = await client.actor('mrslm_data/estonia-company-registry').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0].name);

curl, one request that runs the Actor and returns the rows as CSV (it waits up to 5 minutes, so keep the input small):

curl -X POST "https://api.apify.com/v2/acts/mrslm_data~estonia-company-registry/run-sync-get-dataset-items?format=csv" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"locations": ["Tartu"], "activityCodes": ["62"], "minRevenueEur": 1000000, "includeFinancials": true, "sortBy": "revenue", "maxResults": 25}' -o estonia-companies.csv

Use it from AI agents and chat assistants (MCP)

Apify runs a hosted Model Context Protocol (MCP) server, so assistants such as Claude Desktop, Cursor, VS Code or any other MCP client can call this Actor as a tool. Add this server URL to your MCP client and sign in with your Apify account (or send your API token as a Bearer header):

https://mcp.apify.com/?tools=mrslm_data/estonia-company-registry

The assistant then sees the Actor's input fields, can start a run with the input it builds from your request, and reads the dataset rows back. A prompt like this works well:

Using the Estonian business register, list the 20 largest construction companies (activity code 41) in Pärnu by revenue, with their registry codes and report year.

Runs started through MCP are billed exactly like any other run, per row saved, so it is worth asking the assistant to set maxResults.

What it costs

The Actor uses pay-per-event pricing: one company event per company saved, so charged events always equal the rows in your dataset. Downloading and filtering the register costs nothing extra.

Price per event

Event (per 1,000)Free / BronzeSilverGold / Platinum / Diamond
Company saved (company)$2.00$1.80$1.60
Actor start (once per run at the default memory, not per 1,000)$0.00005$0.00005$0.00005

You are charged only for the events in this table: nothing for compute, and nothing for searches that return no rows beyond the start fee.

ScenarioFree / BronzeSilverGold
The run in this guide (25 companies)$0.0501$0.0451$0.0401
Weekly new-company list, ~150 companies (4 runs a month)$1.20$1.08$0.96
All IT companies (code 62) in Estonia with any revenue, ~3,000 companies$6.00$5.40$4.80

The last two rows are estimates; the real counts depend on your filters. Downloading every commercial company in the register would be several hundred thousand rows, so filter by place, sector, revenue or name first. To cap spending, set Maximum cost per run in the run options (or maxTotalChargeUsd in the API), or use maxResults.

Tips

  • Use "Tartu linn", "Tallinn" or a county name ("Harju maakond", "Ida-Viru maakond") to be precise. A bare town name can match street names, as "Tartu mnt" did here.
  • Use short activity prefixes for a sector (62, 41, 5610) and check mainActivityCode if you need the main business only.
  • Combine revenue and sorting. sortBy: "revenue" with maxResults gives you the top N in a sector or region.
  • Look up known companies with regCodes. They are always returned, even when other filters would drop them.
  • Name search ignores case and accents, so sõidu and soidu both work, and bolt also finds "Boltrex".
  • Read the run summary. The RUN_SUMMARY record in the run's key-value store shows how many register rows were read, how many matched before the revenue and activity filters, and how many had an annual report. If a run returns nothing, it shows which filter was too narrow.

Limits

  • Revenue, size, audit and activity come from the latest annual report on file. New companies have none yet, and some companies file late, so their figures can be years old.
  • Revenue is the total of sales by activity in the report. For holding companies it can be small even when the group is large.
  • If RIK's annual report files cannot be downloaded in a run, the Actor logs a warning and returns register data only, without revenue or activity filters.
  • No people data: no board members, shareholders, beneficial owners, e-mails or phone numbers.
  • Deleted companies and sole proprietors (FIE) are not included.

FAQ

Where does the data come from? From the open data files of the Estonian e-Business Register, published by RIK under CC BY 4.0. The Actor downloads them on every run.

Is this the official register? The data is official; the Actor is an independent tool and is not affiliated with RIK.

How fresh is it? The company file is refreshed daily by RIK. The annual report files are cumulative quarterly snapshots; this run used the snapshot up to 30 September 2026.

What is EMTAK? The Estonian version of the EU's NACE classification of economic activities. The first four digits match NACE, so 62101 is NACE class 62.10.

Can I get e-mails or phone numbers? No. They are not in the open data, and the Actor does not scrape them.

Can I list new companies only? Yes. Set registeredWithinDays, for example 7 for the last week.

Why are some rows outside my city? Location matching looks for your text anywhere in the address and administrative unit, so a street named after a town also matches. Use a more precise name, such as "Tartu linn".

Does it work with Make, Zapier or n8n? Yes. All three have an Apify app. Use "Run Actor" (or run a saved task), then "Get dataset items" to pass the rows on.

Can AI agents use it? Yes, through Apify's MCP server at https://mcp.apify.com/?tools=mrslm_data/estonia-company-registry, as shown above.

Data source, freshness and licence

  • Source: RIK e-Business Register open data, avaandmed.ariregister.rik.ee. Files used: basic company data (ettevõtja rekvisiidid), general annual-report data (aruannete üldandmed) and sales revenue by EMTAK code.
  • Freshness: the basic data file is refreshed daily by RIK. The annual-report files are published as cumulative snapshots; the Actor always picks the newest one listed on the open data page.
  • Licence: CC BY 4.0. If you republish the data, credit "Estonian e-Business Register (RIK)". The openDataLicence field carries that credit in every row.
  • Robots and access: only the public download files are fetched, which the site's robots.txt allows. No company pages are crawled and no login is used.

Privacy

This Actor returns business data only. Sole proprietors (FIE, füüsilisest isikust ettevõtja) are a business form of a private person, so they are always excluded, even if you ask for them by registry code. The Actor does not read the files on board members, shareholders or beneficial owners, and it outputs no names of people, personal ID codes, e-mails or phone numbers. Some company names contain a founder's name; that is how the company chose to register itself.

If you use the results for marketing, you are responsible for following the GDPR and the Estonian rules on direct marketing to businesses.

The data is official open data published by the Estonian Centre of Registers and Information Systems under CC BY 4.0. This Actor only downloads files that the publisher offers for download. You are responsible for how you use the data, including compliance with the licence, the GDPR and marketing laws.