Bundesanzeiger Scraper avatar

Bundesanzeiger Scraper

Pricing

from $1.89 / 1,000 publications

Go to Apify Store
Bundesanzeiger Scraper

Bundesanzeiger Scraper

Scrape Bundesanzeiger, Germany's Federal Gazette: annual financial statements, company and shareholder notices, court and insolvency notices and capital market filings with company, city, title, date and fiscal year. Export JSON, CSV or Excel.

Pricing

from $1.89 / 1,000 publications

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Bundesanzeiger Scraper

Bundesanzeiger Scraper searches the Bundesanzeiger, Germany's Federal Gazette, and exports every matching publication: annual financial statements and other financial reports, company and shareholder notices, court and insolvency notices, capital market filings and official announcements.

Search by company name, register number or keyword, filter by area, one of 62 categories and publication date, and get one clean record per publication: company, city, area, title, publication date, fiscal year start and end, notes on supplements, the subsidiaries exempted by a group report, court case numbers, ISINs and BAnz references. Up to 100 results per request, sorted newest first.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor or any other LLM to start using this Actor.

Use the Apify Actor "parsebird/bundesanzeiger-scraper" (Bundesanzeiger Scraper) to search Germany's Federal Gazette bundesanzeiger.de and get its publications as structured data. Call it with the apify-client package: Python `ApifyClient("<APIFY_TOKEN>").actor("parsebird/bundesanzeiger-scraper").call(run_input={...})`, or JavaScript `new ApifyClient({ token }).actor('parsebird/bundesanzeiger-scraper').call({...})`, then read items from the run's default dataset. Inputs (all optional): query (string: company name, register number such as "HRB 719915", court, place or keyword), area ("" all areas default, "22" Rechnungslegung/Finanzberichte = financial reports, "6" Gesellschaftsbekanntmachungen = company announcements, "5" Gerichtlicher Teil = judicial notices, "7" Kapitalmarkt = capital market, "1" Amtlicher Teil = official part, "2" Nichtamtlicher Teil, "8" Verschiedene Bekanntmachungen), category (string id of a subcategory that replaces area, e.g. "67" annual financial statements, "69" half-yearly reports, "63" §264 HGB exemptions, "1" AG/SE notices, "3" GmbH/UG notices, "59" insolvency proceedings, "58" voting rights notifications, "57" managers' transactions, "56" inside information), companyNameMustMatch (bool, default false: keep only publications whose company name contains every word of query), dateFrom and dateTo (string "YYYY-MM-DD" or "DD.MM.YYYY", publication date range), sortBy ("newest" default, "oldest", "name", "relevance"), maxItems (int, default 10), proxyConfiguration (object, default no proxy). Each item has entity_name, entity_city, publication_area, publication_area_code, publication_title, publication_date (DD.MM.YYYY), publication_date_iso, fiscal_year_start, fiscal_year_end, notes (array, e.g. "Ergänzung der Veröffentlichung vom 06.05.2022"), details (array of extra lines shown in the result list), case_number (court notices), isins (capital market), banz_reference (e.g. "BAnz AT 30.10.2026 B7"), document_date, exempted_subsidiaries (array of {name, city}), exempted_subsidiaries_count, search_query, search_rank, total_results, scraped_at. The Actor doesn't return the full text or financial figures of a publication: Bundesanzeiger shows the text only after a CAPTCHA. Pricing: pay per publication saved. API docs: https://apify.com/parsebird/bundesanzeiger-scraper/api. Get a token at https://console.apify.com/settings/integrations.

What is Bundesanzeiger Scraper?

Bundesanzeiger Scraper turns the search of the Bundesanzeiger into a clean dataset in JSON, CSV or Excel. The Bundesanzeiger (Federal Gazette) is where German companies, courts and federal authorities publish legally required notices, and it lists millions of publications: on November 1, 2026 its financial reports area alone reported more than 12 million.

Type a company name such as SAP SE, a register number such as HRB 719915, or any keyword, choose an area or category, and the Actor returns every matching publication with its company, city, area, title, publication date and fiscal year, plus the list of subsidiaries exempted from publishing their own accounts, court case numbers, fund ISINs and BAnz references.

It works as a Bundesanzeiger API alternative. The Bundesanzeiger has no public API and its search pages only live for a 30-minute session, so Bundesanzeiger Scraper runs the search for you and hands over the result list as data.

To try it, open the Input tab and click Start. The prefill searches SAP SE in the financial reports area and returns 10 publications.

What can Bundesanzeiger Scraper do?

  • 🔎 Search like on bundesanzeiger.de: company name, register number (HRB, HRA), court, place or any keyword, across all areas or one area.
  • 🗂️ 62 categories: annual financial statements, half-yearly and quarterly reports, §264 HGB exemptions, AG, GmbH, KG and cooperative notices, insolvency proceedings, public summons, voting rights notifications, managers' transactions, inside information, fund reports, tenders and more.
  • 📅 Date range and sorting: limit the search to a publication period and sort newest first, oldest first, by name or in Bundesanzeiger's own order.
  • 🏢 Company name filter: drop related companies that Bundesanzeiger also returns, such as subsidiaries or funds holding the company's shares, and pay only for the publications you keep.
  • 📑 Fiscal years and group exemptions: the fiscal year start and end are read from report titles, and each group report comes with the subsidiaries it exempts from publishing their own accounts (§§ 264 (3), 264b HGB).
  • ⚖️ Court, fund and official notices: case numbers from judicial notices, ISINs and fund names from capital market filings, and BAnz references and document dates from the official part.
  • ⚙️ Built for automation: schedule runs to catch new notices about your customers or competitors, call the Actor through the Apify API, send results to Make, Zapier, n8n, Google Sheets, Slack and more, and export as JSON, CSV, Excel or HTML.

What data can you extract from the Bundesanzeiger?

FieldDescription
entity_name, entity_cityCompany or publisher (for court notices, the court) and its registered city
publication_area, publication_area_codeBundesanzeiger area in German, such as Rechnungslegung/Finanzberichte, and its code (22)
publication_titleTitle of the publication, such as Jahresabschluss zum Geschäftsjahr vom 01.01.2021 bis zum 31.12.2021
publication_date, publication_date_isoPublication date as DD.MM.YYYY and YYYY-MM-DD
fiscal_year_start, fiscal_year_endFiscal year read from the title of financial reports (DD.MM.YYYY)
notesNotes shown under the title, such as Ergänzung der Veröffentlichung vom 06.05.2022 or Ergänzt am 11.07.2022
detailsExtra lines from the result list, such as case numbers, parties, fund names or the issuing authority
case_numberCourt file number of judicial notices, such as 2 N 252/94
isinsISINs listed with capital market publications
banz_reference, document_dateBAnz citation of official publications (BAnz AT 30.10.2026 B7) and the date of the document
exempted_subsidiaries, exempted_subsidiaries_countSubsidiaries (name and city) exempted by a group report from publishing their own accounts
search_query, search_rank, total_results, scraped_atYour search term, the position in the results, the total number of matches and the collection time

Fields a publication doesn't have are null or an empty list.

How to scrape the Bundesanzeiger

  1. Open Bundesanzeiger Scraper on Apify Store and go to the Input tab.
  2. Type a Search term, such as a company name or register number, or leave it empty to list a whole area or category.
  3. Choose an Area, or a more specific Category such as annual financial statements or insolvency proceedings.
  4. Turn on Company name must contain the search term if you only want the company itself.
  5. Optionally set Published from and Published to, and Sort by.
  6. Set Max publications and click Start. When the run finishes, download the dataset as JSON, CSV, Excel or HTML, or read it with the dataset API.

Input parameters

ParameterTypeDefaultDescription
querystring—Company name, register number, court, place or keyword
areastring"" (all)22 financial reports, 6 company announcements, 5 judicial, 7 capital market, 1 official part, 2 non-official part, 8 miscellaneous
categorystring—Subcategory ID that replaces area, for example 67 annual financial statements, 59 insolvency proceedings, 3 GmbH announcements
companyNameMustMatchbooleanfalseKeep only publications whose company name contains every word of query
dateFrom, dateTostring—Publication date range, YYYY-MM-DD or DD.MM.YYYY
sortBystringnewestnewest, oldest, name or relevance (Bundesanzeiger's order)
maxItemsinteger10Maximum publications to save
proxyConfigurationobjectno proxyOptional proxy. The Actor works without one

Example: the annual reports of SAP SE itself, without its subsidiaries' filings:

{
"query": "SAP SE",
"area": "22",
"companyNameMustMatch": true,
"maxItems": 20
}

Example: insolvency notices published in September and October 2026:

{
"category": "59",
"dateFrom": "2026-09-01",
"dateTo": "2026-10-31",
"maxItems": 100
}

Output example

A group report of SAP SE (the subsidiary list is shortened here), an insolvency notice and an investment fund report:

[
{
"entity_name": "SAP SE",
"entity_city": "Walldorf",
"publication_area": "Rechnungslegung/Finanzberichte",
"publication_area_code": "22",
"publication_title": "Jahres- und Konzernabschluss zum Geschäftsjahr vom 01.01.2021 bis zum 31.12.2021",
"publication_date": "11.07.2022",
"publication_date_iso": "2022-07-11",
"fiscal_year_start": "01.01.2021",
"fiscal_year_end": "31.12.2021",
"notes": ["Ergänzung der Veröffentlichung vom 06.05.2022"],
"details": [],
"case_number": null,
"isins": [],
"banz_reference": null,
"document_date": null,
"exempted_subsidiaries": [
{"name": "Concur (Germany) GmbH", "city": "Frankfurt am Main"},
{"name": "SAP Deutschland SE & Co. KG", "city": "Walldorf"}
],
"exempted_subsidiaries_count": 11,
"search_query": "SAP SE",
"search_rank": 5,
"total_results": 132,
"scraped_at": "2026-11-01T11:42:28.996Z"
},
{
"entity_name": "Amtsgericht Dessau-Roßlau",
"entity_city": null,
"publication_area": "Gerichtlicher Teil",
"publication_area_code": "5",
"publication_title": "Anzeige der Masseunzulänglichkeit",
"publication_date": "30.09.2026",
"publication_date_iso": "2026-09-30",
"details": ["2 N 252/94", "Guß- und Maschinenbau Jessen GmbH / Jessen / Elster"],
"case_number": "2 N 252/94",
"search_rank": 1,
"total_results": 7
},
{
"entity_name": "Allianz Global Investors GmbH",
"entity_city": "Frankfurt am Main",
"publication_area": "Kapitalmarkt",
"publication_area_code": "7",
"publication_title": "Jahresbericht 30. Juni 2026",
"publication_date": "30.10.2026",
"publication_date_iso": "2026-10-30",
"fiscal_year_end": "30.06.2026",
"details": [
"Fondak I20 (EUR);Fondak A20 (EUR);Fondak A (EUR);Fondak I (EUR);Fondak P (EUR)",
"DE000A2ATB32; DE000A2ATB40; DE0008471012; DE000A0MJRM3; DE000A0MJRL5"
],
"isins": ["DE000A2ATB32", "DE000A2ATB40", "DE0008471012", "DE000A0MJRM3", "DE000A0MJRL5"],
"search_rank": 2,
"total_results": 58279
}
]

The second and third records are shortened to their non-empty fields.

Use Bundesanzeiger Scraper from Python or JavaScript

Install the client with pip install apify-client or npm install apify-client, and get your API token from Apify Console.

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("parsebird/bundesanzeiger-scraper").call(run_input={
"query": "BMW AG",
"category": "67", # annual financial statements
"maxItems": 50,
})
for pub in client.dataset(run["defaultDatasetId"]).iterate_items():
print(pub["entity_name"], pub["fiscal_year_end"], pub["publication_date"], pub["publication_title"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<APIFY_TOKEN>' });
const run = await client.actor('parsebird/bundesanzeiger-scraper').call({
category: '3', // GmbH and UG announcements
dateFrom: '2026-10-01',
dateTo: '2026-10-31',
maxItems: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items
.filter((p) => p.publication_title === 'Liquidation')
.forEach((p) => console.log(p.entity_name, p.entity_city, p.publication_date));

Use cases

  • KYC and due diligence: list every notice a company has published, from annual reports and capital changes to mergers, liquidations and shareholder meetings.
  • Credit and risk monitoring: schedule daily searches of insolvency proceedings or liquidation notices and send new ones to Slack or email through integrations.
  • Lead generation: find newly founded, merging or liquidating GmbHs and AGs in a date range.
  • Financial report tracking: see which fiscal years a company has published, when, and which subsidiaries its group report covers.
  • Capital market research: collect voting rights notifications, managers' transactions, inside information and fund reports with their ISINs.
  • Legal research: pull public summons, court decisions and service notices with their case numbers.

How much does it cost to scrape the Bundesanzeiger?

Bundesanzeiger Scraper uses pay-per-event pricing: you pay for each publication saved to the dataset. Compute and proxy costs are included in the event price, so they aren't billed separately.

EventFreeBronzeSilverGold
Publication scraped$2.49 / 1,000$2.29 / 1,000$2.09 / 1,000$1.89 / 1,000

At Free plan prices, 10 publications cost about $0.025 and 1,000 cost $2.49. With Company name must contain the search term on, publications that don't match aren't charged. To control spending, set Max publications. The run also stops when it reaches the maximum cost per run you set in Apify Console.

Bundesanzeiger Scraper only reads the public search results of bundesanzeiger.de, which anyone can see without an account. It doesn't log in, doesn't solve CAPTCHAs and doesn't open the full text of publications. Some publications name private persons, for example court notices or company officers. If you store or use that data, you're responsible for complying with the GDPR and with any conditions the publisher, Bundesanzeiger Verlag, sets for reusing its content (see its imprint). Consult a lawyer if you're unsure. For more background, read Apify's article Is web scraping legal?

Other company data scrapers from ParseBird

ActorWhat it does
Northdata ScraperCompany and people lookups on North Data: register identity, address, risk flags, financials and officers
Gelbe Seiten ScraperGerman business listings with addresses, phones, ratings and opening hours
FirmenABC.at ScraperAustrian company data with Firmenbuchnummer, managers and balance-sheet figures
Zefix.ch ScraperSwiss commercial register: UID, legal form, seat, address and purpose
KvK Handelsregister ScraperDutch company register by name, keyword or KvK number
UK Companies House ScraperFilter 5M+ UK companies by SIC code, status, location and incorporation date
Dun & Bradstreet ScraperFirmographics from Dun & Bradstreet's business directory

FAQ

Do I need a Bundesanzeiger account? No. The Actor uses the same free search that anyone can use on bundesanzeiger.de.

Does it return revenue, assets, equity or employee numbers? No. Those figures are in the text of each annual report, and the Bundesanzeiger shows that text only after you solve a CAPTCHA for every single publication. Bundesanzeiger Scraper doesn't get around CAPTCHAs, so it returns the data shown in the search results. For financial figures of German companies, try Northdata Scraper.

Why are the newest annual financial statements from fiscal year 2021? Since the DiRUG reform, annual financial statements for fiscal years starting after December 31, 2021 are filed with the Unternehmensregister instead of the Bundesanzeiger. The Bundesanzeiger still publishes late filings for earlier years (in October 2026 they were for fiscal years up to 2021) and other financial reports, such as half-yearly reports under the WpHG and the accounts of health insurance funds.

Why do I get companies other than the one I searched for? The search matches words, not exact names. A search for SAP SE also finds SAP's subsidiaries and other companies whose names contain "SE". Outside the financial reports area, Bundesanzeiger also searches the text of publications, so a company name finds fund reports that hold its shares. Turn on Company name must contain the search term to keep only publications whose company name contains every word you typed. The Actor then checks up to 50,000 search results per run; for very broad searches, add an area, category or date range.

Is there a link to each publication? No. The Bundesanzeiger has no permanent links: its search pages and documents only work inside a session that expires after 30 minutes. To open a publication, search for the company on bundesanzeiger.de and match publication_title and publication_date. For official publications, banz_reference is the citation used to refer to them.

How far back does it go? As far as the Bundesanzeiger's search: the oldest results we saw were from 2005. Use Sort by: Oldest first or a date range to reach older publications.

How fast is it? The Actor reads 100 results per request. In our tests, 250 court notices took about 10 seconds.

Do I need a proxy? No. The Actor runs without a proxy by default. If the Bundesanzeiger starts refusing requests, add an Apify proxy in the Advanced section.

Can I run it on a schedule or from my own code? Yes. Use Apify schedules for daily or weekly runs, the Apify API or the Python and JavaScript clients shown above, and integrations to send results to Google Sheets, Slack, Make, Zapier or n8n.

Something doesn't work or a field is missing. What should I do? Open an issue on the Actor's Issues tab with your input and run ID, and we'll look into it.