# Slovak Company Financials – RÚZ Statements API (`matikitli/sk-company-financials`) Actor

Slovak company financials from the official RÚZ register: revenue, profit, assets, equity, debt and cash by IČO or VAT number, with ratios, 5-year history, full labelled statements and a monitor for new filings. $0.01 per company-year.

- **URL**: https://apify.com/matikitli/sk-company-financials.md
- **Developed by:** [Mateusz Kitlinski](https://apify.com/matikitli) (community)
- **Categories:** Business, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 company-year statements

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

### What does Slovakia Company Financials do?

**Slovakia Company Financials** turns Slovak company identifiers (**IČO** or **VAT number**) into clean, English-keyed **financial statements** from the official **Register účtovných závierok (RÚZ)** of the Slovak Ministry of Finance.

For every company you get one row per year with:

- **Identity**: name, legal form, activity code (SK NACE), employee size band, region, address, founding date.
- **Nine key figures** in EUR: revenue (net turnover), operating revenue, operating profit, profit before tax, net profit, total assets, equity, liabilities and cash. Every figure states the statement line it comes from.
- **Ratios**: equity ratio, debt ratio, net margin, and year-on-year change of revenue and net profit.
- Optionally the **full balance sheet and income statement**, line by line, with official line numbers and Slovak/English labels.

Choose the **latest year** or up to **5 years of history**. Corrected filings are handled for you: only the latest version of each year is used. Large companies that publish only PDF statements (e.g. IFRS filers) come back with filing dates and links to the official documents. A **monitor mode** returns only companies that filed something new since your last run, and a **search** finds companies by activity, region, legal form and size.

Official source only, company-level data only: individual entrepreneurs (natural persons) are never processed.

### Who is it for?

- **KYB, credit-risk and compliance teams** screening Slovak suppliers, customers and counterparties.
- **B2B sales and M\&A analysts** in Central and Eastern Europe who need revenue, profitability and growth at a glance.
- **Portfolio monitoring**: schedule it weekly and get only companies with new or corrected statements.
- **AI agents** (via the Apify MCP server): "get the last 3 years of revenue and profit for IČO 46258132".

### How to use it

1. Paste **IČO** numbers or Slovak **VAT numbers** (SK + 10 digits), one per line. Spaces and missing leading zeros are fine.
2. Choose **Years of history** (1–5) and, if you need every line, switch on **Full statements**.
3. Run it. Use the **Overview** or **History and growth** table, or download JSON, CSV or Excel.
4. To find companies instead, leave the identifiers empty and use the **Search** filters (SK NACE prefix, region, legal form, size band).

### Input

```json
{
  "identifiers": ["35735538", "46258132", "SK2020269317"],
  "historyYears": 3,
  "includeTables": false,
  "monitor": false
}
```

| Field | Default | Description |
|---|---|---|
| `identifiers` | — | IČO or VAT number, up to 10,000 |
| `historyYears` | 1 | 1 = latest annual statement, up to 5 |
| `includeTables` | `false` | Full balance sheet and income statement |
| `includeConsolidated` | `false` | Also consolidated (group) statements |
| `naceCodes`, `regions`, `legalForms`, `sizeBands` | — | Search mode filters (when no identifiers are given) |
| `maxItems` | 100 | Search mode: maximum companies |
| `monitor` / `resetMonitor` | `false` | Only companies with new or corrected filings since the last run |

### Output

One record per company-year (real data, shortened):

```json
{
  "status": "ok",
  "company": {
    "ico": "35735538",
    "dic": "2020269317",
    "name": "CODES BRAND HOUSE, s.r.o.",
    "legalFormLabel": "Limited liability comp.",
    "legalFormCategory": "LLC",
    "naceCode": "73110",
    "naceLabel": "Advertising agencies",
    "sizeBand": { "code": "05", "label": "5-9 employees" },
    "region": { "code": "SK010", "label": "Region of Bratislava" }
  },
  "statement": {
    "type": "annual",
    "periodFrom": "2025-07",
    "periodTo": "2026-06",
    "filedAt": "2026-09-19",
    "templateName": "POD",
    "currency": "EUR"
  },
  "kpis": {
    "revenue": { "value": 1192069, "source": { "table": "incomeStatement", "lines": [1] } },
    "operatingProfit": { "value": 139714, "source": { "table": "incomeStatement", "lines": [27] } },
    "netProfit": { "value": 94860, "source": { "table": "incomeStatement", "lines": [61] } },
    "totalAssets": { "value": 908575, "source": { "table": "assets", "lines": [1] } },
    "equity": { "value": 781295, "source": { "table": "liabilities", "lines": [80] } },
    "liabilities": { "value": 127280, "source": { "table": "liabilities", "lines": [101] } },
    "cash": { "value": 132190, "source": { "table": "assets", "lines": [71] } }
  },
  "ratios": { "equityRatioPct": 86.0, "debtRatioPct": 14.0, "netMarginPct": 8.0, "revenueChangePct": 10.3, "netProfitChangePct": 3.4 },
  "historyIndex": 0,
  "sources": {
    "registerUnitUrl": "https://www.registeruz.sk/cruz-public/domain/accountingentity/show/395589",
    "statementUrl": "https://www.registeruz.sk/cruz-public/domain/financialreport/show/10429781"
  }
}
```

Other statuses (all free): `document_only` (PDF statements only, with `documents` links), `invalid_input`, `not_found`, `deleted`, `not_public`, `out_of_scope` (natural person), `no_statements`, `source_unavailable`. Each run also writes an `OUTPUT` summary to the key-value store.

### Pricing

Pay per event: you pay only for statements delivered.

| Event | Price | When |
|---|---|---|
| Company-year | **$0.01** | the latest statement of each company |
| History year | **$0.0025** | each older year (5-year history = $0.01 + 4 × $0.0025 = **$0.02** per company) |
| Filing info | **$0.002** | a year published only as PDF documents (filing dates + official links) |

Never charged: problem rows, natural persons, duplicates of a company already in the same run, and companies skipped by monitor mode.

**Worked example:** 100 companies with 5 years of history = 100 × $0.02 = **$2.00**. Set *Maximum cost per run* to cap a run; it stops cleanly and the summary says so.

### Data sources and legal

- **Register účtovných závierok (RÚZ)**, Ministry of Finance of the Slovak Republic: official open API, all data released under **CC0**.
- Company-level data only. Accounting units of natural persons (individual entrepreneurs, legal forms 001, 100–110, 422) are returned as a free `out_of_scope` row with the IČO and legal form only; their names, addresses and figures are never processed.

### Limits

- Key figures are mapped for the standard (Úč POD) and microentity (Úč MUJ) statements used since 2014. Older statements (2009–2013) and other templates come back with their tables and `kpiStatus: "partial"`.
- IFRS filers and some large companies publish PDFs only (`document_only`).
- Amounts in whole EUR; pre-2009 (SKK) periods are not covered.
- Search covers companies that filed a statement in the last 12 months (the register itself cannot be searched by activity or region); look up others by IČO.

### FAQ

#### Why is revenue empty for some companies?

Holding and non-trading companies report no net turnover. Microentities report revenue as sales of goods plus own products and services (lines 02 + 03), which this actor adds up for you.

#### How are corrected statements handled?

If a company re-files a year, only the latest filing for that period is used. Monitor mode marks such companies with `reason: "corrected"`.

#### Can I use it from my code, Zapier, Make or an AI agent?

Yes: through the Apify API, any Apify integration, or the Apify MCP server.

#### I found a problem or need another field.

Open an issue on the actor page. Feature requests from paying users go first.

### Slovensky — stručne

Účtovné závierky slovenských firiem z Registra účtovných závierok (RÚZ): tržby, zisk, aktíva, vlastné imanie, záväzky a peniaze podľa IČO alebo DIČ, s ukazovateľmi, 5-ročnou históriou a celými výkazmi. Fyzické osoby sa nespracúvajú.

### Other actors from this developer

- [Polish Company Dossier](https://apify.com/matikitli/pl-company-dossier): KRS, VAT white list and risk signals for Polish companies.
- [Polish Public Tenders](https://apify.com/matikitli/pl-public-tenders): BZP + EU TED tenders and contract winners.

# Changelog

This Actor's version history is a separate document: https://apify.com/matikitli/sk-company-financials/changelog.md

# Actor input Schema

## `identifiers` (type: `array`):

Slovak IČO (8 digits; spaces and dropped leading zeros are fine) or VAT number (SK + 10 digits). One per line, up to 10,000. Example: 35735538, SK2020269317. Leave empty to search by the filters below.

## `historyYears` (type: `integer`):

1 = latest annual statement only. Up to 5 = the latest five annual statements, newest first, with year-on-year changes. Example: 5.

## `includeTables` (type: `boolean`):

Add the full balance sheet (assets, equity and liabilities) and income statement with official line numbers and Slovak/English labels.

## `includeConsolidated` (type: `boolean`):

Also return consolidated (group) statements as separate rows.

## `naceCodes` (type: `array`):

Find companies by activity: SK NACE prefixes (1–5 digits). Example: 62 (IT services), 4711 (supermarkets). Search covers companies that filed in the last 12 months.

## `regions` (type: `array`):

Find companies registered in these regions. Example: SK010 (Bratislava).

## `legalForms` (type: `array`):

Register legal-form codes. Common: 112 s.r.o. (LLC), 121 a.s. (joint-stock), 111 v.o.s., 113 k.s., 205 družstvo (cooperative), 421 foreign legal person. Natural persons (individual entrepreneurs) are not covered.

## `sizeBands` (type: `array`):

Register employee bands. Example: 12 (50–99 employees).

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

Search mode: stop after this many companies (1–10,000). Example: 100.

## `monitor` (type: `boolean`):

Return only companies with a new or corrected statement since the previous run with the same input. Schedule weekly for a portfolio.

## `resetMonitor` (type: `boolean`):

Forget what monitor mode delivered for this input and start again.

## Actor input object example

```json
{
  "identifiers": [
    "35735538",
    "46258132",
    "48033430"
  ],
  "historyYears": 1,
  "includeTables": false,
  "includeConsolidated": false,
  "maxItems": 100,
  "monitor": false,
  "resetMonitor": false
}
```

# Actor output Schema

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

Dataset items (one per company-year, or one problem row per input).

## `history` (type: `string`):

Year-by-year key figures with year-on-year changes.

## `summary` (type: `string`):

Counts by status, register status, search index date, charged events.

# 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 = {
    "identifiers": [
        "35735538",
        "46258132",
        "48033430"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("matikitli/sk-company-financials").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 = { "identifiers": [
        "35735538",
        "46258132",
        "48033430",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("matikitli/sk-company-financials").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 '{
  "identifiers": [
    "35735538",
    "46258132",
    "48033430"
  ]
}' |
apify call matikitli/sk-company-financials --silent --output-dataset

```

## MCP server setup

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

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/hzdMAqQ7tTX3PH5eL/builds/S7HpX9xRpXLf1i9IC/openapi.json
