# Austrian Company Search - WKO Business Registry (`studio-amba/firmenbuch-scraper`) Actor

Search and extract Austrian company data from the WKO (Wirtschaftskammer) business directory. Look up by company name, industry, or location. Returns company name, registration number, legal form, address, phone, email, website, and industry. Covers 623,000+ businesses. No login.

- **URL**: https://apify.com/studio-amba/firmenbuch-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

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Austrian Company Register Scraper - WKO Business Data

Search and extract Austrian company data from the WKO (Wirtschaftskammer) business directory. Look up by company name, industry, or location across all nine Austrian states. Returns company name, Firmenbuch registration number, legal form, address, phone, email, website, and industry classification. Covers 623,000+ Austrian businesses with active trade licenses. No cookies, no login required.

### How to scrape Austrian company data

This actor searches the official WKO Firmen A-Z directory and extracts structured company data. The WKO register is Austria's most comprehensive public business directory, maintained by the Austrian Federal Economic Chamber (Wirtschaftskammer).

#### Search by Company Name

Enter a company name or keyword to find matching Austrian businesses. The actor searches across the entire WKO directory and returns all matches with their registration details, contact information, and addresses.

#### Search by Industry

Use the industry field to search by trade or profession. Examples: "installateur" (plumber), "rechtsanwalt" (lawyer), "dachdecker" (roofer), "steuerberater" (tax advisor). The WKO directory classifies every business by trade license.

#### Filter by Location

Narrow results to a specific Austrian state (Bundesland), city, or district. The nine states are: Wien, Niederosterreich, Oberosterreich, Salzburg, Tirol, Vorarlberg, Karnten, Steiermark, Burgenland.

### What data does Austrian Company Register Scraper extract?

| Field | Type | Description |
|-------|------|-------------|
| **companyName** | String | Official registered company name |
| **registrationNumber** | String | Firmenbuch number (FN) when available |
| **legalForm** | String | Legal form (GmbH, AG, KG, OG, e.U., etc.) |
| **industry** | String | Industry or trade classification (Branche) |
| **address** | String | Full formatted address |
| **street** | String | Street name and number |
| **postalCode** | String | Austrian postal code (4 digits) |
| **city** | String | City or municipality |
| **state** | String | Federal state (Bundesland) |
| **phone** | String | Primary phone number |
| **email** | String | Contact email address |
| **website** | String | Company website URL |
| **badges** | Array | Certifications (Meisterbetrieb, Lehrbetrieb, etc.) |
| **url** | String | WKO profile URL |
| **scrapedAt** | String | ISO timestamp of extraction |

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| **Company Name / Keywords** | String | "wien" | Search by company name or keywords |
| **Location** | String | — | Filter by state, city, or district |
| **Industry / Branche** | String | — | Search by trade or profession |
| **Max Results** | Integer | `100` | Maximum companies to return |
| **Proxy Configuration** | Object | AT Residential | Proxy settings |

### Example output

