Independent service. Data from the Austrian company register.

Documentation of the register API

Every endpoint with method, path, parameters, request, an example answer for RELACON GmbH, the fields of the answer and the error codes. Amounts appear in the examples only as placeholders.

Contents
  1. Access and authentication
  2. Company API
    1. Search companies by name
    2. Company data
    3. Trade licences (GISA)
  3. Annual accounts API
    1. Balance sheet, P&L and ratios
    2. Annual accounts as PDF
  4. Person API
    1. Search persons
    2. Functions of a person
    3. Functions in a company
  5. Change list API
    1. Changes in a period
    2. Changes of watched companies
  6. Customer check API
    1. Customer check
  7. VAT ID check (VIES)
    1. Check a VAT ID
  8. Errors
  9. MCP for AI assistants
  10. OpenAPI (JSON)

Access and authentication

Create the key while signed in, in your account under API and MCP. It starts with fbd_ and is shown once. Every call carries it in the Authorization header as Bearer.

Authorization: Bearer fbd_…
  • Allowance per UTC month: Free 50, Pro 50, Business 1,000 calls. Every request costs one call, search, customer check and every PDF included. No fee per query.
  • Every answer carries x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset. When the calls are used up, the API answers 429 and names limit and resetAt in the body.
  • When a subscription ends, the same key keeps working with the limits of Free.
  • There is no separate sandbox: the free key runs on the live data.

Base address: https://api.firmenbuchdaten.at/v1

The previous address https://firmenbuchdaten.at/api/v1 stays valid and gives the same answers. https://api.firmenbuchdaten.at serves the API only, no pages.

Company API

Finds a company by name and returns its register data: name, seat, legal form, status, the filed annual accounts and edicts in insolvency proceedings. For setting up a new customer or supplier.

Search companies by name. Hits from our index, without a register call, with the filters of the advanced search. At least q or one filter. One page is one call. Other filters (state, district, ÖNACE) answer 400 unsupported_filter.

Still valid: https://firmenbuchdaten.at/api/v1/companies

Plan: All plans

Parameters

NameTypeRequiredDescription
qstring, querynoName, part of it (at least three characters) or register number
rechtsformstring, querynoLegal form as in the register, e.g. Gesellschaft mit beschränkter Haftung
sitzstring, querynoSeat as in the register, e.g. Wien
gklstring, querynoSize class of the latest accounts: W, K, M or G
seitstring, querynoOnly companies with accounts filed on or after this day (YYYY-MM-DD)
limitinteger, querynoHits per page, 1 to 50, default 25
cursorstring, querynonextCursor of the previous answer; at most 20 pages

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/companies?q=relacon"

Response

{
  "results": [
    {
      "fnr": "508415w",
      "name": "RELACON GmbH",
      "sitz": "Klosterneuburg",
      "rechtsform": "Gesellschaft mit beschränkter Haftung",
      "status": "eingetragen"
    }
  ],
  "nextCursor": null
}
FieldTypeDescription
resultsarrayHits of the page
results[].fnrstringRegister number with check letter
results[].namestringCompany name
results[].sitzstringSeat according to the register
results[].rechtsformstringLegal form
results[].statusstringeingetragen (registered) or gelöscht (deleted)
nextCursorstring | nullValue for cursor of the next page, null at the end

Errors

StatusCodeMeaning
400query_too_shortNo term and no filter, or a term shorter than three characters.
400unsupported_filterA parameter the search does not know; the answer names the supported ones.
400cursor_too_deepMore than 20 pages; narrow the filters.

GET /v1/companies/{fnr}

Company data. Name, seat, legal form, status, the list of annual accounts with balance sheet date, size class and filing date, the latest entry date and edicts on sales and leases in insolvency proceedings. No management, no shareholders; an edict names the administrator as the edict file publishes it.

Still valid: https://firmenbuchdaten.at/api/v1/companies/{fnr}

Plan: All plans. Business also: industry (ÖNACE) according to Statistics Austria, public contracts, FMA sanctions, credit institution according to OeNB and the number of connections.

