Company records in Austria
Your agent looks up companies in Austria through Austrian Company Data. The data comes from Firmenbuch (Republik Österreich, BMJ) via JustizOnline IWG/HVD API.
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.
- Source
- Firmenbuch (Republik Österreich, BMJ) via JustizOnline IWG/HVD API
- Price per call
- €0.05 · x402 $0.054
- Returns
- Name and number, Status, Address, Officers
- Last recorded test
- 5 Nov 2026, 100% of its tests passed on their latest run
- Method
- Computed by fixed rules and lookups; no AI model writes the answer.
What your agent sends
| 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"). |
Example answer
{
"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"
} Fields that come back
| 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
# 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 for Austria
- Company check €1.50
- Full check €2.50
- Invoice-issuer check €2.50
Screen the company or its people
Results are matches for a person to review, not a verdict.
- Sanctions Check €0.20
- PEP Check €0.05
- Adverse Media Check €0.20