Handelsregister

io.github.jkbngb由 GitHub 帳號 jkbngb 發布v1.0.3更新於 Oct 29, 2026

German Handelsregister + Austrian Firmenbuch for AI agents: master data, financials & ratios.

已驗證Streamable HTTP可網頁執行金融資料與分析商業與電商

概覽

AI 產生的概覽

遠端 MCP 伺服器,提供奧地利公司登記(Firmenbuch)與德國商業登記(Handelsregister)的官方企業資料:檢索公司、檔案、財務與登記異動。

可以做什麼
  • 跨奧地利與德國登記資料檢索與篩選公司,支援語意式名稱搜尋與人員搜尋
  • 讀取單一公司的檔案、完整多年紀錄、財務歷史、同類企業與族群基準比較
  • 瀏覽登記異動事件與事件彙總統計,並查詢產業與法律形式的取值清單
  • 列出並讀取申報文件,取得德國官方登記摘要
  • 將符合條件的公司集合匯出為短期有效的 CSV 檔案,並查看呼叫金鑰本身的使用量
適用情境
適合需要可查證的奧地利或德國企業主檔資料、年報數據或登記異動的情境,例如潛在客戶名單、市場監測、同業標竿或盡職調查前期作業,而非依賴模型記憶作答。
執行需求
遠端 HTTP MCP 端點,無需本機安裝。需要帳號,並在無法進行瀏覽器登入的用戶端中透過 X-API-Key 標頭提供 API 金鑰;claude.ai 等沙箱用戶端改用 OAuth 電子郵件登入。需能連線至該託管服務。
安裝前請注意
X-API-Key 屬於機密,應避免寫入共用設定。新帳號有 50 個免費額度、效期 7 天;之後繼續使用 MCP/API 需付費 Pro 訂閱(網頁主控台購買的額度包無法開通 MCP/API)。匯出呼叫會在伺服器上產生短期檔案。資料為官方登記資料的自動衍生副本,不提供任何保證,以官方登記為準。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Handelsregister,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.jkbngb%2Fhandelsregister/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "handelsregister": {
      "type": "http",
      "url": "https://register.agentic-firmenbuch.at/mcp"
    }
  }
}

README

agentic-firmenbuch

Austria's entire company register, queryable by AI agents in plain language. Official master data, annual accounts and key ratios for every firm – served over MCP, answered on real numbers instead of hallucinations.

Try the playground  ·  Start free: 50 credits, 7 days  ·  Quickstart ↓

A live, automated data product over the Austrian Firmenbuch (free EU HVD / High Value Datasets), served through a multi-tenant MCP server. A deterministic Azure pipeline pulls the published Jahresabschluss (annual financial statement) filings from the official register, parses them, consolidates per company, computes ratios/growth/trends, and serves the result to MCP clients. The whole register holds ~640k legal entities; the served slice is currently ~341k and grows as the backfill progresses. Version 1 = facts + clean derivations only (no scoring, no third-party enrichment, no NACE, no AI summaries).

Also available: Germany and the wider DACH region. Alongside this Austrian product, a unified agentic-register endpoint serves both the Austrian Firmenbuch and the German Handelsregister / Unternehmensregister over a single MCP. It is listed in the official MCP registry as io.github.jkbngb/handelsregister (spec: handelsregister.server.json) and reachable at https://register.agentic-firmenbuch.at/mcp with the same account and the same access rules (free trial, then Pro). A search returns matches from both countries, tagged by country (AT / DE).

Quickstart

