← Back to blog

BaFin Directors' Dealings: Germany's Register Deletes Its History After 12 Months

Filip Stanczyk · · 3 min read

In Germany, directors' dealings ("Eigengeschäfte von Führungskräften", or simply Directors' Dealings) are notified to the Federal Financial Supervisory Authority, BaFin, under Article 19 of the Market Abuse Regulation. BaFin publishes them in a public database. It is free, needs no login and covers every German-supervised issuer.

It also forgets.

Rolling twelve months, to the day

BaFin's database only shows the last twelve months. On 22 September 2026 the oldest filing in it was published on 22 September 2025, and a search reaching back to the year 2000 returned the same 2,283 filings as a search over the last year. Nothing older is served, and no error says so.

If you want German insider history longer than a year, you have to have collected it yourself while it was still there. There is no other public copy: the Bundesanzeiger's category for managers' transactions holds a few dozen records, the newest from 2024, and the Unternehmensregister, the legal primary store, offers no public API.

We started archiving BaFin's register in September 2026. The German history in Duceus therefore begins in late September 2025 and grows by a day every day. It will not be purged.

How the register is laid out

Each filing is one person and one transaction, rendered as BaFin's HTML version of the EU notification template:

  1. The person: name, with academic titles in a separate field.
  2. Position: management board, supervisory board, other executive, or closely associated person.
  3. The issuer: name and LEI.
  4. The transaction: instrument type and ISIN, nature, prices and volumes, aggregate, date and place.

The search filters on the publication date ("Date of notification"), not the transaction date. BaFin checks each notification before publishing it, so a deal can appear days or weeks after it happened, under the day it was published.

The "volume" is money

The trap that catches most parsers: in BaFin's rendering, "Volume" is an amount of money, not a number of shares. A purchase of 650 shares at €87.66 shows a volume of "56.979,00 EUR". The share count is the volume divided by the price.

We checked this against every filing that states the count in its free-text explanation ("Erwerb von 4672 Aktien"). All 107 filings that state a count matched: 85 exactly, the rest within 0.05%, the gap being the rounding of the printed price.

Two more details:

  • Two number formats on one page. In the English version, the individual executions use German formatting ("87,66 EUR") and the aggregate uses English formatting ("87.66 EUR"). Mix them up and a figure is off by a factor of 1,000.
  • No price, no count. About one filing in seven states no consideration at all (0,00 / 0,00): share awards, pledges, subscriptions, securities lending. The count then exists only in the explanation text.

When the filing contradicts itself

The executions in section 4(c) must add up to the aggregate in 4(d). In BaFin's twelve months, 16 filings (0.7%) don't: five executions restated as a total ten times larger, an aggregate a thousandth of the executions' sum, executions at €0.26 with an "average price" of €5,710.93. We store none of those figures rather than pick one. The right number is unknowable from the filing.

The threshold moved

Article 19 only requires a notification once a person's deals in a calendar year reach a threshold. Germany raised it from €20,000 to €50,000 on 1 January 2026, so fewer small deals are filed from that date. A drop in German filing counts in 2026 is regulation, not a collection failure. Keep it in mind when comparing years.

German directors' dealings as JSON

curl "https://api.duceusapi.com/transactions?country=DE&transaction_type=BUY&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Every row has the share count (not the money amount) in volume, the per-share unit_price, BaFin's German explanation in transaction_type_raw, and a link to the filing in source_url. When BaFin purges the filing, the link will stop working; our row stays.

German filings carry more than German companies. The register supervises some foreign issuers too, so you will find GB, US and Luxembourg ISINs and prices in USD next to EUR. Filter by the register with country=DE, or by the company with isin, lei or issuer_id.

Summary

  • BaFin's database is complete for the last twelve months and empty before that.
  • "Volume" means money; the share count is volume ÷ price.
  • Check executions against the aggregate, and refuse the filing when they disagree.
  • The reporting threshold is €50,000 from 2026, so year-on-year counts aren't comparable.
  • Germany is on the full plan; see pricing and coverage.