# ORSR Scraper - Slovakia Business Register Company Data (`studio-amba/orsr-scraper`) Actor

Extract official company data from Slovakia's Obchodny register SR (orsr.sk). Get company name, ICO, legal form, registered address, registration date, statutory body officers, share capital, and dissolution/liquidation status. Search by company name or ICO. No login required.

- **URL**: https://apify.com/studio-amba/orsr-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 result scrapeds

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## ORSR Scraper

Extract official company data from Slovakia's Obchodný register SR (orsr.sk), the Slovak Ministry of Justice business register. Returns the company's legal identity (name, IČO, legal form, registered seat), registration date, statutory body officers, supervisory board, procuration holders, share capital, shareholders, and dissolution/liquidation status. No login or cookies required.

### How to scrape orsr.sk data

1. Go to this actor's page on the [Apify Store](https://apify.com/store).
2. Click **Try for free** to open the actor in Apify Console.
3. Enter a company name (e.g., `Slovnaft`) or an 8-digit IČO identification number (e.g., `35763469`).
4. Set the maximum number of results you need (default: 10).
5. Click **Start** and wait for the run to finish (usually under a minute for a handful of results).
6. Download your data as JSON, CSV, Excel, or connect it to your workflow via the Apify API.

### Why use this actor?

Obchodný register SR is the official Slovak government business register maintained by the Ministry of Justice, covering every company registered with one of Slovakia's 8 registry courts. It is Slovakia's implementation of the EU Business Registers Interconnection System (BRIS) — the same category of legal-disclosure register as Germany's Handelsregister or Poland's KRS. This actor gives you programmatic access to that register without manual searches on the government portal.

Use cases:

- **KYB / KYC checks**: Verify a Slovak counterparty's legal identity, registered address, and officers before onboarding them.
- **Due diligence**: Confirm share capital, ownership, and dissolution/liquidation status before a business deal or investment.
- **Compliance monitoring**: Track officer changes or a company entering liquidation.
- **Lead generation**: Find statutory body members (directors) and shareholders for B2B outreach.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | String | No | Search companies by name (e.g., `Slovnaft`). Matches names starting with this text by default. Ignored if `ico` is provided. Defaults to `Slovnaft` if no other criteria given. |
| `ico` | String | No | Search by the 8-digit Slovak company identification number (IČO). Returns one detailed record. |
| `matchAnywhere` | Boolean | No | If `true`, matches the search query anywhere inside the company name (substring search) instead of only at the start. Default: `false`. |
| `includeHistoricalNames` | Boolean | No | If `true`, also matches companies that have since renamed away from the searched name. Default: `false` (current names only). |
| `maxResults` | Integer | No | Maximum results to return (default: 20, max: 100). Each result costs one detail-page fetch in addition to the search request. |
| `proxyConfiguration` | Object | No | Apify proxy settings. orsr.sk has no anti-bot and no geo-lock — the default automatic proxy pool works fine. |

Provide either `searchQuery` or `ico`. If neither is given, the actor searches for `Slovnaft` and returns the first batch of matches.

#### Example input

```json
{
    "searchQuery": "Slovnaft",
    "maxResults": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
}
```

#### IČO lookup

```json
{
    "ico": "35763469"
}
```

### Output

Each result contains the following fields:

| Field | Type | Example |
|-------|------|---------|
| `companyName` | String | `"Slovak Telekom, a.s."` |
| `ico` | String or null | `"35763469"` |
| `court` | String or null | `"Mestského súdu Bratislava III"` |
| `section` | String or null | `"Sa"` |
| `insertNumber` | String or null | `"2081/B"` |
| `legalForm` | String or null | `"Akciová spoločnosť"` |
| `registrationDate` | String or null | `"01.04.1999"` |
| `street` | String or null | `"Bajkalská 28"` |
| `city` | String or null | `"Bratislava"` |
| `postalCode` | String or null | `"817 62"` |
| `country` | String | `"Slovakia"` |
| `businessActivities` | Array | List of registered business activities |
| `statutoryBodyType` | String or null | `"predstavenstvo"` or `"konatelia"` |
| `statutoryBodyMembers` | Array | See below |
| `signingRules` | String or null | Rules for signing on behalf of the company |
| `supervisoryBoard` | Array | Supervisory board members, same shape as `statutoryBodyMembers` |
| `procurationHolders` | Array | Procuration holders, same shape as `statutoryBodyMembers` |
| `procurationRules` | String or null | Procuration signing rules |
| `shareCapital` | Number or null | `864113000` |
| `shareCapitalCurrency` | String or null | `"EUR"` |
| `shareCapitalRaw` | String or null | Raw share-capital text incl. paid-up amount |
| `shareholders` | Array | See below |
| `legalPredecessors` | Array | Predecessor companies from mergers, when applicable |
| `participants` | Array | Participant companies from demergers/spin-offs, when applicable |
| `status` | String | `"active"`, `"in_liquidation"`, or `"deregistered"` |
| `dissolutionLegalReason` | String or null | Populated once a company has been dissolved |
| `liquidationInfo` | String or null | Liquidation dates/liquidator, when in liquidation |
| `deregistrationDate` | String or null | Presence means the company no longer legally exists |
| `deregistrationReason` | String or null | e.g. `"dobrovoľný výmaz"` |
| `legalFactsRecent` | Array of strings | Most recent entries from the register's append-only legal-facts log, newest first |
| `legalFactsTotalCount` | Integer | Total legal-facts entries on file (`legalFactsRecent` is a capped subset of the 15 most recent) |
| `url` | String | URL of the company's official register extract |
| `scrapedAt` | String | ISO timestamp |