Use the hosted service – query official Firmenbuch data from an MCP client that accepts an HTTP header key (Claude Code, VS Code with GitHub Copilot, Cursor, …):

  1. Get an API key at agentic-firmenbuch.at. Every new account starts with 50 free credits, valid for 7 days (1 credit per company, so about 50 companies), one allowance shared by the web console and Claude. After the trial, access from Claude, Cursor or any MCP/API client needs Pro at €79/month plus VAT: unlimited queries within fair-use limits (10,000 calls per day, 20,000 export rows and 50 documents per month), cancel monthly. Credit packs are a web-console product and do not unlock MCP/API access. (Connecting via a sandboxed client like Claude Cowork/claude.ai grants the 50 credits on first connect, no key needed, see below.)
  2. Add the server. Claude Code (terminal), one line:
    bash
    claude mcp add --scope user --transport http agentic-firmenbuch https://mcp.agentic-firmenbuch.at/mcp --header "X-API-Key: <your-key>"
    GitHub Copilot / VS Code: code --add-mcp "{\"name\":\"agentic-firmenbuch\",\"type\":\"http\",\"url\":\"https://mcp.agentic-firmenbuch.at/mcp\",\"headers\":{\"X-API-Key\":\"<your-key>\"}}". Any other HTTP-MCP-Header client: URL https://mcp.agentic-firmenbuch.at/mcp, header X-API-Key: <your-key>.
  3. Ask in natural language, e.g. "Aktive GmbHs in Oberösterreich mit Bilanzsumme über 5 Mio. €, sortiert nach Umsatz." The agent calls search_companies / get_company_details and answers with official data – no SDK required.

Claude Cowork & claude.ai (sandboxed clients) don't take the API-key header – they connect via Settings → Connectors → Add custom connector with the URL https://mcp.agentic-firmenbuch.at/mcp and a one-time email login (OAuth, no key). Step-by-step with screenshots: agentic-firmenbuch.at/cowork.html.

Prefer to try before signing up? Use the playground.

Or run the pipeline yourself – clone, uv sync, uv run pytest (offline, no Azure). See Develop.

Available MCP tools

ToolPurpose
search_companiesFilter / rank Austrian companies by region, size, balance-sheet total, equity ratio, revenue, growth profile, management age, last filing year, status. Returns a compact result card per match.
get_company_detailsFull served profile of one company: identity, location, founding/filing years, size class, multi-year balance sheet + P&L, 13 computed ratios, growth, management, list of filings.
get_full_recordSuperset of get_company_details: full 317-position UGB taxonomy, passthrough unknown codes, completeness, GuV-years, signatories history, derivations registry.
get_company_historyFiling-by-filing time series of every reported position — one company, or a batch via fnrs (max 50; 1 credit per company found where credits apply).
find_peersK-nearest peer set for a company within its size class / region.
get_cohort_summaryAggregate statistics (counts, percentiles, distributions) for a filtered cohort.
get_coveragePer-Bundesland / per-Rechtsform / per-size-class coverage statistics for the served dataset.
list_sectorsAvailable legal-form (Rechtsform) and Bundesland codes for use in filters.
describe_fieldsSelf-describing field dictionary with type + null-rules + EBIT/EBITDA definition.
get_documentFetch the URL/blob key for an original filed annual statement (XML or PDF).
get_document_textReturn the extracted text of a filed annual statement (parsed XML/PDF) for direct reading.
list_documentsOne newest-first chronology of a company's Abschluss documents: filed annual statements plus register-held PDFs (Konzernabschluss, HV-Protokoll) with their Dokumentart.
search_personFind companies by an officer / representative (managing directors, board members, signatories) by name.
benchmark_companyPosition one company against its peer cohort (percentile ranks on key metrics).
list_eventsRegister-change events (name/seat/legal-form/capital/management changes, derived daily since 2026-07) for a company or cohort.
get_event_statsAggregate event statistics (counts by type/period) across a filtered cohort.
export_companies_csvExport a filtered company set as a CSV download (server-generated, time-limited link).
get_my_usageThe caller's own usage, plan, remaining trial credits and the upgrade link.
pingConnection test; always free.

All tools return a processed derivative of official Austrian Firmenbuch data (source: BMJ – Justiz, CC BY 4.0). Concretely: we ingest the published filings from the register, parse and consolidate them, compute ratios, and serve that from our own database — no web scraping, no LLM-generated summaries, no third-party data mixed in (V1). Every response carries provenance.data_version + built_at and names the original source, so the agent can attribute it correctly; for the authoritative record, the official Firmenbuch always governs.

