# L'API FOSC: lire la Feuille officielle par programme

10 août 2026 7 min de lecture

Ce guide s'adresse aux développeurs qui construisent un import de données FOSC. Si vous cherchez à comprendre la portée commerciale d'une annonce, commencez par [Lire la FOSC](https://prospex.ch/fr/guides/lire-la-fosc/), qui explique ce que chaque type d'inscription signifie commercialement.

Nous couvrons ici les points d'accès de publication, les champs XML et quatre comportements de l'API qui peuvent coûter une journée chacun lorsqu'on les découvre en production.

## Utiliser l'API publique de l'Amtsblattportal

Le `robots.txt` de la FOSC porte sur l'exploration automatisée du site web. Pour un accès automatisé, l'Amtsblattportal met à disposition une API REST publique conçue pour une utilisation en production. Utilisez les points d'accès ci-dessous pour récupérer les publications.

| Environnement | URL de base |
| --- | --- |
| Production | `https://amtsblattportal.ch/api/v1/` |
| Intégration | `https://int.amtsblattportal.ch/api/v1/` |

Le point d'accès de connexion sert au dépôt de publications. Les publications sont accessibles en lecture sans authentification.

## Lister les publications, puis récupérer chaque fiche

`GET /api/v1/publications/xml` retourne une liste paginée contenant uniquement les métadonnées et les identifiants des publications. Récupérez chaque corps avec `GET /api/v1/publications/{id}/xml`.

Conservez l'identifiant comme clé de publication. Vérifiez sa présence dans votre base avant de demander le document détaillé. Les reprises réutiliseront ainsi les corps déjà en votre possession.

Les deux points d'accès ont aussi des variantes `/csv`, `/pdf` et `/docx`.

Une requête de liste typique pour une journée de publications HR:

```
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
```

## Paramètres pour une liste de publications HR

| Paramètre | Valeur | Remarque |
| --- | --- | --- |
| `publicationStates` | `PUBLISHED` | Obligatoire pour obtenir des enregistrements. |
| `tenant` | `shab` | La Feuille fédérale du commerce. Des tenants cantonaux existent. |
| `rubrics` | `HR` | Registre du commerce. Utilisez `HR`. La documentation indiquait `BH` à notre dernière vérification. |
| `subRubrics` | — | **Ignoré par l'API en production.** Voir ci-dessous. |
| `publicationDate.start` / `.end` | Date ISO | Dates inclusives à granularité journalière. |
| `cantons` | `ZH`, `GE`, … | Facultatif. |
| `pageRequest.page` / `.size` | Base 0 / 2000 au maximum | La seule limite dure documentée. |
| `pageRequest.sortOrders` | `column:PUBLICATION_DATE\|direction:DESC` |  |

**Le piège des subRubrics.** Dans notre test en production, `subRubrics=HR01` a aussi retourné des enregistrements HR02 et HR03. Demandez `rubrics=HR`, puis classez chaque publication récupérée selon `meta.subRubric`. Cette classification empêche les mutations et les radiations de se glisser dans une table «nouvelles inscriptions».

Classez chaque publication HR dans l'une de ces sous-rubriques:

- `HR01`: nouvelles inscriptions. Créations et ouvertures de succursales.
- `HR02`: mutations. Transferts de siège, changements d'adresse, changements de raison sociale, augmentations de capital, fusions.
- `HR03`: radiations.

## Lire d'abord les champs structurés

Un document HR détaillé contient des blocs `meta` et `content` structurés. Utilisez ces champs pour l'identité, les attributs de l'entreprise et les types de changement courants. Réservez `publicationText` aux actes couverts uniquement par le texte libre.

| Besoin | Source | Détail |
| --- | --- | --- |
| Identité et déduplication | `meta.id` | UUID de publication |
| Type de publication | `meta.rubric`, `meta.subRubric` | Classez après récupération du document détaillé |
| Identité de l'entreprise | `content.company` | Nom, siège, IDE, forme juridique, adresse |
| Type de changement | `content.transaction` | Drapeaux pour changements de siège, adresse, nom et capital |
| Référence au journal | `journalDate`, `journalNumber` | Inscription au journal et date d'effet |
| Avis précédent | `lastFosc*` | Référence à la publication remplacée |

Les publications HR02 exposent des drapeaux de changement dans `transaction`: `seatChanged`, `addressChanged`, `nameChanged` et `capitalChanged`. Les changements de nom incluent ancien et nouveau. Pour identifier une augmentation de capital, comparez l'ancien et le nouveau nominal quand `capitalChanged` est actif. Pour les fusions et les créations de succursales, utilisez la détection par mots-clés dans le texte. Ces actes nécessitent ce complément au traitement structuré.

Les schémas sont publiés: `https://amtsblattportal.ch/api/v1/schemas/bulk-export.xsd` et, par sous-rubrique, `https://amtsblattportal.ch/api/v1/schemas/shab/1.26/HR0x-export.xsd`.

## Valider les montants de capital

Le format suisse utilise l'apostrophe comme séparateur de milliers. La Feuille en publie parfois une là où une virgule décimale devrait figurer. Nous avons vu un capital surestimé d'un facteur cent par ce biais. L'enregistrement est arrivé en tête d'un classement des plus grosses augmentations du mois avant que l'anomalie ne soit repérée.

Marquez pour vérification toute SA dont le capital nominal est inférieur à CHF 100'000 et toute Sàrl sous CHF 20'000. Marquez aussi toute mutation unique qui change le capital nominal d'un facteur 100 ou plus. Ces contrôles identifient des erreurs probables d'analyse ou de données source et envoient l'enregistrement vers une vérification. La valeur source reste inchangée pendant ce contrôle.

## Réconcilier les annulations à chaque exécution quotidienne

Une publication peut être `PUBLISHED` ou `CANCELLED`. Réconciliez les deux états à chaque exécution, car une annulation peut concerner une publication déjà enregistrée ou déjà traitée.

Faites deux passes séparées, une par état, et dédupliquez les identifiants communs en donnant la priorité à `CANCELLED`. Réconciliez le corps selon l'état sous lequel vous l'avez découvert. Certains corps omettent le champ d'état.

L'algorithme de réconciliation quotidien:

1. Lister les enregistrements `PUBLISHED` et `CANCELLED` des sept derniers jours calendaires jusqu'à aujourd'hui. Garder une ligne par identifiant, `CANCELLED` prévalant si l'identifiant apparaît dans les deux listes.
2. Mettre à jour l'état de chaque identifiant listé, y compris ceux déjà enregistrés. C'est ainsi qu'une publication antérieure devient annulée dans votre base.
3. Récupérer le document détaillé des identifiants dont le corps manque ou dont le changement d'état exige une nouvelle copie. Plafonner la concurrence et réessayer les échecs transitoires selon une temporisation exponentielle.
4. Analyser d'abord les champs structurés. Utiliser `publicationText` pour les actes couverts uniquement par le texte libre.

Sur 305'902 publications mesurées sur les douze derniers mois, l'intervalle médian entre la prise d'effet d'un changement et sa publication était de cinq jours. 38% des publications sont parues en trois jours. Nous listons de nouveau les sept derniers jours calendaires à chaque exécution quotidienne pour absorber les enregistrements tardifs et corrigés.

Pour l'ordre de grandeur: le 9 juillet 2026, environ 1'310 publications HR sur près de 1'813 publications FOSC ce jour-là.

## Un parseur open source pour ces publications

Le parseur qui alimente notre propre import est publié sous licence MIT: [python-shab-parser](https://github.com/prospex-ch/python-shab-parser). Il lit un document XML de l'Amtsblattportal dans des dataclasses typées, puis classe chaque publication en événements: création, transfert de siège, augmentation de capital, radiation. Les différences de namespace entre sous-rubriques sont absorbées, si bien qu'un document HR01, HR02 ou HR03 s'analyse de la même manière.

Son client HTTP optionnel couvre la boucle de découverte et de récupération décrite plus haut, limitée à une requête par seconde, avec un backoff exponentiel sur les échecs transitoires. La [documentation](https://shab-parser.readthedocs.io/en/latest/) détaille les types d'événements et la référence complète de l'API.

## Conditions d'utilisation et portée juridique

Les conditions de l'exploitant déclinent toute garantie d'exhaustivité et d'exactitude. Le PDF signé est la version juridiquement contraignante de chaque publication. Consultez les conditions actuelles de l'API avant toute réutilisation commerciale. Ce guide décrit notre implémentation technique et ne constitue pas un avis juridique.

Une annonce de la Feuille vous dit quel changement juridique a été publié. Décider si l'entreprise mérite un contact demande le plus souvent du contexte sur son site web et ses recrutements en cours.

[Où trouver les données d'entreprises suisses](https://prospex.ch/fr/guides/sources-donnees-entreprises-suisses/) explique ces sources, et [à quoi sert chacune](https://prospex.ch/fr/guides/comparatif-sources-donnees-entreprises/) les compare sur les questions auxquelles un import quotidien doit répondre.

## Autres guides

- [Comment suivre les augmentations de capital en Suisse](https://prospex.ch/fr/guides/suivre-augmentations-capital/)
- [Lire la FOSC: guide pratique pour les commerciaux](https://prospex.ch/fr/guides/lire-la-fosc/)
- [Où trouver les données d'entreprises suisses](https://prospex.ch/fr/guides/sources-donnees-entreprises-suisses/)
- [Changements d'entreprise en Suisse: ce qu'ils disent vraiment](https://prospex.ch/fr/guides/signaux-achat-marche-suisse/)
- [Comparatif des sources de données d'entreprises suisses](https://prospex.ch/fr/guides/comparatif-sources-donnees-entreprises/)
- [Que signifie une augmentation de capital en Suisse](https://prospex.ch/fr/guides/que-signifie-augmentation-capital/)
- [Prospecter en Suisse romande: guide de terrain](https://prospex.ch/fr/guides/prospecter-suisse-romande/)
- [Les dépôts de marques comme signal de lancement](https://prospex.ch/fr/guides/depots-marques-signal/)
- [Vérifier une entreprise suisse: du nom au numéro IDE](https://prospex.ch/fr/guides/verifier-entreprise-suisse/)
- [Surveiller une entreprise suisse gratuitement: ce que permettent les outils publics](https://prospex.ch/fr/guides/surveiller-entreprise-suisse/)
- [Quelle est la taille de cette entreprise suisse? Estimer sans comptes publiés](https://prospex.ch/fr/guides/taille-entreprise-suisse/)
- [L'API REST Zefix: points d'accès, authentification, identifiants](https://prospex.ch/fr/guides/api-rest-zefix/)
- [Des signaux d'achat suisses dans Clay et n8n](https://prospex.ch/fr/guides/signaux-suisses-clay-n8n/)
- [Estimer la taille d'un marché cible en Suisse](https://prospex.ch/fr/guides/taille-marche-cible-suisse/)
- [Les 100 adresses qui hébergent le plus d'entreprises en Suisse](https://prospex.ch/fr/guides/adresses-domiciliation-suisse/)
- [Trouver des entreprises similaires à vos meilleurs clients](https://prospex.ch/fr/guides/entreprises-similaires-suisse/)
- [Relancer des comptes dormants et des affaires perdues](https://prospex.ch/fr/guides/relancer-comptes-dormants/)
- [Quelle est la taille réelle du marché B2B suisse?](https://prospex.ch/fr/guides/taille-marche-b2b-suisse/)
- [Qui entre en Suisse: filiales et succursales étrangères](https://prospex.ch/fr/guides/entreprises-etrangeres-entrant-en-suisse/)
- [Concentration des mandats d'administrateurs en Suisse: ce que montre une année de mutations](https://prospex.ch/fr/guides/concentration-mandats-administrateurs-suisse/)
- [Composition par genre des organes des sociétés suisses](https://prospex.ch/fr/guides/composition-genre-organes-societes-suisses/)

[Tous les guides](https://prospex.ch/fr/guides/)

## Les chiffres derrière ce guide

- [Les 25 plus grandes augmentations de capital en Suisse (12 derniers mois)](https://prospex.ch/fr/signaux/plus-grandes-augmentations-capital/)
- [Les 25 plus grandes fusions en Suisse (12 derniers mois)](https://prospex.ch/fr/signaux/plus-grandes-fusions/)

[Tous les classements](https://prospex.ch/fr/signaux/)

Construisez un marché selon vos propres critères, sur ces données.

[Voir un exemple de marché](https://prospex.ch/fr/liste-entreprises-suisses/)

[Ou construisez le vôtre, gratuitement](https://prospex.ch/app/accounts/signup/)
