Bundesanzeiger Company Filings & Financials
Pricing
from $0.96 / 1,000 filing saveds
Bundesanzeiger Company Filings & Financials
Search official Bundesanzeiger company filings and export annual-account metadata, reporting periods, document links, and published XBRL financial figures.
Pricing
from $0.96 / 1,000 filing saveds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Search official public Bundesanzeiger company filings and export filing metadata, reporting periods, official document links, available notice text, and published inline-XBRL financial figures.
The Actor is designed for recurring German-company due diligence, annual-account research, audit evidence, and filing-change monitoring.
What does this Actor do?
The Actor opens the public German Federal Gazette search service and returns one structured dataset item per publication.
It can:
- search one or many company names or filing keywords;
- focus on accounting and financial reports;
- search business disclosures, capital-market notices, and other Gazette areas;
- apply publication-date filters;
- follow result pagination within a coherent source session;
- extract reporting periods from annual-account titles;
- open filing details and retain available notice text;
- follow official ESEF report links;
- normalize published inline-XBRL figures and retain their provenance attributes;
- cap results globally and per query for predictable monitoring runs.
The Actor does not invent missing financial values. A filing without an exposed ESEF report remains a useful filing-metadata record, while unavailable financial fields are omitted.
Who is it for?
Due-diligence and KYB teams
Check when a German counterparty published annual accounts and retain source-linked evidence for periodic reviews.
Credit and investment analysts
Collect filing periods, publication dates, revenue, profit or loss, assets, equity, liabilities, and broader XBRL facts when the issuer published them.
Audit and accounting teams
Build a repeatable evidence set for annual-account publication checks without copying rows manually from the Gazette interface.
Corporate-intelligence teams
Run the same company watchlist on a schedule and compare filing keys, dates, periods, or financial facts with earlier datasets.
Data engineering teams
Send typed filing records to a warehouse, spreadsheet, webhook, or downstream entity-resolution pipeline.
Why use this Actor?
Bundesanzeiger uses session-scoped Wicket links and separate ESEF report pages.
This Actor manages that navigation in one run and turns the result into integration-ready JSON.
Useful differentiators include:
- official Bundesanzeiger provenance on every row;
- both filing metadata and available financial facts in one record;
- normalized values plus raw XBRL value, context, unit, decimals, and scale;
- a per-query cap so one broad company name does not consume a whole watchlist run;
- graceful metadata-only output when a filing has no structured report;
- no login requirement for the supported public workflow.
What data can I extract?
| Field | Description |
|---|---|
query | Company name or keyword that produced the result |
searchArea | Requested Gazette section |
companyName | Filing party or company displayed by Bundesanzeiger |
location | Published company location |
area | Source filing area |
publicationTitle | Official publication title |
publicationDate | Date displayed by Bundesanzeiger |
reportingPeriodStart | Parsed annual-account period start, when present |
reportingPeriodEnd | Parsed annual-account period end, when present |
detailUrl | Session-scoped official filing detail link |
documentUrl | Official ESEF report link, when exposed |
documentName | Published XHTML report file name |
noticeText | Available detail text, capped at 50,000 characters |
keyFinancials | Selected normalized revenue, profit/loss, assets, equity, liabilities, and currency |
financialFacts | Published numeric XBRL facts with raw and normalized values |
sourceUrl | Official result-page provenance |
source | Bundesanzeiger |
fetchedAt | ISO extraction timestamp |
financialFacts can contain issuer-specific concepts as well as standard IFRS concepts.
Use concept, contextRef, and unitRef when joining facts into your own accounting model.
How much does it cost to extract Bundesanzeiger company filings?
The Actor uses pay-per-event pricing:
- one run started event: $0.005;
- one filing saved event for each accepted dataset row;
- BRONZE filing price: $0.0016 per filing;
- lower filing prices apply on higher Apify tiers.
Financial facts included inside a filing row do not create a separate charge event.
Example BRONZE Actor charges:
| Useful output | Estimated Actor charge |
|---|---|
| 1 filing | $0.0066 |
| 5 filings | $0.0130 |
| 25 filings | $0.0450 |
| 100 filings | $0.1650 |
These are Actor charges before any plan-specific platform usage. Start with a small limit, inspect the output, and then scale a scheduled task.
How to run the Actor
- Add one or more legal company names to
queries. - Keep
matchModeset toexact_companyfor precision-safe monitoring. - Keep
searchAreaset toaccountingfor annual accounts. - Set
maxItemsPerQueryfor fair watchlist coverage. - Set the total
maxItemsbudget. - Keep
extractFinancialsenabled when you need published ESEF facts. - Run the Actor and export the default dataset as JSON, CSV, Excel, XML, or RSS.
A good first input is:
{"queries": ["Siemens Aktiengesellschaft"],"matchMode": "exact_company","searchArea": "accounting","maxItems": 2,"maxItemsPerQuery": 2,"includeDetails": true,"extractFinancials": true,"maxFinancialFacts": 100}
Input reference
queries
Legal company names, or filing keywords when matchMode is full_text.
matchMode
Controls which Bundesanzeiger search hits become dataset rows:
exact_company(default) compares normalized legal names and rejects related entities that only mention the query in filing text;company_containsaccepts rows whose displayed company name contains the query;full_textpreserves all source results, including records that matched only inside publication text.
Use exact_company for recurring due diligence and watchlists. Select full_text deliberately for broad filing-keyword research.
searchArea
Supported values:
accountingfor annual accounts and financial reports;businessfor business disclosures;capital_marketfor capital-market notices;official,unofficial,judicial, orvariousfor those Gazette sections;allfor a broad search.
fromDate and toDate
Optional publication-date boundaries in YYYY-MM-DD format.
maxItems
Maximum unique filing rows across the run. Allowed range: 1–1,000.
maxItemsPerQuery
Maximum rows accepted for each query. Use this for fair multi-company monitoring.
includeDetails
When enabled, the Actor opens the filing detail and includes available text.
extractFinancials
When enabled, the Actor follows official ESEF links and parses published inline-XBRL numeric facts.
maxFinancialFacts
Maximum XBRL facts retained per filing. The default is 250.
Output example
A current real workflow produces records shaped like this:
{"query": "Siemens Aktiengesellschaft","searchArea": "accounting","companyName": "Siemens Aktiengesellschaft","location": "Berlin und München","publicationTitle": "Jahres- und Konzernabschluss zum Geschäftsjahr vom 01.10.2021 bis zum 30.09.2022","publicationDate": "01/11/2023","reportingPeriodStart": "2021-10-01","reportingPeriodEnd": "2022-09-30","documentName": "siemens-20220930.xhtml","keyFinancials": {"currency": "EUR","revenue": 71977000000,"profitLoss": 4392000000,"assets": 151502000000,"equity": 54805000000,"liabilities": 96697000000},"financialFacts": [{"concept": "ifrs-full:Revenue","label": "Revenue","value": 71977000000,"rawValue": "71.977","contextRef": "CYTD","unitRef": "EUR","decimals": "-6","scale": 6}],"source": "Bundesanzeiger","fetchedAt": "2026-09-19T06:43:29.850Z"}
Session-scoped URLs can expire. Persist the company, title, date, period, document name, and source metadata as the durable record.
Monitoring German annual accounts
Create an Apify Task with your company watchlist.
Use a small maxItemsPerQuery, schedule the Task weekly or monthly, and compare each new dataset with the previous run.
A practical change key is:
companyName + publicationTitle + publicationDate
Send new keys to your compliance queue, CRM, warehouse, or notification workflow.
The Actor returns current source results. It does not maintain cross-run state or send alerts by itself.
Working with financial facts
keyFinancials is a convenience projection of standard concepts found in the report.
financialFacts is the richer provenance layer.
For robust analysis:
- inspect the concept namespace;
- use
contextRefto distinguish periods or dimensions; - use
unitRefand currency context; - retain
rawValuefor auditability; - use normalized
valuefor calculations; - validate issuer-specific concepts before comparing companies.
A report may contain current and comparative values. The convenience projection selects the first published matching concept, while the fact list preserves the available contexts.
Reliability and limitations
Bundesanzeiger result and detail links are session-scoped.
The Actor keeps cookies together for search, pagination, filing details, and official report access.
Transient network errors, HTTP 429, and temporary 5xx responses receive bounded retries.
Known limitations:
- not every filing exposes an ESEF XHTML report;
- older or exemption filings may provide metadata but no structured figures;
- official document URLs may expire with the source session;
full_textmode can include related entities because the source may match publication text rather than the displayed company name;exact_companyintentionally omits related subsidiaries, consolidated entity lists, and spelling variants that do not normalize to the requested legal name;- XBRL taxonomies and issuer-specific concepts vary;
- the Actor does not provide accounting advice or restate source figures;
- broad
allsearches can be less precise thanaccountingsearches.
Use exact_company, exact legal names, and source-specific filters when precision matters.
Export and integration workflows
Spreadsheet review
Export the default dataset to Excel or CSV and filter on company, date, period, and filing title.
Data warehouse
Load JSON records into a raw filing table, then expand financialFacts into a child fact table keyed by filing and context.
Compliance automation
Use a webhook after a scheduled run, compare source keys, and create a review only for unseen publications.
Research pipeline
Join records to an internal German-company identifier, then keep the Bundesanzeiger fields as the official publication provenance.
API usage with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/bundesanzeiger-company-filings-financials').call({queries: ['BASF SE'],searchArea: 'accounting',maxItems: 5,maxItemsPerQuery: 5,extractFinancials: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/bundesanzeiger-company-filings-financials').call(run_input={'queries': ['BASF SE'],'searchArea': 'accounting','maxItems': 5,'maxItemsPerQuery': 5,'extractFinancials': True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST \'https://api.apify.com/v2/acts/automation-lab~bundesanzeiger-company-filings-financials/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"queries": ["Deutsche Bank Aktiengesellschaft"],"searchArea": "accounting","maxItems": 3,"maxItemsPerQuery": 3,"extractFinancials": true}'
MCP setup for Claude Desktop, Cursor, and VS Code
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/bundesanzeiger-company-filings-financials"
Claude Desktop
Use this server configuration in Claude Desktop:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/bundesanzeiger-company-filings-financials"}}}
Cursor and VS Code
Use the same MCP server URL in Cursor or VS Code's MCP settings. The server exposes this Actor as an Apify tool under your own client configuration.
Example prompts:
- “Find the latest Bundesanzeiger annual-account publications for BASF SE.”
- “Extract published revenue and equity facts for this German-company filing.”
- “Run my three-company annual-account watchlist and return source-linked changes.”
AI-generated interpretations should be checked against the official filing and its XBRL context.
Legality, privacy, and responsible use
The Actor accesses public Bundesanzeiger pages without a private account. It is an independent extraction tool and is not affiliated with, endorsed by, or certified by Bundesanzeiger Verlag.
The Actor does not use AI and sends no input or source records to an AI model provider. Optional MCP clients may process results under the user's own model and provider configuration.
It creates no external cache or company-controlled copy. Apify datasets, key-value stores, and logs follow the user's Apify account retention settings and can be deleted through Apify storage controls.
You are responsible for:
- using the data for a lawful purpose;
- respecting applicable terms, database rights, and rate limits;
- applying GDPR and other privacy obligations;
- validating material decisions against the official publication;
- keeping schedules and limits proportionate;
- avoiding claims that a missing result proves a company has no filing.
This Actor is a data-extraction tool, not legal, audit, tax, credit, or investment advice.
Troubleshooting
Why does a filing have no keyFinancials?
The publication may not expose an official ESEF XHTML report, or it may use concepts outside the convenience mapping. Check documentName, financialFacts, and the official filing.
Why do I see a related company?
Bundesanzeiger full-text search can include consolidated-account relationships and related issuer names. Use the exact legal name, the accounting area, and downstream entity matching.
Why are document links unavailable later?
The source uses session-scoped links. Save durable filing metadata and rerun the query to obtain a fresh source session.
Why did I receive fewer rows than maxItems?
The source may have fewer matching publications, maxItemsPerQuery may be lower, or duplicate filing keys may have been removed.
How can I reduce run time?
Set includeDetails and extractFinancials to false for a metadata-only monitoring pass. Lower maxFinancialFacts when you need only a bounded sample of report facts.
Related Automation Lab Actors
Use these when the buyer job needs a different official surface:
- Germany Handelsregister Scraper for registry and corporate filing records rather than Bundesanzeiger financial publications.
- North Data Company, Officers & Financials Scraper for company profiles, officers, and timeline enrichment from North Data.
- German Insolvency Announcements Scraper when the workflow is official insolvency notices rather than annual accounts.
FAQ
Does the Actor require login?
No. The supported workflow uses public search, filing, and official ESEF pages.
Can it search several companies in one run?
Yes. Add several values to queries and set maxItemsPerQuery for balanced coverage.
Does it download PDFs?
No. It follows official XHTML reports for structured facts and records available document provenance.
Are financial figures always present?
No. They are included only when published structured facts are available through the filing.
Can I schedule recurring monitoring?
Yes. Save the input as an Apify Task, add a schedule, and compare dataset keys across runs.
Does the Actor identify the newest filing automatically?
It preserves source order and obeys your limits. Verify chronology using publicationDate and reporting periods.
Can I use output as final due-diligence evidence?
Use it as source-linked research evidence, then validate material conclusions against the official publication.