Each entry in `statutoryBodyMembers`, `supervisoryBoard`, and `procurationHolders` has:

| Field | Type | Example |
|-------|------|---------|
| `name` | String | `"Armin Sumesgutner"` |
| `role` | String or null | `"Predseda predstavenstva"` |
| `dateOfBirth` | String or null | `"05.06.1970"` |
| `functionSince` | String or null | `"29.04.2025"` |

Each entry in `shareholders` has:

| Field | Type | Example |
|-------|------|---------|
| `name` | String | `"Deutsche Telekom Europe B.V."` |
| `ico` | String or null | `"33298220"` |
| `address` | String or null | `"Stationsplein 8K, Maastricht 6221BT, Holandské kráľovstvo"` |

#### Example output

```json
{
    "companyName": "Slovnaft Mobility Services, s. r. o.",
    "ico": "51632187",
    "court": "Mestského súdu Bratislava III",
    "section": "Sro",
    "insertNumber": "127285/B",
    "legalForm": "Spoločnosť s ručením obmedzeným",
    "registrationDate": "28.03.2018",
    "street": "Vlčie hrdlo 1",
    "city": "Bratislava - mestská časť Ružinov",
    "postalCode": "821 07",
    "country": "Slovakia",
    "businessActivities": [
        "kúpa tovaru na účely jeho predaja konečnému spotrebiteľovi (maloobchod) alebo iným prevádzkovateľom živnosti (veľkoobchod)",
        "sprostredkovateľská činnosť v oblasti obchodu"
    ],
    "statutoryBodyType": "konatelia",
    "statutoryBodyMembers": [
        { "name": "Mgr. Marián Ružič", "role": null, "dateOfBirth": "25.01.1976", "functionSince": "01.01.2019" },
        { "name": "Ing. Dana Galková", "role": null, "dateOfBirth": "08.09.1969", "functionSince": "12.11.2022" }
    ],
    "signingRules": "V mene spoločnosti konajú konatelia vždy spoločne...",
    "supervisoryBoard": [],
    "procurationHolders": [],
    "procurationRules": null,
    "shareCapital": 2350000,
    "shareCapitalCurrency": "EUR",
    "shareCapitalRaw": "2 350 000 EUR Rozsah splatenia: 2 350 000 EUR",
    "shareholders": [
        { "name": "SLOVNAFT, a. s.", "ico": "31322832", "address": "Vlčie hrdlo 1, Bratislava - mestská časť Ružinov 824 12" }
    ],
    "legalPredecessors": [],
    "participants": [],
    "status": "active",
    "dissolutionLegalReason": null,
    "liquidationInfo": null,
    "deregistrationDate": null,
    "deregistrationReason": null,
    "legalFactsRecent": [
        "Obchodná spoločnosť bola založená zakladateľskou listinou zo dňa 14.3.2018..."
    ],
    "legalFactsTotalCount": 4,
    "url": "https://www.orsr.sk/vypis.asp?ID=426789&SID=2&P=0",
    "scrapedAt": "2026-08-22T14:32:30.169Z"
}
```

### Important notes

- **Name search matches from the start by default**: `searchQuery: "Slovnaft"` matches `"Slovnaft, a.s."` but not `"Bratislavská Slovnaft s.r.o."`. Set `matchAnywhere: true` for substring matching anywhere in the name.
- **Current names only by default**: a company that has since renamed away from your search term won't match unless `includeHistoricalNames: true`.
- **Search results are paginated at 20 per page server-side**: the actor follows pagination automatically up to `maxResults`.
- **`legalFactsRecent` is capped at 15 entries**: long-established companies can accumulate 50+ legal-facts log entries over decades. `legalFactsTotalCount` tells you the true total; the field returns the 15 most recent, newest first.
- **A dissolved company's data is still returned**: search for a company that no longer exists and you'll get its final record with `status: "deregistered"`, `deregistrationDate`, and `deregistrationReason` populated instead of an error.
- **Data source**: This actor scrapes the official orsr.sk register maintained by Slovakia's Ministry of Justice. No login or account required.