```json
{
    "companyName": "Bauer Installateur GmbH",
    "registrationNumber": "FN 234567a",
    "legalForm": "GmbH",
    "industry": "Gas- und Wasserinstallateur",
    "address": "Mariahilfer Strasse 42, 1060, Wien",
    "street": "Mariahilfer Strasse 42",
    "postalCode": "1060",
    "city": "Wien",
    "state": "wien",
    "phone": "+43 1 5551234",
    "email": "office@bauer-installateur.at",
    "website": "https://www.bauer-installateur.at",
    "badges": ["Meisterbetrieb", "Lehrbetrieb"],
    "url": "https://firmen.wko.at/bauer-installateur-gmbh/wien/?firmaid=abc12345-...",
    "scrapedAt": "2026-06-09T10:30:00.000Z"
}
````

### Tips for best results

- **B2B lead generation**: Search by industry + location to build targeted lead lists. Example: industry="steuerberater" (tax advisor), location="wien".
- **Competitor mapping**: Search by trade keyword to find all competitors in a region. Example: searchQuery="software", location="graz".
- **Market research**: Combine industry searches across multiple states to map Austria's business landscape.
- **Due diligence**: Look up specific company names to verify their WKO registration and contact details.
- **Rate limiting**: For large runs (500+ results), use the default proxy configuration. The WKO site throttles aggressive scrapers.

### How much does it cost?

Austrian Company Register Scraper runs on the Apify platform. You pay only for compute resources used.

| Search size | Estimated time | Estimated cost |
|-------------|---------------|----------------|
| 10 companies | ~30 seconds | ~$0.01 |
| 100 companies | ~5 minutes | ~$0.05 |
| 1,000 companies | ~45 minutes | ~$0.40 |

Apify's free tier includes $5 of monthly compute -- enough to search thousands of companies at no cost.

### Can I integrate?

Yes. Send Austrian company data directly to your existing tools:

- **Google Sheets** -- Build a live Austrian company database
- **HubSpot / Salesforce** -- Enrich CRM contacts with verified Austrian business data
- **Slack** -- Get notified about new companies matching your criteria
- **Webhooks** -- Push to any HTTP endpoint for custom workflows

### Can I use it as an API?

Yes. Call Austrian Company Register Scraper programmatically:

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("studio-amba/firmenbuch-scraper").call(run_input={
    "searchQuery": "software",
    "location": "wien",
    "maxResults": 20,
})

for company in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{company['companyName']} ({company['legalForm']}) -- {company['city']}")
```

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('studio-amba/firmenbuch-scraper').call({
    searchQuery: 'steuerberater',
    location: 'salzburg',
    maxResults: 50,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(c => console.log(`${c.companyName} | ${c.phone} | ${c.city}`));
```

### FAQ

#### What is the WKO?

The WKO (Wirtschaftskammer Osterreich) is Austria's Federal Economic Chamber. Every Austrian business with a trade license is registered in the WKO directory. It covers over 623,000 companies across all industries and all nine federal states.

#### What is a Firmenbuchnummer?

The Firmenbuchnummer (FN) is Austria's official company registration number, assigned when a company registers with the Austrian Commercial Register (Firmenbuch). It consists of digits followed by a letter (e.g., FN 234567a). Not every WKO-listed business has an FN -- sole traders (Einzelunternehmen) may only have a trade license.

#### What Austrian legal forms exist?

Common Austrian legal forms include: GmbH (limited liability), AG (stock corporation), KG (limited partnership), OG (general partnership), e.U. (registered sole trader), GesbR (civil law partnership), and Verein (association).

#### How to verify an Austrian company?

Enter the company name in this actor to check its WKO registration, trade license status, and contact details. For official Firmenbuch records, the Austrian Ministry of Justice maintains the formal register at justiz.gv.at (paywall).

#### What is the difference between WKO and Firmenbuch?

The WKO directory lists all businesses with trade licenses (Gewerbeschein). The Firmenbuch is the official commercial register maintained by courts, required for GmbH, AG, and KG entities. This actor searches the WKO directory, which is more comprehensive for smaller businesses and sole traders.

### Limitations

- The WKO directory covers businesses with active trade licenses. Companies without WKO membership (rare in Austria) may not appear.
- Firmenbuch registration numbers are shown when the company provides them to WKO, but not all listings include this field.
- The WKO site uses ASP.NET with "Load More" pagination -- very deep result sets (10,000+) may slow down.
- Financial data (revenue, employees) is not available through the WKO directory.

### Other European company register scrapers

Working with European business data? Combine with these tools:

- **[Dutch Company Register](https://apify.com/studio-amba/kvk-scraper)** -- Dutch KVK commercial register
- **[German Company Register](https://apify.com/studio-amba/handelsregister-scraper)** -- German Handelsregister
- **[Belgian Company Enrichment](https://apify.com/studio-amba/kbo-enrichment)** -- Belgian KBO/BCE company register
- **[French Company Enrichment](https://apify.com/studio-amba/french-company-enrichment)** -- French company data from official sources

### Your feedback

Found a bug or want a feature? Open an issue on the [Issues tab](https://console.apify.com/actors/studio-amba~firmenbuch-scraper/issues). Your feedback helps improve this actor.

# Actor input Schema

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

Search for companies by name or keywords. Example: 'Siemens', 'Raiffeisen', 'Billa'.

## `location` (type: `string`):

Filter by Austrian state (Bundesland), city, or district. Example: 'wien', 'salzburg', 'graz', 'tirol'.

## `industry` (type: `string`):

Search by industry or trade classification. If set, this overrides the company name search. Example: 'installateur', 'rechtsanwalt', 'dachdecker'.

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

Maximum number of companies to return.

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

Apify proxy configuration. Austrian residential proxies recommended for large runs.

## Actor input object example

```json
{
  "searchQuery": "wien",
  "location": "wien",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AT"
  }
}
```

# 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": "wien",
    "location": "wien",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "AT"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/firmenbuch-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": "wien",
    "location": "wien",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "AT",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/firmenbuch-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": "wien",
  "location": "wien",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AT"
  }
}' |
apify call studio-amba/firmenbuch-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=studio-amba/firmenbuch-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Austrian Company Search - WKO Business Registry",
        "description": "Search and extract Austrian company data from the WKO (Wirtschaftskammer) business directory. Look up by company name, industry, or location. Returns company name, registration number, legal form, address, phone, email, website, and industry. Covers 623,000+ businesses. No login.",
        "version": "0.0",
        "x-build-id": "zyzSTBfdV0GByysoG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~firmenbuch-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-firmenbuch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/studio-amba~firmenbuch-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-firmenbuch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/studio-amba~firmenbuch-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-firmenbuch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Company Name / Keywords",
                        "type": "string",
                        "description": "Search for companies by name or keywords. Example: 'Siemens', 'Raiffeisen', 'Billa'."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Filter by Austrian state (Bundesland), city, or district. Example: 'wien', 'salzburg', 'graz', 'tirol'."
                    },
                    "industry": {
                        "title": "Industry / Branche",
                        "type": "string",
                        "description": "Search by industry or trade classification. If set, this overrides the company name search. Example: 'installateur', 'rechtsanwalt', 'dachdecker'."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of companies to return.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Austrian residential proxies recommended for large runs."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
