DEV Community

Cee Data
Cee Data

Posted on

Estonian company financials as JSON: revenue, assets and profit without joining official CSV archives

Estonian company financials as JSON: revenue, assets and profit without joining official CSV archives

The Estonian e-Business Register publishes excellent open data, including annual-report key indicators. Using it in an application has one practical drawback: the company identity, annual-report metadata and financial indicators live in separate ZIP/CSV archives. Indicator rows use report_id, not a company registry code, so you need to join the files before getting a simple company-year record.

I packaged that pipeline as an Apify Actor that returns normalized JSON for one or more Estonian companies:

https://apify.com/cee-data/estonia-company-financials-scraper

What the API returns

Each result includes:

  • company code, name, legal form, status and VAT number;
  • report ID, financial year, reporting period and submission date;
  • cash, current and non-current assets and total assets;
  • current and non-current liabilities, equity and share capital;
  • revenue, employee expense, depreciation, operating profit and net profit;
  • retained earnings and average full-time-equivalent employees;
  • calculated net profit margin, equity ratio and current ratio;
  • the official monthly source cut and source URL.

Empty values remain null; they are not converted to zero. The Actor intentionally excludes owners, directors, beneficial owners and personal contacts.

Call it with curl

Create a token in Apify Console → API & Integrations, then run:

curl -X POST \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "companyCodes": ["10234957"],
    "historyYears": 3,
    "maxItems": 3
  }' \
  "https://api.apify.com/v2/acts/cee-data~estonia-company-financials-scraper/run-sync-get-dataset-items"
Enter fullscreen mode Exit fullscreen mode

The response is an array with one item per company-year, newest first. Here is a shortened real result for Telia Eesti AS:

{
  "companyCode": "10234957",
  "companyName": "Telia Eesti AS",
  "reportYear": 2025,
  "periodStart": "2025-01-01",
  "periodEnd": "2025-12-31",
  "revenue": 363164000,
  "assets": 372013000,
  "equity": 151234000,
  "currentLiabilities": 162062000,
  "operatingProfit": 86806000,
  "netProfit": 69590000,
  "netProfitMargin": 0.191621,
  "equityRatio": 0.406529,
  "currentRatio": 0.501265,
  "sourceCut": "2026-09-30"
}
Enter fullscreen mode Exit fullscreen mode

Use it in n8n

Import the free estonia-company-financials-lookup.json workflow. The flow is:

  1. enter an 8-digit Estonian registry code;
  2. call the Actor with run-sync-get-dataset-items;
  3. receive normalized financial fields ready for Sheets, Airtable or a database.

The exported workflow contains no credentials. Use n8n Header Auth credentials for your Apify token.

Source freshness and pricing

The Actor uses official e-Business Register open data under CC BY 4.0. Basic company data is updated daily; annual-report files are updated monthly. Every result includes the source cut so you do not mistake it for real-time financial data.

Cold runs download only the archives required for the requested years and stream the CSV rows. Both source archives and normalized company results are cached for 168 hours by default. A cold lookup can take several minutes; the default cached example completes much faster.

The price is $0.025 per company-year with financial data. Unknown companies and metadata-only rows are not charged. There is no start fee.

Possible uses include supplier due diligence, credit analysis, financial monitoring and feeding structured company data into an AI agent. If you build an integration, I would be interested to hear which additional fields or output format would make it more useful.

Top comments (0)