# SHAB-API: Publikationen ohne Login abrufen

\10. Aug 2026 6 Min. Lesezeit

Dieser Leitfaden richtet sich an Entwickler, die einen SHAB-Datenimport bauen. Wer eine Amtsblattmeldung für den Vertrieb interpretieren will, beginnt am besten mit dem Leitfaden [Das SHAB lesen](https://prospex.ch/de/guides/shab-lesen/). Er erklärt, was jeder Eintragstyp kommerziell bedeutet.

Hier geht es um die Publikationsendpunkte und XML-Felder. Vier Eigenheiten der API können je einen Tag kosten, wenn sie erst in Produktion auffallen.

## Die öffentliche API für den Maschinenzugang nutzen

Die `robots.txt` des SHAB betrifft das automatisierte Crawlen der Website. Für den Maschinenzugang stellt das Amtsblattportal eine öffentliche REST-API bereit, die für den produktiven Einsatz gedacht ist. Veröffentlichtes Material ist über die untenstehenden Endpunkte frei zugänglich.

| Umgebung | Basis-URL |
| --- | --- |
| Produktion | `https://amtsblattportal.ch/api/v1/` |
| Integration | `https://int.amtsblattportal.ch/api/v1/` |

Der Login-Endpunkt dient dem Einreichen von Publikationen. Veröffentlichte Meldungen sind über die oben genannten Endpunkte frei abrufbar.

## Publikationen auflisten, dann jede Meldung holen

`GET /api/v1/publications/xml` liefert eine paginierte Liste mit Metadaten und Publikations-IDs. Den Inhalt einer Publikation holen Sie mit `GET /api/v1/publications/{id}/xml`.

Speichern Sie die ID als Publikationsschlüssel. Prüfen Sie sie vor dem Abruf des Detaildokuments, damit Wiederholungsläufe bereits vorhandene Inhalte überspringen.

Beide Endpunkte gibt es auch als `/csv`, `/pdf` und `/docx`.

Eine typische Listenabfrage für einen Tag HR-Publikationen:

```
GET https://amtsblattportal.ch/api/v1/publications/xml
    ?publicationStates=PUBLISHED
    &tenant=shab
    &rubrics=HR
    &publicationDate.start=2026-07-09
    &publicationDate.end=2026-07-09
    &pageRequest.page=0
    &pageRequest.size=2000
```

## Parameter für eine HR-Publikationsliste

| Parameter | Wert | Anmerkung |
| --- | --- | --- |
| `publicationStates` | `PUBLISHED` | Pflicht für die Datenausgabe. |
| `tenant` | `shab` | Das eidgenössische Handelsamtsblatt. Kantonale Tenants existieren. |
| `rubrics` | `HR` | Handelsregister. Verwenden Sie `HR`. Die Dokumentation führte bei unserer letzten Prüfung `BH`. |
| `subRubrics` | — | **Von der produktiven API ignoriert.** Siehe unten. |
| `publicationDate.start` / `.end` | ISO-Datum | Inklusive Datumsangaben, tagesgenau. |
| `cantons` | `ZH`, `GE`, … | Optional. |
| `pageRequest.page` / `.size` | 0-basiert / maximal 2000 | Die einzige dokumentierte harte Grenze. |
| `pageRequest.sortOrders` | `column:PUBLICATION_DATE\|direction:DESC` |  |

**Die subRubrics-Falle.** In unserem Produktionstest lieferte `subRubrics=HR01` auch HR02- und HR03-Datensätze. Fragen Sie `rubrics=HR` an und klassifizieren Sie jede geholte Publikation über `meta.subRubric`. Sonst kann eine Tabelle «Neueintragungen» still und leise Mutationen und Löschungen enthalten.

Ordnen Sie jede HR-Publikation in eine dieser Unterrubriken ein:

- `HR01`: Neueintragungen. Gründungen und Zweigniederlassungen.
- `HR02`: Mutationen. Sitzverlegungen, Adressänderungen, Firmenänderungen, Kapitalerhöhungen, Fusionen.
- `HR03`: Löschungen.

## Zuerst die strukturierten Felder lesen

Ein HR-Detaildokument enthält strukturierte `meta`- und `content`-Blöcke. Nutzen Sie diese Felder, um Unternehmen zu identifizieren und gängige Änderungen auszuwerten. Behalten Sie `publicationText` für Akte, deren Angaben nur im Freitext stehen.

| Bedarf | Quelle | Detail |
| --- | --- | --- |
| Identität und Deduplizierung | `meta.id` | Publikations-UUID |
| Publikationstyp | `meta.rubric`, `meta.subRubric` | Klassifikation nach Abruf des Detaildokuments |
| Unternehmensidentität | `content.company` | Name, Sitz, UID, Rechtsform, Adresse |
| Änderungstyp | `content.transaction` | Flags für Sitz-, Adress-, Namens- und Kapitaländerungen |
| Tagebuch-Referenz | `journalDate`, `journalNumber` | Tagebucheintrag und Wirksamkeitsdatum |
| Vorhergehende Meldung | `lastFosc*` | Verweis auf die abgelöste Publikation |

HR02-Publikationen tragen Änderungs-Flags in `transaction`: `seatChanged`, `addressChanged`, `nameChanged` und `capitalChanged`. Namensänderungen enthalten alten und neuen Wert. Um eine Kapitalerhöhung zu erkennen, vergleichen Sie den alten und neuen Nominalwert, wenn `capitalChanged` gesetzt ist. Die Stichworterkennung im Publikationstext bleibt nützlich für Fusionen und Zweigniederlassungen, die kein eigenes strukturiertes Flag haben.

Die Schemata sind veröffentlicht: `https://amtsblattportal.ch/api/v1/schemas/bulk-export.xsd` und je Unterrubrik `https://amtsblattportal.ch/api/v1/schemas/shab/1.26/HR0x-export.xsd`.

## Kapitalzahlen validieren

Die Schweizer Schreibweise nutzt den Apostroph als Tausendertrennzeichen, und das Amtsblatt setzt ihn gelegentlich dort, wo ein Dezimalpunkt hingehört. Wir haben so eine um den Faktor hundert überhöhte Kapitalzahl gesehen. Der Datensatz stand an der Spitze einer Rangliste der grössten Erhöhungen des Monats, bevor die Anomalie auffiel.

Markieren Sie jede AG mit einem nominellen Kapital unter CHF 100'000 und jede GmbH unter CHF 20'000 zur Überprüfung. Markieren Sie auch jede einzelne Mutation, die das nominelle Kapital um den Faktor 100 oder mehr ändert. Diese Prüfungen erkennen wahrscheinliche Parse- oder Quelldatenfehler und leiten den Datensatz in die Überprüfung. Der gespeicherte Wert bleibt dabei unverändert.

## Annullierungen bei jedem Tageslauf abgleichen

Eine Publikation kann `PUBLISHED` oder `CANCELLED` sein. Gleichen Sie beide Zustände bei jedem Lauf ab, weil eine Annullierung eine bereits gespeicherte oder bereits verarbeitete Publikation betreffen kann.

Fahren Sie die beiden Zustände als getrennte Durchläufe und deduplizieren Sie überlappende IDs so, dass `CANCELLED` gewinnt. Gleichen Sie den Body mit dem Zustand ab, unter dem Sie ihn gefunden haben. Manche Bodies lassen das Feld weg.

Der tägliche Abgleich-Algorithmus:

1. `PUBLISHED`- und `CANCELLED`-Datensätze der letzten sieben Kalendertage bis heute auflisten. Pro ID eine Zeile führen, wobei `CANCELLED` Vorrang hat, wenn die ID in beiden Listen vorkommt.
2. Den Zustand jeder aufgelisteten ID aktualisieren, auch für bereits gespeicherte IDs. So wird eine frühere Publikation in Ihrer Datenbank als annulliert erfasst.
3. Detaildokumente für IDs abrufen, deren Body fehlt oder deren Zustandswechsel eine neue Kopie erfordert. Parallelität begrenzen und bei vorübergehenden Fehlern mit exponentiellem Backoff wiederholen.
4. Zuerst die strukturierten Felder parsen. `publicationText` für die verbleibenden Akte verwenden.

Über 305'902 Publikationen der letzten zwölf Monate beträgt der Medianabstand zwischen dem Wirksamwerden einer Änderung und ihrer Veröffentlichung fünf Tage. 38% der Publikationen erscheinen innert drei Tagen. Wir listen bei jedem Tageslauf die letzten sieben Kalendertage erneut auf, um verspätete und korrigierte Datensätze aufzufangen.

Zur Grössenordnung: am 9. Juli 2026 waren es rund 1'310 HR-Publikationen von etwa 1'813 SHAB-Publikationen dieses Tages.

## Ein Open-Source-Parser für diese Publikationen

Den Parser hinter unserem eigenen Import veröffentlichen wir unter der MIT-Lizenz als [python-shab-parser](https://github.com/prospex-ch/python-shab-parser). Er liest ein XML-Dokument des Amtsblattportals in typisierte Dataclasses und ordnet jede Publikation Ereignissen zu: Neueintragung, Sitzverlegung, Kapitalerhöhung, Löschung. Die Namespace-Unterschiede zwischen den Unterrubriken fängt er ab, sodass HR01-, HR02- und HR03-Dokumente gleich geparst werden.

Sein optionaler HTTP-Client deckt die oben beschriebene Schleife aus Discovery und Abruf ab, begrenzt auf eine Anfrage pro Sekunde und mit exponentiellem Backoff bei transienten Fehlern. Die [Dokumentation](https://shab-parser.readthedocs.io/en/latest/) beschreibt die Ereignistypen und die vollständige API-Referenz.

## Nutzungsbedingungen und Rechtsstellung

Die Bedingungen des Betreibers schliessen Gewähr für Vollständigkeit und Richtigkeit aus. Das signierte PDF ist die rechtsverbindliche Fassung jeder Publikation. Prüfen Sie die aktuellen API-Bedingungen vor einer kommerziellen Weiterverwendung. Dieser Leitfaden beschreibt unsere technische Implementierung und stellt keine Rechtsberatung dar.

Eine Amtsblattmeldung sagt Ihnen, welche rechtliche Änderung veröffentlicht wurde. Ob die Firma eine Kontaktaufnahme wert ist, erfordert meist Kontext von ihrer Website und ihren laufenden Stellenausschreibungen.

[Wo Schweizer Unternehmensdaten tatsächlich liegen](https://prospex.ch/de/guides/schweizer-unternehmensdaten/) erklärt diese Quellen, und [wofür jede davon taugt](https://prospex.ch/de/guides/vergleich-unternehmensdaten/) vergleicht sie an den Fragen, die ein täglicher Import beantworten muss.

## Weitere Ratgeber

- [Kapitalerhöhungen in der Schweiz verfolgen](https://prospex.ch/de/guides/kapitalerhoehungen-verfolgen/)
- [Das SHAB lesen: Praxisleitfaden für Verkäufer](https://prospex.ch/de/guides/shab-lesen/)
- [Wo Schweizer Unternehmensdaten tatsächlich liegen](https://prospex.ch/de/guides/schweizer-unternehmensdaten/)
- [Firmenänderungen in der Schweiz: was sie aussagen und was nicht](https://prospex.ch/de/guides/kaufsignale-schweizer-markt/)
- [Zefix, Moneyhouse oder SHAB: welche Quelle wofür](https://prospex.ch/de/guides/vergleich-unternehmensdaten/)
- [Was passiert, wenn ein Schweizer Unternehmen sein Kapital erhöht](https://prospex.ch/de/guides/kapitalerhoehung-bedeutung/)
- [Akquise in der Deutschschweiz: Ein Praxisleitfaden](https://prospex.ch/de/guides/akquise-deutschschweiz/)
- [Schweizer Markeneintragungen als frühes Produktlancierungssignal](https://prospex.ch/de/guides/markeneintragungen-signal/)
- [Ein Schweizer Unternehmen prüfen: Von Name und UID zum Gesamtbild](https://prospex.ch/de/guides/schweizer-unternehmen-pruefen/)
- [Schweizer Unternehmen kostenlos auf Änderungen überwachen](https://prospex.ch/de/guides/schweizer-unternehmen-ueberwachen/)
- [Wie gross ist dieses Schweizer Unternehmen? Grösse aus öffentlichen Quellen schätzen](https://prospex.ch/de/guides/groesse-schweizer-unternehmen/)
- [Die Zefix-REST-API: Endpunkte, Zugang und Identifikatoren](https://prospex.ch/de/guides/zefix-rest-api-abfragen/)
- [Schweizer Kaufsignale in Clay und n8n](https://prospex.ch/de/guides/schweizer-signale-clay-n8n/)
- [Die Grösse eines Schweizer Zielmarkts bestimmen](https://prospex.ch/de/guides/zielmarkt-schweiz-groesse/)
- [Die 100 Adressen mit den meisten Firmen in der Schweiz](https://prospex.ch/de/guides/domizil-adressen-schweiz/)
- [Unternehmen finden, die Ihren besten Kunden ähneln](https://prospex.ch/de/guides/aehnliche-unternehmen-schweiz/)
- [Ruhende Kunden und verlorene Deals reaktivieren](https://prospex.ch/de/guides/ruhende-kunden-reaktivieren/)
- [Wie gross ist der Schweizer B2B-Markt wirklich?](https://prospex.ch/de/guides/groesse-schweizer-b2b-markt/)
- [Wer kommt in die Schweiz: ausländische Tochtergesellschaften und Zweigniederlassungen](https://prospex.ch/de/guides/auslaendische-unternehmen-schweiz/)
- [Verwaltungsratsmandate in der Schweiz: was ein Jahr Personenmutationen zeigt](https://prospex.ch/de/guides/verwaltungsratsmandate-schweiz-konzentration/)
- [Geschlechterzusammensetzung Schweizer Gesellschaftsorgane](https://prospex.ch/de/guides/geschlechterzusammensetzung-schweizer-gesellschaftsorgane/)

[Alle Ratgeber](https://prospex.ch/de/guides/)

## Die Zahlen dahinter

- [Die 25 grössten Kapitalerhöhungen der Schweiz (letzte 12 Monate)](https://prospex.ch/de/signale/groesste-kapitalerhoehungen/)
- [Die 25 grössten Fusionen der Schweiz (letzte 12 Monate)](https://prospex.ch/de/signale/groesste-fusionen/)

[Alle Rankings](https://prospex.ch/de/signale/)

Bauen Sie aus diesen Daten einen Markt nach Ihren eigenen Kriterien.

[Einen Beispielmarkt ansehen](https://prospex.ch/de/firmenliste-schweiz/)

[Oder bauen Sie Ihren eigenen, gratis](https://prospex.ch/app/accounts/signup/)
