# Bundesanzeiger Germany: Disclosures & Insolvencies (`themineworks/germany-bundesanzeiger-monitor`) Actor

Search Germany's official Bundesanzeiger, the Federal Gazette where every German company must publish capital changes, shareholder resolutions, insolvency proceedings and financial disclosure notices. Plain HTTP, no login, official primary source. Works in Claude, ChatGPT and any MCP agent.

- **URL**: https://apify.com/themineworks/germany-bundesanzeiger-monitor.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Business, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bundesanzeiger Germany Monitor: Disclosures, Capital Changes & Insolvencies

> ⚡ Plain HTTP. No login, no API key, no proxy, no browser.

> 💸 You are only charged for a publication that actually lands in your dataset. A zero result search is never billed.

### Overview

This actor searches Germany's official Bundesanzeiger, the Federal Gazette operated by Bundesanzeiger Verlag on behalf of the Federal Ministry of Justice. Every German company is legally required to publish here under the Handelsgesetzbuch (HGB): capital changes, shareholder resolutions, mergers, insolvency and bankruptcy proceedings, and financial disclosure notices. Give it a company name or keyword and get back structured rows: who filed, what area of the gazette, the publication headline, any related entity mentioned, and the date.

✅ Any German company name or keyword · ✅ Filter to insolvency proceedings specifically · ✅ Pagination handled · ✅ MCP ready for AI agents

### An honest note on scope

This actor does not scrape handelsregister.de, the live commercial register search. That site was tested directly during development with realistic browser headers and a German Accept Language header, and the connection never completed: the TLS handshake hung until timeout from two independent networks, while every other German government site tested in the same session, including the sibling Unternehmensregister portal, responded normally. That pattern matches independent reports that handelsregister.de throttles or blocks automated queries from non German and datacenter source IPs at the network level, which is a harder wall than a CAPTCHA: there is no challenge to solve, the connection is simply never allowed to finish.

Bundesanzeiger is the statutory sibling system within the same German company transparency framework, and it is reachable over plain HTTP with no block. It does not hand back a company's live registration status, legal form, or officer roster the way a Handelsregister excerpt would. What it does hand back, often more useful for credit and know your business monitoring, is the trail of mandatory public disclosures: is this company changing its capital structure, entering insolvency proceedings, filing ad hoc disclosures, or making an announcement under company law. If you need the live registry snapshot itself, this is not that tool, and this README will not pretend otherwise.

### Input

```json
{
  "searchTerms": ["Siemens Aktiengesellschaft"],
  "category": "0",
  "maxResultsPerSearch": 40
}
```

| Field | What it takes |
| --- | --- |
| `searchTerms` | One or more German company names or keywords. Each runs as its own search. A full legal entity name narrows results far better than a single generic word, since the search matches broadly across publication text. |
| `category` | Restrict to one publication area. Leave on All areas for the broadest coverage, or pick Insolvency and bankruptcy proceedings, the highest signal category for credit risk and counterparty monitoring. Stock corporation, GmbH, and partnership filters narrow to that legal form's own announcements. |
| `maxResultsPerSearch` | Hard cap per search term. Bundesanzeiger shows roughly 20 results per page, so this is your main cost and runtime control. |

### Output

```json
{
  "search_term": "Siemens Aktiengesellschaft",
  "category": "Gesellschaftsbekanntmachungen",
  "publisher_name": "Siemens Pensionsfonds AG",
  "publisher_location": "Grünwald",
  "title": "Angaben gemäß § 134 c AktG zur Anlagestrategie der Siemens Pensionsfonds AG",
  "related_entities": ["Siemens Fonds Invest GmbH"],
  "publication_date_raw": "22.07.2026",
  "publication_date": "2026-07-22",
  "scraped_at": "2026-08-13T20:15:00.000Z"
}
```

| Field | Description |
| --- | --- |
| 🔎 `search_term` | The term this row was found under |
| 🗂️ `category` | Publication area as shown by Bundesanzeiger, for example Gesellschaftsbekanntmachungen or Kapitalmarkt |
| 🏢 `publisher_name` | The company or entity that filed the publication |
| 📍 `publisher_location` | The filer's registered location as shown |
| 📄 `title` | The publication headline or subject |
| 🔗 `related_entities` | Secondary company names or securities identifiers mentioned in the listing, when present |
| 📅 `publication_date_raw` | Publication date exactly as displayed, DD.MM.YYYY |
| 📅 `publication_date` | Publication date parsed to ISO 8601 |

