Austrian Company Data
Look up an Austrian company in the official Firmenbuch by register number or name: core company data, current officers and registered facts.
Example
{
"registration_number": "FN 93363 z"
} {
"euid": "ATBRA.093363-000",
"seat": "Wien",
"court": "Handelsgericht Wien",
"status": "active",
"homepage": "www.omv.com",
"directors": [
"Beispiel-Prokuristin Dr. Anna Muster (EXAMPLE)"
],
"is_active": true,
"court_code": "007",
"legal_form": "Aktiengesellschaft",
"legal_name": "OMV Aktiengesellschaft",
"legal_facts": [],
"status_note": null,
"company_name": "OMV Aktiengesellschaft",
"country_code": "AT",
"resolved_via": "registration_number",
"source_as_of": "2026-08-27T21:03:11.284+02:00",
"legal_form_code": "AG",
"source_checksum": "AE5C3FA050D3B445A9488BF39C4CA3EE",
"tier_2_available": true,
"ubo_availability": "unavailable_no_registry",
"date_incorporated": "1944-03-10",
"registered_address": "Trabrennstraße 6-8, 1020 Wien",
"registration_number": "FN 93363 z",
"first_registered_date": "1944-03-10",
"legal_representatives": [
{
"name": "Beispiel-Prokuristin Dr. Anna Muster (EXAMPLE)",
"role": "PROKURIST/IN",
"type": "person",
"role_code": "PR",
"role_group": "management",
"start_date": "2023-03-15",
"date_of_birth": "1970-12-16",
"representation": "vertritt seit 15.03.2023 gemeinsam mit einem Vorstandsmitglied oder einer/einem weiteren Prokuristin/Prokuristen"
}
],
"primary_registration_id": "FN 93363 z",
"tier_2_available_reason": "Current officers (role, representation authority, start date) extracted from the Firmenbuch Kurzinformation extract.",
"ubo_availability_reason": "Austrian UBO data lives in the WiEReg, which has no free public API; access requires a paid BMF account.",
"total_legal_representatives": 10,
"historical_registration_number": "HRB 29493"
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
company_name | string | No | Company name for a registry search. Must resolve to exactly one Firmenbuch entry; ambiguous names return a candidate list and require a follow-up call with registration_number. |
registration_number | string | No | Austrian Firmenbuchnummer, up to 6 digits plus a check letter (e.g. "FN 93363 z" or "93363z"). |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
euid | string or null | Usually (present for most inputs) |
seat | string or null | Always (present in every successful answer) |
court | string or null | Always (present in every successful answer) |
status | one of active, dissolved | Always (present in every successful answer) |
homepage | string or null | Sometimes (present only for some inputs) |
directors | array | Always (present in every successful answer) |
is_active | boolean | Always (present in every successful answer) |
court_code | string or null | Always (present in every successful answer) |
legal_form | string or null | Always (present in every successful answer) |
legal_name | string | Always (present in every successful answer) |
legal_facts | array | Usually (present for most inputs) |
status_note | string or null | Sometimes (present only for some inputs) |
company_name | string | Always (present in every successful answer) |
country_code | string | Always (present in every successful answer) |
resolved_via | one of registration_number, company_name | Always (present in every successful answer) |
source_as_of | string or null | Always (present in every successful answer) |
legal_form_code | string or null | Always (present in every successful answer) |
source_checksum | string or null | Always (present in every successful answer) |
tier_2_available | boolean | Always (present in every successful answer) |
ubo_availability | string | Always (present in every successful answer) |
date_incorporated | string or null | Usually (present for most inputs) |
registered_address | string or null | Always (present in every successful answer) |
registration_number | string | Always (present in every successful answer) |
first_registered_date | string or null | Usually (present for most inputs) |
legal_representatives | array | Always (present in every successful answer) |
primary_registration_id | string | Always (present in every successful answer) |
tier_2_available_reason | string | Always (present in every successful answer) |
ubo_availability_reason | string | Always (present in every successful answer) |
total_legal_representatives | integer | Always (present in every successful answer) |
historical_registration_number | string or null | Sometimes (present only for some inputs) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "austrian-company-data",
"inputs": {
"registration_number": "FN 93363 z"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "austrian-company-data",
"inputs": {
"registration_number": "FN 93363 z"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "austrian-company-data",
inputs: {
"registration_number": "FN 93363 z"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="austrian-company-data",
inputs={
"registration_number": "FN 93363 z",
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/austrian-company-data?registration_number=FN+93363+z' Limitations
Name search must resolve to exactly one entry
If `company_name` matches several entries without a unique exact name match, the tool returns a candidate list with names, FN identifiers and seats instead of selecting one. Firmenbuch name search does not rank by relevance; retry using a candidate identifier.
What to do instead: Call again with registration_number taken from the returned candidate list.
Status is derived, not a registry field
`status` is derived from current registration blocks because the Kurzinformation extract has no explicit status field; insolvency or liquidation markers appear in `status_note` only for name searches. Struck-off companies return an error rather than historical data.
No UBO data
Austrian beneficial-ownership data lives in the WiEReg (separate register, paid BMF access) and is not part of the Firmenbuch HVD datasets. ubo_availability is reported as unavailable_no_registry.
Officers limited to the Kurzinformation scope
The IWG HVD tier returns the Kurzinformation extract: current officers with roles and representation authority. Full historical extracts, documents (Urkunden), and shareholder data are not included in the granted scope.
VAT numbers are not accepted
Lookup accepts a Firmenbuchnummer or company name, not an Austrian UID or ATU-format VAT number. The tool does not resolve VAT numbers to Firmenbuchnummer identifiers.
What to do instead: Look up the company by name, or find its Firmenbuchnummer on an official company document.
Name lookups take longer than identifier lookups
Name lookup takes about 4 seconds and can slow down under registry load. A known Firmenbuchnummer supplied as `registration_number` takes about 1 second.
What to do instead: Pass registration_number instead of company_name when the FN is known.
Attribution obligation (CC BY 4.0)
Data is reused under the Austrian IWG with a CC BY 4.0 attribution condition. Every response carries the attribution string in provenance; consumers republishing the data must preserve it.
Bundled checks that include it
- KYB Essentials — Austria €1.50
- KYB Complete — Austria €2.50
- Invoice Verify — Austria €2.50
Related tools
- Australian Company Data €0.05
- Belgian Company Data €0.05
- Brazilian Company Data €0.05
- Canadian Company Data €0.80
- Company News €0.05
- Croatian Company Data €0.05