Parameters

NameTypeRequiredDescription
fnrstring, pathyesRegister number with check letter, e.g. 508415w

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/companies/508415w"

Response

{
  "fnr": "508415w",
  "name": "RELACON GmbH",
  "sitz": "Klosterneuburg",
  "rechtsform": "Gesellschaft mit beschränkter Haftung",
  "status": "eingetragen",
  "soleTrader": false,
  "annualAccounts": [
    {
      "stichtag": "2025-12-31",
      "sizeClass": "W",
      "filed": "2026-01-21",
      "formats": [
        "pdf",
        "xml"
      ]
    },
    {
      "stichtag": "2024-12-31",
      "sizeClass": "W",
      "filed": "2025-05-03",
      "formats": [
        "pdf",
        "xml"
      ]
    }
  ],
  "lastChange": null,
  "insolvencyNotices": [],
  "retrievedAt": "2026-10-29T07:49:23.526Z",
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
fnrstringRegister number with check letter
namestringCompany name
sitzstringSeat according to the register
rechtsformstringLegal form
statusstringStatus, e.g. eingetragen (registered) or gelöscht (deleted)
soleTraderbooleantrue for sole traders, whose name is a person's name
annualAccounts[]arrayFiled annual accounts: stichtag, sizeClass, filed, formats
lastChangestring | nullLatest entry date from the register's change feed
insolvencyNotices[]arrayEdicts: published, court, caseNo, kind, transaction, description, administrator
retrievedAtstringTime of the last register request (ISO 8601)
sourcestringSource line, show it with the data
lei[]arrayLEI according to GLEIF; empty until the GLEIF data is loadedBusiness only
oenaceobject | nullIndustry by ÖNACE according to Statistics AustriaBusiness only
publicAwardsobject | nullPublic contracts according to data.gv.atBusiness only
fmaSanctions[]arrayFMA sanctions against the company: title, date, urlBusiness only
bankobject | nullCredit institution according to OeNBBusiness only
networkobject | nullConnections: persons (natural persons with functions in other active companies) and companies (number of those companies), counts onlyBusiness only
personsstringPath to the functions of this company (person API)Business only

Errors

StatusCodeMeaning
400invalid_fnrNot a valid register number, for example a wrong check letter.
404not_foundNo such register number.

GET /v1/companies/{fnr}/gewerbe

Trade licences (GISA). Trade licences of a company from the Austrian trade information system: wording, trade code, location, status (active, dormant, ended), start and end. One single query per call through the public GISA interface, cached for 7 days, matched by register number only. No managers, no lists, not for sole traders.

Still valid: https://firmenbuchdaten.at/api/v1/companies/{fnr}/gewerbe

Plan: Pro and Business.

Parameters

NameTypeRequiredDescription
fnrstring, pathyesRegister number with check letter, e.g. 508415w

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/companies/508415w/gewerbe"

Response

{
  "fnr": "508415w",
  "fetchedAt": "<JJJJ-MM-TTThh:mm:ssZ>",
  "trades": [
    {
      "gisaZahl": "<GISA-Zahl>",
      "wortlaut": "<Wortlaut>",
      "gewerbeschluessel": "<Schlüssel>",
      "plz": "<PLZ>",
      "ort": "<Ort>",
      "status": "aktiv",
      "beginn": "<JJJJ-MM-TT>",
      "ende": null
    }
  ],
  "source": "Austrian trade information system (GISA), Federal Ministry of Economy, Energy and Tourism, single query through the public interface"
}
FieldTypeDescription
fnrstringRegister number
fetchedAtstringTime of the GISA query
trades[]arraygisaZahl, wortlaut, gewerbeschluessel, plz, ort, status, beginn, ende
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_fnrNot a valid register number.
403planPro or Business only.
404unknown_companyThe company is not in our database yet. Fetch the company first, then GISA.
404sole_traderNo GISA lookup for sole traders.
429account_limitThis account's daily limit of GISA lookups is reached.
429in_progressThis company is being looked up; in a minute the result is in the cache.
503pausedGISA lookups are paused (minute or day budget, or GISA does not answer).

Annual accounts API

Returns a year's balance sheet and P&L as the company filed them, with our ratios, and the annual accounts as PDF. For in-house credit checks, files and reports.

GET /v1/companies/{fnr}/financials

Balance sheet, P&L and ratios. Per year the balance sheet items and, where filed, the P&L in cents, unchanged from the register, plus our ratios. load=1 fetches one missing year from the register.

Still valid: https://firmenbuchdaten.at/api/v1/companies/{fnr}/financials

Plan: Pro and Business: every company. Free: only the company of your free query.

Parameters

NameTypeRequiredDescription
fnrstring, pathyesRegister number with check letter, e.g. 508415w
loadinteger, queryno1 = fetch one missing year

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/companies/508415w/financials?load=1"

Response

{
  "fnr": "508415w",
  "name": "RELACON GmbH",
  "years": [
    {
      "stichtag": "2025-12-31",
      "sizeClass": "W",
      "hasProfitAndLoss": false,
      "positionsCents": {
        "<Posten>": "<Betrag in Cent>"
      },
      "evaluation": {
        "<Kennzahl>": "<Wert>"
      }
    }
  ],
  "notLoaded": [],
  "note": "positionsCents: register figures in euro cents, unchanged. evaluation: computed by firmenbuchdaten.at, not part of the register.",
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
fnrstringRegister number
namestringCompany name
years[]arrayPer loaded year: stichtag, sizeClass, hasProfitAndLoss, positionsCents, evaluation
years[].positionsCentsobjectRegister items in euro cents, unchanged
years[].evaluationobjectRatios computed by firmenbuchdaten.at, not part of the register
notLoaded[]arrayBalance sheet dates not loaded yet (load=1 fetches one)
notestringNote on which figures come from the register and which from us
sourcestringSource line

Errors

StatusCodeMeaning
403plan_without_financialsFree: figures only for the company of your free query. Pro or Business for every company.
404not_foundNo such register number.

GET /v1/companies/{fnr}/documents/{stichtag}

Annual accounts as PDF. The annual accounts as filed with the register. At most 20 PDFs per key and hour.

Still valid: https://firmenbuchdaten.at/api/v1/companies/{fnr}/documents/{stichtag}

Plan: Pro and Business.

Parameters

NameTypeRequiredDescription
fnrstring, pathyesRegister number with check letter, e.g. 508415w
stichtagstring, pathyesBalance sheet date as YYYY-MM-DD

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/companies/508415w/documents/2025-12-31" \
  -o abschluss.pdf

Response

The PDF file (application/pdf) as filed with the register.

Errors

StatusCodeMeaning
400invalidRegister number or date invalid.
403plan_without_financialsPDFs come with Pro or Business.
429rateMore than 20 PDFs in one hour.

Person API

Shows who holds management, authorised signatory or another function in a company according to the register, and in which other companies the same person is entered. For checking business partners, Business only. Every call is logged for 90 days.

Search persons. Persons with functions in the register by name, at most 20 hits with name and number of companies. With geburtsdatum exactly the one person with this name and birth date. We do not store or return the birth date itself.

Still valid: https://firmenbuchdaten.at/api/v1/persons

Plan: Business.

Parameters

NameTypeRequiredDescription
namestring, queryyesName or part of it
geburtsdatumstring, querynoBirth date YYYY-MM-DD, for an exact hit

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/persons?name=<Name>"

Response

{
  "results": [
    {
      "key": "<key>",
      "name": "<Name>",
      "companies": 2,
      "legalEntity": false
    }
  ],
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
results[].keystringKey for /v1/persons/{key}
results[].namestringName as in the register
results[].companiesintegerNumber of companies with a function
results[].legalEntitybooleantrue for legal entities (e.g. a GmbH as shareholder)
sourcestringSource line

Errors

StatusCodeMeaning
400name_too_shortNo part of the name with at least three characters.
403plan_without_personsPersons through the API come with Business only.
429person_rateMore than 30 person calls in an hour or 100 in a day (shared with the person search of the website).

GET /v1/persons/{key}

Functions of a person. Current functions with company, register number, function and since when, plus functions no longer in the register extract, with the day we noticed.

Still valid: https://firmenbuchdaten.at/api/v1/persons/{key}

Plan: Business.

Parameters

NameTypeRequiredDescription
keystring, pathyesKey of the person from a search (24 characters)

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/persons/<key>"

Response

{
  "key": "<key>",
  "name": "<Name>",
  "legalEntity": false,
  "functions": [
    {
      "fnr": "508415w",
      "company": "RELACON GmbH",
      "sitz": "Klosterneuburg",
      "companyStatus": "eingetragen",
      "code": "GF",
      "function": "<Funktion>",
      "since": "<JJJJ-MM-TT>",
      "representation": "<Vertretung>"
    }
  ],
  "endedFunctions": [],
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
keystringKey of the person
namestringName as in the register
legalEntitybooleantrue for legal entities
functions[]arrayfnr, company, sitz, companyStatus, code, function, since, representation
endedFunctions[]arrayfnr, company, code, function, since, notInExtractSince (day the function was no longer in the extract)
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_keyNot a valid key.
403plan_without_personsPersons through the API come with Business only.
404not_foundNo person with this key.
429person_rateHourly or daily limit of person calls reached.

GET /v1/companies/{fnr}/persons

Functions in a company. Who holds a function in this company (management, authorised signatory, shareholders as in the extract, supervisory board), since when and how they represent it, and who is no longer in the extract. We do not keep shareholdings.

Still valid: https://firmenbuchdaten.at/api/v1/companies/{fnr}/persons

Plan: Business.

Parameters

NameTypeRequiredDescription
fnrstring, pathyesRegister number with check letter, e.g. 508415w

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/companies/508415w/persons"

Response

{
  "fnr": "508415w",
  "functions": [
    {
      "key": "<key>",
      "name": "<Name>",
      "legalEntity": false,
      "code": "GF",
      "function": "<Funktion>",
      "since": "<JJJJ-MM-TT>",
      "representation": "<Vertretung>"
    }
  ],
  "endedFunctions": [],
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
fnrstringRegister number
functions[]arraykey, name, legalEntity, code, function, since, representation
endedFunctions[]arraykey, name, legalEntity, code, function, since, notInExtractSince
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_fnrNot a valid register number.
403plan_without_personsPersons through the API come with Business only.
429person_rateHourly or daily limit of person calls reached.

Change list API

Returns the companies with a new entry, a deletion, newly filed annual accounts or an edict in a period, or only for the companies you watch. This keeps your CRM current without querying every company.

GET /v1/changes

Changes in a period. Companies with a change in a period of at most 31 days, 100 per page. art: aenderung (newest entry in the period, new companies included), loeschung (deletion), abschluss (annual accounts filed), edikt. Per company the newest entry counts, not every single one; new entries on their own and changes of functions are planned.

Still valid: https://firmenbuchdaten.at/api/v1/changes

Plan: Business. One page is one call.

Parameters

NameTypeRequiredDescription
sincestring, queryyesFirst day, YYYY-MM-DD
untilstring, querynoLast day, at most 31 days after since
artstring, querynoaenderung (default), loeschung, abschluss or edikt
rechtsformstring, querynoLegal form as in the register (not with edikt)
sitzstring, querynoSeat as in the register (not with edikt)
cursorstring, querynonextCursor of the previous answer

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/changes?since=2026-11-01&until=2026-11-07&art=aenderung"

Response

{
  "since": "2026-11-01",
  "until": "2026-11-07",
  "art": "aenderung",
  "changes": [
    {
      "fnr": "508415w",
      "name": "RELACON GmbH",
      "kind": "aenderung",
      "date": "<JJJJ-MM-TT>",
      "sitz": "Klosterneuburg",
      "rechtsform": "Gesellschaft mit beschränkter Haftung",
      "description": "Eintragung im Firmenbuch"
    }
  ],
  "nextCursor": "<Cursor>",
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
sincestringFirst day
untilstringLast day
artstringKind asked for
changes[]arrayfnr, name, kind, date (day of entry, filing or publication), sitz, rechtsform, description
nextCursorstring | nullValue for cursor of the next page, null at the end
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_sincesince missing or not a date.
400range_too_longPeriod longer than 31 days.
400kind_not_availableart=neueintragung or art=funktion: planned, not derivable today.
400unsupported_filterA parameter the list does not know (such as bundesland, bezirk, oenace).
403plan_without_changesThe change list comes with Business; the watchlist with every plan.

GET /v1/watchlist/changes

Changes of watched companies. The same for the companies your account watches (Free 5, Pro 25, Business 250): newest entry, filed annual accounts and edicts since since, at most 93 days back.

Still valid: https://firmenbuchdaten.at/api/v1/watchlist/changes

Plan: All plans.

Parameters

NameTypeRequiredDescription
sincestring, queryyesFirst day, YYYY-MM-DD

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/watchlist/changes?since=2026-11-01"

Response

{
  "since": "2026-11-01",
  "changes": [
    {
      "fnr": "508415w",
      "name": "RELACON GmbH",
      "kind": "abschluss",
      "date": "<JJJJ-MM-TT>",
      "sitz": "Klosterneuburg",
      "rechtsform": "Gesellschaft mit beschränkter Haftung",
      "description": "Jahresabschluss eingereicht"
    }
  ],
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0"
}
FieldTypeDescription
sincestringFirst day
changes[]arrayas in /v1/changes, newest first
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_sincesince missing, not a date or in the future.
400range_too_longsince lies too far back; the answer names the earliest day.

Customer check API

Gives a traffic light with payment term and the reasons for it, from the register, filings and the edict file. For the question: prepayment or invoice?

GET /v1/kundencheck/{fnr}

Customer check. The traffic light of the customer check with payment term and every signal (status, age, filing, size class, changes, edicts), each with German and English text. No amounts, no credit rating.

Still valid: https://firmenbuchdaten.at/api/v1/kundencheck/{fnr}

Plan: All plans. Business also: check against the EU sanctions list.

Parameters

NameTypeRequiredDescription
fnrstring, pathyesRegister number with check letter, e.g. 508415w

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/kundencheck/508415w"

Response

{
  "fnr": "508415w",
  "name": "RELACON GmbH",
  "sitz": "Klosterneuburg",
  "rechtsform": "Gesellschaft mit beschränkter Haftung",
  "light": "<green | yellow | red>",
  "lightText": {
    "de": "<Text>",
    "en": "<text>"
  },
  "paymentTerm": "<vorkasse | 14 | 30>",
  "paymentTermText": {
    "de": "<Text>",
    "en": "<text>"
  },
  "registerRead": true,
  "signals": [
    {
      "key": "status",
      "level": "ok",
      "data": {
        "status": "active"
      },
      "de": "<Text>",
      "en": "<text>"
    }
  ],
  "sanctions": null,
  "fmaSanctions": [],
  "note": "<Hinweis>",
  "page": "https://firmenbuchdaten.at/kundencheck/508415w",
  "source": "Österreichisches Firmenbuch, Republik Österreich, vertreten durch das BMJ, offene Daten unter CC BY 4.0; Edikte: Republik Österreich, vertreten durch das BMJ (Ediktsdatei)"
}
FieldTypeDescription
fnrstringRegister number
namestringCompany name
sitzstringSeat according to the register
rechtsformstringLegal form
lightstringgreen, yellow or red
lightTextobjectText for the light, de and en
paymentTermstringvorkasse (prepayment), 14 or 30 (days)
paymentTermTextobjectText for the payment term, de and en
registerReadbooleantrue when the register was read for this check
signals[]arrayEvery signal with key, level, data and text de/en
sanctionsobject | nullCheck against the EU sanctions list; null without Business or while no list is loaded
fmaSanctions[]arrayFMA sanctions against the company
notestringNote: not a credit rating
pagestringAddress of the customer check page
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_fnrNot a valid register number.
403sole_traderSole traders are not checked; their name is a person's name.
404not_foundNo such register number.

VAT ID check (VIES)

Checks an EU VAT ID at VIES of the European Commission and names the name and address the member state shares, plus a cautious match with the register. Costs no call of the month.

GET /v1/uid/{uid}

Check a VAT ID. First the format and, for Austrian numbers, the check digit (without asking VIES), then VIES. state: gueltig (valid), ungueltig (not valid) or unerreichbar (VIES or the member state is not answering; never guessed). Answers are cached for 24 hours, unerreichbar never. match names a company of ours with the same name only as probable, because the register keeps no VAT IDs. Does not count against the monthly allowance; at most 100 checks per hour and account.

Still valid: https://firmenbuchdaten.at/api/v1/uid/{uid}

Plan: All plans, without a call from the allowance.

Parameters

NameTypeRequiredDescription
uidstring, pathyesVAT ID with country code, e.g. ATU12345678

Request

curl -H "Authorization: Bearer fbd_…" \
  "https://api.firmenbuchdaten.at/v1/uid/ATU74215057"

Response

{
  "uid": "ATU74215057",
  "state": "gueltig",
  "name": "RELACON GmbH",
  "address": "Preiseckergasse 5-7/3/12 AT-3420 Kritzendorf",
  "checkedAt": "2026-11-08T16:13:02.222Z",
  "match": {
    "fnr": "508415w",
    "name": "RELACON GmbH",
    "sitz": "Klosterneuburg",
    "confidence": "wahrscheinlich",
    "seatInAddress": false
  },
  "source": "VIES, European Commission (free, as of each query)"
}
FieldTypeDescription
uidstringThe VAT ID in compact form
statestringgueltig, ungueltig or unerreichbar
namestring | nullName according to VIES; null when the member state does not share it
addressstring | nullAddress according to VIES
checkedAtstringTime of the VIES answer (ISO 8601)
matchobject | nullfnr, name, sitz, confidence (always wahrscheinlich), seatInAddress
sourcestringSource line

Errors

StatusCodeMeaning
400invalid_uidNo EU country code or wrong length.
400invalid_check_digitAustrian VAT ID with a wrong check digit.
429uid_rateMore than 100 VAT ID checks in an hour; Retry-After names the seconds.
429vies_busyThe shared cap for requests to VIES is reached for this minute.

Errors any call can return

StatusCodeMeaning
401missing_or_invalid_keyNo or an invalid key in the Authorization header.
401invalid_keyThe key is revoked or unknown.
429monthly_credits_usedThis UTC month's calls are used up. The answer names limit and resetAt (Unix seconds, start of next month), plus the headers x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset.
503register_busyThe register is paused and the company is not in our database yet. Try again later.
HTTP/1.1 429 Too Many Requests
x-ratelimit-limit: 50
x-ratelimit-remaining: 0
x-ratelimit-reset: 1796083200

{ "error": "monthly_credits_used", "limit": 50, "resetAt": 1796083200 }

MCP for AI assistants

So an AI assistant such as ChatGPT, Claude or Cursor can look things up in the register itself. Streamable HTTP at https://api.firmenbuchdaten.at/mcp (or https://firmenbuchdaten.at/mcp), the same key in the Authorization header. Tools: search_companies, get_company, get_financials. Every tool call costs one call.

{
  "mcpServers": {
    "firmenbuchdaten": {
      "type": "http",
      "url": "https://api.firmenbuchdaten.at/mcp",
      "headers": { "Authorization": "Bearer fbd_…" }
    }
  }
}

API overview API pricing

Source: Austrian company register (Firmenbuch), Republic of Austria, represented by the BMJ, open data under CC BY 4.0.