Currently served: ~341,000 active legal entities across all Rechtsformen (GmbH, AG, KG, OG, EU, Genossenschaft, Privatstiftung, SE …). The full register has ~640,000 entities; the gap is companies without a published Jahresabschluss plus inactive/deleted entries, which are added step by step.

Documentation

Full index with the versioning convention (shipped _v1 specs vs. the forward ROADMAP.md + V2 design spec): docs/README.md. The headline documents:

DocWhat it is
docs/pipeline-step-samples.mdFile format + golden sample for every pipeline stage.
docs/FIELD_REFERENCE.mdServed field dictionary – every field each MCP tool returns, with type + null rules. Public page: felder.html.
ROADMAP.mdForward plan – status/priorities and the V2 direction (banks/insurers, GISA, Ediktsdatei).
docs/appendix_position_mapping.jsonFull 317-entry canonical position taxonomy → copied into products/agentic-firmenbuch/packages/core_at/…/mapping/.
docs/reference/Official source material (API reference, JAb 4.0 XSDs/Excel).

Monorepo layout (agentic-first)

This repository is the agentic-first monorepo umbrella. It separates source-agnostic shared code from per-source products, so another source-specific product can be added without touching the Austrian pipeline:

agentic-first/                       (this repo)├── packages/                        SHARED — source-agnostic, zero Firmenbuch/UGB knowledge│   ├── core/    (fbl_core)          lineage/meta + metric contracts, config, storage clients│   └── auth/    (fbl_auth)          signup, token issue/validate, metering, 00_accounts└── products/    └── agentic-firmenbuch/           AUSTRIA product (live) — README below        ├── packages/        │   ├── core_at/  (fbl_core_at)   UGB taxonomy, Firmenbuch domain models, ÖNACE, FI dirs        │   ├── firmenbuch_client, 99_registry, 90_ingest, 70_parse,        │   │   50_consolidate, 30_derive, 10_present, mcp_server, orchestration        │   └── …        └── tests/                   AT integration tests + golden fixtures

Additional source-specific products are added in their own separate repositories that consume packages/{core,auth} as a dependency (they are not scaffolded here). The precise 1:1 / adapt / product-local reuse boundary is the reuse table (Appendix R) of the technical spec, and the generic recipe is in docs/monorepo/ADDING_A_PRODUCT.md.

Product READMEs: agentic-firmenbuch · shared core · auth

Pipeline (numbered layers, 90 → 10)

99_registry (foundation: all companies)  →  90_raw (Blob)  →  70_parsed (Blob)  →  50_consolidated  →  30_derived  →  10_presentation  →  MCP                                                                        (Cosmos)            (Cosmos)        (Cosmos)   side: 00_accounts (MCP signup) · 00_directories (register-based FI flag, OeNB)   reserved for v2: 40_enriched, 20_scored

90_raw is the immutable source of truth (every downloaded XML/PDF, kept forever). 70_parsed is a write-through cache of the per-filing ParsedFiling JSON – always re-derivable from raw, so safe to drop/rebuild; it exists so a reprocess (re-consolidate/derive after a logic change) skips re-parsing all filings, and so the lineage inputs[] in each consolidated doc resolve to a real parsed document. 50/30/10 are the queryable Cosmos layers; 10_presentation is what the MCP serves.

LAYER_MAP – which code owns which layer