### Common use cases

**Insolvency and credit monitoring.** Filter to the insolvency category and run a watchlist of counterparties or suppliers on a schedule. A new hit is an early warning long before it shows up in a commercial credit report.

**Capital structure tracking.** Follow a competitor's or portfolio company's capital changes, share issuances, and shareholder resolutions as they are legally required to publish them.

**Deal and market monitoring.** Watch for merger, restructuring, and voting rights announcements around a company or sector of interest.

**KYB and onboarding.** Pull a business's public disclosure history as one input into a broader know your business check, alongside a registry lookup elsewhere in this catalogue.

**AI agents.** Feed structured German statutory disclosures into an agent that answers "has this company published anything unusual recently."

### Pricing

| Event | Price | You pay when |
| --- | --- | --- |
| Publication delivered | $0.008 | A publication row lands in your dataset |

Searches that return nothing cost nothing.

### Run it on a schedule

1. Run once with the search terms and category you want repeated, then click Save as a task.
2. In the Apify Console go to Schedules, Create new.
3. Pick a frequency and attach the saved task.
4. Wire the dataset to Sheets, Slack, or a webhook from the Integrations tab.

A daily or weekly schedule on an insolvency category search is the most common setup: it turns this into an early warning feed rather than a one off lookup.

### FAQ

**Do I need a Bundesanzeiger account?**
No. The actor reads the public search only.

**Does this return the same thing as a Handelsregister excerpt?**
No, and this README says so on purpose. It returns statutory disclosure publications: announcements, capital changes, and insolvency proceedings. It does not return a company's registration status, legal form, or officer roster.

**Why did my search return so many results for a short company name?**
Bundesanzeiger's full text search matches broadly across publication content, not just the filer's exact name. A precise full legal name, for example including the legal form suffix, narrows results considerably. Use the category filter to narrow further.

**Can I search by insolvency proceedings alone, without a company name?**
Yes. Pass a broad or generic term alongside the insolvency category filter to monitor that category as a whole; a specific company name combined with that filter is the more common workflow.

**How current is the data?**
Bundesanzeiger publishes disclosures as companies file them, typically within days of the underlying corporate action. This actor reads the live public search at run time.

### Use from Claude, ChatGPT and any MCP agent

```
https://mcp.apify.com/?tools=themineworks/germany-bundesanzeiger-monitor
```

Or call it programmatically:

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('themineworks/germany-bundesanzeiger-monitor').call({
  searchTerms: ['Siemens Aktiengesellschaft'],
  category: '59',
  maxResultsPerSearch: 40,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Questions, or need a category we do not expose yet? Reach out through the Apify profile.

# Actor input Schema

## `searchTerms` (type: `array`):

One or more German company names or keywords to search for in the Bundesanzeiger (Federal Gazette). Each term runs as its own search, for example a legal entity name such as Siemens Aktiengesellschaft, or a keyword. The search matches broadly across publication text, so a full legal name narrows results better than a single word.

## `category` (type: `string`):

Restrict the search to one area of the Bundesanzeiger. Leave on All areas for the broadest search, or pick Insolvency proceedings to monitor bankruptcy and composition filings specifically, which is the highest-signal category for credit and KYB use cases.

## `maxResultsPerSearch` (type: `integer`):

Hard cap on how many publication rows to deliver for each search term. The Bundesanzeiger shows about 20 results per page, so this is your main cost and runtime control.

## Actor input object example

```json
{
  "searchTerms": [
    "Siemens Aktiengesellschaft"
  ],
  "category": "0",
  "maxResultsPerSearch": 40
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "Siemens Aktiengesellschaft"
    ],
    "category": "0",
    "maxResultsPerSearch": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/germany-bundesanzeiger-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["Siemens Aktiengesellschaft"],
    "category": "0",
    "maxResultsPerSearch": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/germany-bundesanzeiger-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "Siemens Aktiengesellschaft"
  ],
  "category": "0",
  "maxResultsPerSearch": 40
}' |
apify call themineworks/germany-bundesanzeiger-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/germany-bundesanzeiger-monitor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XmBsfJHs1WDWfObRJ/builds/bqIM56KHLGLz3IUaz/openapi.json