### Data coverage

The register covers every entity registered with one of Slovakia's 8 registry courts (Bratislava III, Banská Bystrica, Košice, Nitra, Prešov, Trenčín, Trnava, Žilina), including:

- **Spoločnosť s ručením obmedzeným (s.r.o.)** — limited liability companies
- **Akciová spoločnosť (a.s.)** — joint-stock companies
- **Verejná obchodná spoločnosť / Komanditná spoločnosť** — general and limited partnerships
- **Družstvo** — cooperatives
- Branches of foreign companies and other registered legal forms

### Integrations

Connect this actor with other tools in your stack:

- **Apify API**: Fetch results programmatically in any language.
- **Webhooks**: Get notified when a run completes.
- **Zapier / Make**: Automate KYB workflows with ORSR data.
- **Google Sheets**: Export directly to spreadsheets.
- **Slack / Email**: Send alerts when a specific company's status changes.

### Cost estimation

- **Direct IČO lookup** (1 company): 2 HTTP requests (search + detail page), minimal compute.
- **Name search** (up to `maxResults` companies): 1 search request per 20 results, plus 1 detail-page request per company.
- **Typical run of 10 results**: Under $0.05 in Apify platform compute.
- **Cost per result**: on the NICHE pricing tier this actor bills a fixed amount per scraped company record, plus a flat per-run start fee — see the actor's Pricing tab on the Apify Store for the current rate.
- **Usage cost only settles after the run reports SUCCEEDED.** If you read the dataset from a run that is still `RUNNING`, the usage total shown at that point is not final — check back once the run status is `SUCCEEDED` before relying on the cost figure.

### Related Scrapers

Studio AMBA maintains a full cluster of European company-registry actors with a consistent record shape for cross-country KYB workflows:

- `crbr-scraper` — Poland's Central Register of Beneficial Owners
- `krz-scraper` — Poland's National Debtors Register (insolvency/restructuring proceedings)
- `krs-scraper` — Poland's National Court Register
- `handelsregister-scraper` — Germany's commercial register
- `infogreffe-scraper` — France's official company register
- `registro-imprese-scraper` — Italy's business register
- `registro-mercantil-scraper` — Spain's mercantile register
- `kvk-scraper` — Netherlands Chamber of Commerce register
- `companies-house-scraper` — UK Companies House
- `kbo-enrichment` — Belgium's Crossroads Bank for Enterprises

### Legal

This actor accesses publicly available data from Slovakia's official Obchodný register SR portal (orsr.sk), maintained by the Ministry of Justice under Slovakia's EU Business Registers Interconnection System (BRIS) obligations. Users are responsible for ensuring their use of the data complies with applicable data protection regulations.

# Actor input Schema

## `searchQuery` (type: `string`):

Search companies by name (e.g., 'Slovnaft', 'Tesco'). Matches company names starting with this text. Ignored if ICO is provided. Defaults to 'Slovnaft' if no search criteria provided.

## `ico` (type: `string`):

Search by the 8-digit Slovak company identification number (e.g., '35763469' for Slovak Telekom, a.s.). Returns a single detailed record.

## `matchAnywhere` (type: `boolean`):

If enabled, matches the search query anywhere inside the company name (substring search). If disabled, only matches company names starting with the query (the register's default behavior).

## `includeHistoricalNames` (type: `boolean`):

If enabled, also matches companies that used to have this name but have since renamed (or that already dissolved under a name matching the query). If disabled (default), only searches currently valid company names.

## `maxResults` (type: `integer`):

Maximum number of company records to return. Each result costs one detail-page fetch in addition to the search request.

## `proxyConfiguration` (type: `object`):

Apify proxy configuration. orsr.sk has no anti-bot and no geo-lock (confirmed live) — the default automatic proxy pool works fine.

## Actor input object example

```json
{
  "searchQuery": "Slovnaft",
  "matchAnywhere": false,
  "includeHistoricalNames": false,
  "maxResults": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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 = {
    "searchQuery": "Slovnaft",
    "maxResults": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/orsr-scraper").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 = {
    "searchQuery": "Slovnaft",
    "maxResults": 10,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/orsr-scraper").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 '{
  "searchQuery": "Slovnaft",
  "maxResults": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call studio-amba/orsr-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,studio-amba/orsr-scraper"
        }
    }
}

```

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/UBWpLNhondQnn4XEI/builds/VeeRPBtN38VDxJmzG/openapi.json