Each pipeline-stage package directory is prefixed with its layer number so the owner of every data layer is obvious. (Python module names can't start with a digit, so the importable package keeps its fbl_* name; the number is also exposed as a LAYER constant in each stage package.)

All AT stage packages live under products/agentic-firmenbuch/packages/ (abbreviated …/ below).

LayerPackage (dir)importStore / containerPydantic modelSample
99_registry…/99_registryfbl_registryCosmos 99_registryRegistryDoc§15a.0 doc
90_raw…/90_ingestfbl_ingestBlob 90-rawraw Meta + manifestStage 0
70_parsed…/70_parsefbl_parseBlob 70-parsedParsedFilingStage 1
50_consolidated…/50_consolidatefbl_consolidateCosmos 50_consolidatedConsolidatedCompanyStage 2
30_derived…/30_derivefbl_deriveCosmos 30_derivedDerivedCompanyStage 3
10_presentation…/10_presentfbl_presentCosmos 10_presentationPresentedCompanyStage 4

Un-numbered. Shared (in packages/): core (fbl_core, source-agnostic lineage/meta + metric contracts, config, storage) and auth (fbl_auth, 00_accounts). AT-specific (in products/agentic-firmenbuch/packages/): core_at (fbl_core_at, UGB taxonomy + Firmenbuch domain models + ÖNACE + FI directories), firmenbuch_client (fbl_firmenbuch_client, HVD SOAP adapter), orchestration (fbl_orchestration, the --mode Job entrypoint), mcp_server (fbl_mcp_server, serving). Plus products/agentic-firmenbuch/tests/ (fixtures), docs/ (incl. API probe findings).

Build status – live in production ✅

All build stages are implemented and the service is live in production: the multi-tenant MCP server is deployed, the daily pipeline runs on a cron, and the backfill keeps growing the served slice. Since the V1 launch the register has gained semantic vector search, ÖNACE/WZ industry classification, register-change events, German Handelsregister coverage through the unified endpoint, and the trial-then-Pro access model described above. ruff + mypy --strict + pytest (with an 80% coverage gate) are green in CI; deployment of the backend is manual after review.

Develop

bash
uv sync                            # create the workspace venvuv run pytest                      # all fixture/unit/integration tests (offline)uv run mypy packages products      # strict types (shared + products)uv run ruff check packages products  # lint

True end-to-end (live): a separate, env-flag-guarded test runs a few real FNRs through every layer (API → 90_raw → … → 10_presentation → MCP). Skipped by default.

bash
FBL_E2E=1 uv run pytest products/agentic-firmenbuch/tests/e2e -q  # needs FIRMENBUCH_API_KEY

See products/agentic-firmenbuch/tests/e2e/. It uses in-memory stores + a tiny real pull – no Azure, no full backfill (deployment is manual after review).

License & data

Licensed under the MIT License (see LICENSE).

The data originates from the Austrian Firmenbuch (BMJ – Justiz), an EU High Value Dataset licensed under CC BY 4.0. Any redistribution of the data must keep the attribution "Quelle: Österreichisches Firmenbuch / BMJ – Justiz (CC BY 4.0)" (see NOTICE).

Disclaimer – no warranty, use at your own risk

This software and any data it produces are provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or implied (see the MIT License). The processed data is derived automatically from the public Firmenbuch and is provided without any guarantee of correctness, completeness, timeliness, or fitness for a particular purpose. It is not legal, tax, or financial advice and does not replace an official Firmenbuch extract – the official register always prevails.

Use of this software and the data is entirely at your own risk. To the maximum extent permitted by law, the authors and copyright holders accept no liability for any direct, indirect, incidental, or consequential damages arising from its use. You are responsible for complying with the CC BY 4.0 attribution requirement and all applicable data-protection, competition, and copyright law when using or redistributing the data.

來源:README.md,提交 5491d30

工具

19

ping

Liveness / server info

Liveness probe: confirms the unified register server is up. Read-only. Parameters: - check_backends (optional, default false): when true, additionally performs a cheap connection handshake against every configured country backend and reports per-country reachability ("ok" / "unreachable"). Returns {status, server, countries, provenance} - countries maps each configured country code to its backend product name and, with check_backends, its live reachability. Use get_coverage for data completeness; this tool only says whether the service is up.

輸入參數check_backends

get_coverage

Dataset coverage per country

Dataset coverage and the capability matrix, per country. Read-only. CALL THIS FIRST before concluding that something does not exist in a country. Parameters: - country (optional, default "all"): "AT" | "DE" | "all" - which countries to include. Returns {countries: {<code>: <that backend's coverage payload>}, capabilities, countries_unavailable}. Each country section is the country backend's own coverage dashboard (AT: parsed-financials counts by format/status; DE: per-Bundesland counts + fill rates - the DE backfill is still running, so a low count means "not crawled yet", not "does not exist"). ``capabilities`` is the machine-readable matrix of what each country supports (financials, documents, events windows, filters); a country that cannot be reached appears under ``countries_unavailable`` with the error instead of failing the whole call. For valid filter values use describe_fields; for per-company data use search_companies.

輸入參數country

describe_fields

Describe fields & capabilities

Schema self-description: the unified id scheme, which filters exist, which countries support which capability, and each country's own field catalog. Read-only. Parameters: - country (optional, default "all"): "AT" | "DE" | "all" - whose field catalogs to include. Returns {id_scheme, capabilities, countries, countries_unavailable}. ``id_scheme`` documents the unified company_id ("AT:123456a", "DE:D2601_HRB135076"; bare national ids are accepted, responses always return the prefixed form). ``capabilities`` is the per-country capability matrix including each country's supported unified filters - a filter absent for a country is applied to the others and reported in a notice, never silently dropped. ``countries`` carries each backend's own describe_fields payload (code tables, null rules, tool tiers). Call once up front when unsure which filter or tool to use; it returns no company data itself.

輸入參數country

search_companies

Search companies (AT + DE)

Find companies across the Austrian Firmenbuch and the German Handelsregister - START HERE for any company lookup. Read-only. Parameters: - filters (optional): every field optional, AND-combined. Shared core (both countries): name (substring), query (MEANING-based hybrid search over the registered purpose - both countries), status (active|inactive|all, default all), legal_form, bundesland, city, postal_code (prefix; AT PLZ 4-digit, DE 5-digit), near {place | postal_code, radius_km} (radius search, matches from EVERY queried country within the radius - works across the border), nace_section (A-U; OENACE == WZ == NACE Rev. 2, so one industry code filters both countries), gegenstand (literal substring over the registered activity text), manager_name (person search), company_ids (prefixed watchlist, e.g. ["AT:123456a", "DE:D2601_HRB135076"], max 100), nace_division/group/class, founded_year_min/max, and the balance-sheet screens size_gkl (AT W/K/M/G or DE kleinst/klein/mittel/ gross, translated per register), bilanzsumme_min/max, equity_ratio_min/max (fraction, 0.35 = 35 %), has_guv, growth_profile - in Germany these match only companies with a parsed Jahresabschluss (rollout per Bundesland, see get_coverage; a notice states the scope). AT-only today (see describe_fields capabilities): revenue/employees ranges, has_guv_latest, last_filing_year_min, gf_age_min, event_signal/since/until. DE-only: registergericht, capital_min/max (Stammkapital). Country aliases (geschaeftszweig, oenace_*, wz_section, fnrs, stammkapital_*) are accepted. - sort (optional): {field, descending}. AT fields: bilanzsumme (default), revenue, equity_ratio, employees, last_filing_year, revenue_growth_1y/3y/5y, distance. DE fields: name, register_nummer, capital, bilanzsum

輸入參數pagesortaftercountryfilterspage_sizeexact_count

get_company_details

Company profile (AT + DE)

Full profile for ONE company, routed by its unified id. Read-only. Parameters: - company_id (required): "AT:{fnr}" (e.g. "AT:123456a") or "DE:{court}_{type}{number}" (e.g. "DE:D2601_HRB135076"); bare national ids are accepted too. Take it from a search card's ``company_id``. - max_signatories (optional, DE only): cap on the served officer list (DE default 15, 0 = all); ignored for AT. Returns the country backend's full profile plus ``country`` and the prefixed ``company_id``. AT: identity, location, per-year Bilanz + GuV, ratios, growth, filings, management, events. DE: identity, seat, Stammkapital, Gegenstand, WZ/NACE classification, managing directors (birth year only), and the parsed Jahresabschluss (Bilanz, ratios, GuV where published) for companies the rollout has reached - ``financials.reporting_status`` says whether figures exist, the source publishes none, or the company has not been processed yet, so never report missing German figures as zero. Unknown id -> {error: not_found}. Use search_companies first when you only have a name.

輸入參數company_id必填max_signatories

get_document

Official register document (DE)

On-demand official register document for ONE German company. Read-only. Parameters: - company_id (required): "DE:{court}_{type}{number}" (e.g. "DE:D2601_HRB135076"); a bare German id works too. Austria is not supported here (its document flow is different). - kind (optional): "AD" = Aktueller Abdruck (current register extract, default) or "CD" = Chronologischer Abdruck -- the official Handelsregister abstract PDF; or "JA" = Jahresabschluss -- the company's newest official annual financial statement as published by the Unternehmensregister (served as the official HTML document, no PDF exists at the source). Returns a short-lived download link: {company_id, kind, url, bytes, cached, available, source, expires_at, expires_in_seconds} (plus year, stichtag for "JA"). AD/CD are fetched from handelsregister.de on demand (first call ~10 s, then cached); JA is served from the stored official publication. When the register holds nothing for that kind, ``available`` is false with a ``note`` (never a dead link). A non-DE id returns an error.

輸入參數kindcompany_id必填

export_companies_csv

Export companies to CSV (AT + DE)

Export a matched company set as downloadable CSV files (lead lists). Read-only over company data; each call writes new short-lived export files (auto-deleted after ~1 day). Parameters: - filters (optional): EXACTLY the same unified filters as search_companies. - sort (optional): same as search_companies (applies where the country supports the field). - max_rows (optional, default 1000, max 10000): per-country row ceiling. - country (optional, default "all"): "AT" | "DE" | "all". Returns {countries: {<code>: {download_url, rows, columns, ...}}, notices}. ONE CSV per country (semicolon-separated, UTF-8 BOM, Excel-ready): each register exports its own column set - DE files have no financial columns yet (blank would wrongly read as zero). Download links are signed and valid ~60 minutes. A filter a country does not support excludes that country with a notice, like search_companies. For browsing/ranking on screen use search_companies instead.

輸入參數sortcountryfiltersmax_rows

find_peers

Find peer companies (incl. cross-border)

Companies most similar to a given one - optionally ACROSS THE BORDER. Read-only. Parameters: - company_id (required): "AT:{fnr}" or "DE:{court}_{type}{number}" (bare national ids accepted), from a search card. - n (optional, default 10): how many peers per country. - cross_border (optional, default false): when true, additionally returns ``peers_abroad`` - the companies in the OTHER country whose registered purpose is semantically closest to the reference company's activity text. Returns {company_id, country, peers_home, home_envelope, peers_abroad?, notes}. ``peers_home`` uses the home register's own peer logic (AT: same size class, same industry preferred, nearest by Bilanzsumme; DE: semantic-first by registered purpose). ``peers_abroad`` is a MEANING-based match, not a size or financial benchmark - the honest cross-border comparison given the countries' different data depth (see notes). Empty peers_home means the id is unknown or the company lacks the data its register ranks by. For a strict filtered list use search_companies; for aggregates use the country server's cohort tools.

輸入參數ncompany_id必填cross_border

search_person

Search a person across registers

Find every company a person runs or represents - across BOTH registers in one call (cross-border person search). Read-only. Parameters: - name (required): person name substring, case-insensitive, e.g. "Mustermann". - country (optional, default "all"): "AT" | "DE" | "all". - page_size (optional, default 25): results per country. - status (optional, default "all"): "active" | "inactive" | "all". Returns the merged search_companies envelope ({countries, results, per_country, notices}) plus ``person_query``; every result card carries ``country``, ``company_id`` and the matched manager. AT matches the primary managing director, DE matches all managing directors AND registered signatories. IMPORTANT: matching is by name and the registers publish birth YEAR only - a shared name across companies or countries does not prove the same person (the notice says so; use birth years and context to corroborate). For general company search use search_companies with other filters; manager_name can be combined there too.

輸入參數name必填statuscountrypage_size

list_events

Register change feed (AT + DE)

Cross-company, cross-country feed of register CHANGES, newest first - the market-watch / deal-sourcing surface. Read-only. Parameters (all optional, AND-combined): - types: any of the SUPERSET enum - founding, new_registration, deletion, deletion_announced, name_change, seat_change, legal_form_change, capital_change, management_change, management_join, management_leave, gegenstand_change, merger, split, conversion, contribution, consolidation, division, shareholder_capital_change. Each country's feed carries a SUBSET; a type not in a country's feed is skipped for that country (reported in notices), and a country with none of the requested types is excluded. Note new_registration (DE, a discovery date) and founding (AT, a register event) are distinct - see describe_fields. - since / until: ISO dates. Default window: last 30 days. - bundesland: full state name. - nace_section (A-U, both countries); nace_division (AT only); legal_form (AT only). - company_ids: prefixed watchlist; AT filters the whole list, DE filters ONE id at a time (pass a single DE id, or query DE separately). - country: "AT" | "DE" | "all" (default). page (1), page_size (25). Returns {countries, events, per_country, windows, notices}. ``events`` are merged newest-first, each with ``country`` and a prefixed ``company_id``; AT events add before/after values only for the detailed types. ``windows`` states each country's data availability (AT: detailed >= 2026-07-01, coarse >= ~2020; DE: >= 2026-07-30) so an empty stretch is never mistaken for missing data. For aggregate counts use get_event_stats; for one company's history use get_company_details.

輸入參數pagesincetypesuntilcountrypage_sizebundeslandlegal_formcompany_idsnace_sectionnace_division

get_event_stats

Register change statistics

Aggregate counts of register changes by type and region, per country. Read-only. Parameters (all optional): since / until (default last 30 days); bundesland; nace_section; nace_division (AT); legal_form (AT); country ("AT" | "DE" | "all"). Returns {countries, per_country, windows, notices}, each country's block being its own {total, by_type, by_bundesland}. Only AT exposes event statistics today; DE is reported in notices as not yet available (never as zero). For the individual changes use list_events.

輸入參數sinceuntilcountrybundeslandlegal_formnace_sectionnace_division

get_company_history

Financial history of a company

Per-year financial-metric history for ONE company, routed by its unified id. Read-only. Parameters: - company_id (required): "AT:{fnr}" or "DE:{court}_{type}{number}" (bare national ids accepted), from a search card. - metrics (optional, AT only): names of the metrics to return (e.g. bilanzsumme, umsatzerloese, equity_ratio); omitted = all. Ignored for DE. Returns the backend's history payload plus ``country`` and the prefixed ``company_id``: per-metric {year: value} with latest/latest_year. AT serves the parsed Bilanz/GuV/ratio series. DE serves the parsed Jahresabschluss series where the company has filed and its Bundesland is loaded; an empty series means not-filed or not-yet- loaded, never zero (see get_company_details financials.reporting_status). For a single snapshot use get_company_details; for the complete record use get_full_record.

輸入參數metricscompany_id必填

get_full_record

Full multi-year record (AT)

The complete multi-year record for ONE company: every balance-sheet and P&L position's full per-year history, completeness flags and lineage. Read-only. The heaviest read - use get_company_details for a normal profile. Parameters: - company_id (required): "AT:{fnr}" (bare FNR accepted). Austria only today; a German id returns a clear error (Germany does not serve a full parsed record yet). Returns the AT backend's full-record payload plus ``country`` and the prefixed ``company_id``. Includes unknown-code passthrough and the filing years covered.

輸入參數company_id必填

list_documents

List filing documents of a company (AT)

Chronology of a company's filing documents (metadata, newest first). Read-only. Parameters: - company_id (required): "AT:{fnr}" (bare FNR accepted). Austria only; for the German official register abstract use get_document with a "DE:" id instead. Returns the AT backend's document list plus ``country`` and the prefixed ``company_id``: each entry has type, Stichtag, financial_year, document_ref, format and whether it was parsed. Feed a document_ref to get_document_text for the extracted text.

輸入參數company_id必填

get_document_text

Extract text of a filing document (AT)

Extracted text of ONE Austrian filing document, by its document key. Read-only. Parameters: - doc_key (required): the document_ref from list_documents (an Austrian filing key). - max_chars (optional, default 40000, clamped 1000-120000): truncation ceiling. Returns {doc_key, text, truncated, ...} with the filing's Stichtag for citation. Austria only today. Use list_documents to discover the key; for the German official register abstract use get_document.

輸入參數doc_key必填max_chars

list_sectors

List sectors & value lists (AT)

The value lists for filtering - legal forms, size classes - and, with a query word, the matching OENACE sectors with the exact nace_* filter to use. Read-only. Parameters: - query (optional): a category word (e.g. "Brauerei", "software"); returns ``matches`` with each sector's level, code, label and the nace_* filter value for search_companies. Omitted: the legal-form and size-class value lists with counts. Served from the Austrian backend; the industry codes are OENACE == WZ == NACE Rev. 2, identical for both countries, so a resolved code also filters the German register. The value lists and counts themselves are Austrian (a notice says so). It returns no company data - call it once up front to resolve a filter value.

輸入參數query

get_cohort_summary

Cohort summary (AT + DE)

Aggregate statistics for a cohort of companies, per country. Read-only. Parameters: - dimension (required): "gkl" (UGB size class, AT only), "bundesland", or "legal_form" (alias size_gkl -> gkl). - value (required): the cohort value (e.g. bundesland "Wien", legal_form "GmbH"). - country (optional, default "all"): "AT" | "DE" | "all". Returns {countries, dimension, value, per_country, notices}. ``bundesland`` and ``legal_form`` fan out to every supporting country; ``gkl`` is Austrian-only (no German size-class facet) and excludes DE with a notice. Each country's own cohort payload sits under ``per_country`` (the registers aggregate different metrics, so they are reported side by side, not force-merged). For one company use get_company_details; for a filtered list use search_companies.

輸入參數value必填countrydimension必填

benchmark_company

Benchmark a company vs peers (AT)

Benchmark ONE company against its size-class cohort: headline metrics, percentile ranks and the nearest peers. Read-only. Parameters: - company_id (required): "AT:{fnr}" (bare FNR accepted). Austria only (needs parsed financials); a German id returns a clear error. - n (optional, default 10): how many nearest peers to return. Returns the AT backend's benchmark payload plus ``country`` and the prefixed ``company_id``: headline figures, ``percentiles`` within the UGB size class, and the nearest peers with a recency note. For a cross-border meaning-based peer set use find_peers with cross_border=true.

輸入參數ncompany_id必填

get_my_usage

My API usage

Your own API-key usage across both registers: call count and weighted compute-units, per tool. Read-only. Parameters: - window (optional, default "today"): "today" | "yesterday" | "month_to_date" | "last_30_days" | "all". Returns only the calling key's own usage (totals + per-tool breakdown) for that window - never another user's data and never the email behind the key. One meter spans AT and DE, since the facade is the single billing point. Use it to check your consumption against the plan's rate limits.

輸入參數window

版本歷史

4
  1. v1.0.3最新Oct 29, 2026
  2. v1.0.2Oct 22, 2026
  3. v1.0.1Oct 8, 2026
  4. v1.0.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分