Bundesanzeiger Company Filings & Financials avatar

Bundesanzeiger Company Filings & Financials

Pricing

from $0.96 / 1,000 filing saveds

Go to Apify Store
Bundesanzeiger Company Filings & Financials

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

Automation Lab

Maintained by Community

Actor 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?

FieldDescription
queryCompany name or keyword that produced the result
searchAreaRequested Gazette section
companyNameFiling party or company displayed by Bundesanzeiger
locationPublished company location
areaSource filing area
publicationTitleOfficial publication title
publicationDateDate displayed by Bundesanzeiger
reportingPeriodStartParsed annual-account period start, when present
reportingPeriodEndParsed annual-account period end, when present
detailUrlSession-scoped official filing detail link
documentUrlOfficial ESEF report link, when exposed
documentNamePublished XHTML report file name
noticeTextAvailable detail text, capped at 50,000 characters
keyFinancialsSelected normalized revenue, profit/loss, assets, equity, liabilities, and currency
financialFactsPublished numeric XBRL facts with raw and normalized values
sourceUrlOfficial result-page provenance
sourceBundesanzeiger
fetchedAtISO 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 outputEstimated 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

  1. Add one or more legal company names to queries.
  2. Keep matchMode set to exact_company for precision-safe monitoring.
  3. Keep searchArea set to accounting for annual accounts.
  4. Set maxItemsPerQuery for fair watchlist coverage.
  5. Set the total maxItems budget.
  6. Keep extractFinancials enabled when you need published ESEF facts.
  7. 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_contains accepts rows whose displayed company name contains the query;
  • full_text preserves 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:

  • accounting for annual accounts and financial reports;
  • business for business disclosures;
  • capital_market for capital-market notices;
  • official, unofficial, judicial, or various for those Gazette sections;
  • all for 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:

  1. inspect the concept namespace;
  2. use contextRef to distinguish periods or dimensions;
  3. use unitRef and currency context;
  4. retain rawValue for auditability;
  5. use normalized value for calculations;
  6. 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_text mode can include related entities because the source may match publication text rather than the displayed company name;
  • exact_company intentionally 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 all searches can be less precise than accounting searches.

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 os
from apify_client import ApifyClient
client = 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().items
print(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.

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.

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.

Use these when the buyer job needs a different official surface:

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.