Companies par Jsonpage · API SIREN et SIRET ↗
GUIDE D'INTÉGRATION

Une API simple.
Des données prêtes à l'emploi.

Tout ce qu'il faut pour intégrer la recherche d'entreprises et d'établissements dans votre produit.

01 / DÉMARRAGE RAPIDE

Démarrer en 2 minutes

Get started in 2 minutes

Aan de slag in 2 minuten

In 2 Minuten loslegen

L'adresse de base est https://companies.jsonpage.com. Chaque appel envoie votre clé API dans l'en-tête X-API-Key ; créez un compte gratuit pour l'obtenir. Les exemples lisent une entreprise réelle, FR-552100554, avec son adresse et son numéro de TVA vérifié (include=address,vat).

The base URL is https://companies.jsonpage.com. Each call sends your API key in the X-API-Key header; create a free account to get one. The examples read a real company, FR-552100554, with its address and its verified VAT number (include=address,vat).

Het basisadres is https://companies.jsonpage.com. Elke aanroep stuurt uw API-sleutel mee in de header X-API-Key; maak een gratis account aan om er een te krijgen. De voorbeelden lezen een echte onderneming, FR-552100554, met haar adres en haar gecontroleerde btw-nummer (include=address,vat).

Die Basisadresse lautet https://companies.jsonpage.com. Jeder Aufruf sendet Ihren API-Schlüssel im Header X-API-Key; erstellen Sie ein kostenloses Konto, um einen zu erhalten. Die Beispiele lesen ein echtes Unternehmen, FR-552100554, mit seiner Adresse und seiner geprüften USt-IdNr. (include=address,vat).

Essayez sans rien installerSans compte, la démo de la page d'accueil interroge l'API en direct avec une entreprise réelle. Une fois inscrit, le Testeur de votre espace client envoie n'importe quelle requête avec votre compte, sans écrire de code.
Try it without installing anythingWithout an account, the homepage demo queries the API live with a real company. Once signed up, the Tester in your dashboard sends any request with your account, without writing code.
Probeer het zonder iets te installerenZonder account bevraagt de demo op de startpagina de API live met een echte onderneming. Zodra u bent ingeschreven, verstuurt de Tester in uw dashboard elke gewenste aanvraag met uw account, zonder code te schrijven.
Ausprobieren, ohne etwas zu installierenOhne Konto fragt die Demo auf der Startseite die API live mit einem echten Unternehmen ab. Nach der Registrierung sendet der Tester in Ihrem Dashboard beliebige Anfragen mit Ihrem Konto, ohne dass Sie Code schreiben müssen.
Avant de commencerConservez la clé sur votre serveur. Ne l'ajoutez pas au code JavaScript envoyé au navigateur.

cURL

curl "https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat" \
  -H "X-API-Key: YOUR_KEY"
curl "https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat" \
  -H "X-API-Key: UW_SLEUTEL"
curl "https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat" \
  -H "X-API-Key: IHR_SCHLUESSEL"

Node.js (fetch)

// Node.js 18 or later, ES module. The key is read from the environment.
const response = await fetch(
  "https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat",
  { headers: { "X-API-Key": process.env.COMPANIES_API_KEY } }
);
if (!response.ok) throw new Error(`Companies API: ${response.status}`);

const { data } = await response.json();
console.log(data.name, data.address?.formatted, data.vat?.status);

Python (requests)

import os
import requests

response = requests.get(
    "https://companies.jsonpage.com/v2/companies/FR-552100554",
    params={"include": "address,vat"},
    headers={"X-API-Key": os.environ["COMPANIES_API_KEY"]},
    timeout=10,
)
response.raise_for_status()

company = response.json()["data"]
print(company["name"], company["status"], company["vat"]["status"])

PHP (cURL)

<?php
$ch = curl_init('https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat');
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('COMPANIES_API_KEY')],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($body === false || $status !== 200) {
    throw new RuntimeException("Companies API: $status");
}

$company = json_decode($body, true)['data'];
echo $company['name'], ' ', $company['status'], ' ', $company['vat']['status'], PHP_EOL;

Ruby (net/http)

require "json"
require "net/http"

uri = URI("https://companies.jsonpage.com/v2/companies/FR-552100554?include=address,vat")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("COMPANIES_API_KEY")

response = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 10) { |http| http.request(request) }
raise "Companies API: #{response.code}" unless response.is_a?(Net::HTTPSuccess)

company = JSON.parse(response.body).fetch("data")
puts [company["name"], company["status"], company.dig("vat", "status")].join(" ")

Les exemples Node.js, Python, PHP et Ruby lisent la clé dans la variable d'environnement COMPANIES_API_KEY. La réponse et la liste des blocs sont décrites dans la partie API v2.

The Node.js, Python, PHP and Ruby examples read the key from the COMPANIES_API_KEY environment variable. The response and the list of blocks are described in the API v2 part.

De voorbeelden in Node.js, Python, PHP en Ruby lezen de sleutel uit de omgevingsvariabele COMPANIES_API_KEY. Het antwoord en de lijst met blokken worden beschreven in het deel API v2.

Die Beispiele in Node.js, Python, PHP und Ruby lesen den Schlüssel aus der Umgebungsvariable COMPANIES_API_KEY. Die Antwort und die Liste der Blöcke sind im Abschnitt API v2 beschrieben.

Autocomplétion dans un formulaire : passer par votre serveur

Autocomplete in a form: go through your server

Autocompletion in een formulier: via uw server

Autovervollständigung in einem Formular: über Ihren Server

Le navigateur appelle une route de votre serveur, qui ajoute la clé et appelle /v2/autocomplete. Exemple avec Express :

The browser calls an endpoint of your server, which adds the key and calls /v2/autocomplete. Example with Express:

De browser roept een endpoint van uw server aan, die de sleutel toevoegt en /v2/autocomplete aanroept. Voorbeeld met Express:

Der Browser ruft einen Endpunkt Ihres Servers auf, der den Schlüssel hinzufügt und /v2/autocomplete aufruft. Beispiel mit Express:

import express from "express";

const app = express();

app.get("/api/companies/suggest", async (req, res) => {
  const q = String(req.query.q ?? "").trim();
  if (q.length < 2) return res.json({ data: [] });

  const url = new URL("https://companies.jsonpage.com/v2/autocomplete");
  url.search = new URLSearchParams({ q, limit: "8" });
  const response = await fetch(url, { headers: { "X-API-Key": process.env.COMPANIES_API_KEY } });
  if (!response.ok) return res.json({ data: [] }); // too short, rate limited…: no suggestion

  res.json(await response.json());
});

app.listen(3000);

Côté navigateur, attendez environ 150 ms après la dernière frappe avant d'appeler votre route : une suggestion par pause de saisie, plutôt qu'une par touche.

In the browser, wait about 150 ms after the last keystroke before calling your endpoint: one suggestion per typing pause, rather than one per key.

Wacht in de browser ongeveer 150 ms na de laatste toetsaanslag voordat u uw endpoint aanroept: één suggestie per typpauze, in plaats van één per toets.

Warten Sie im Browser etwa 150 ms nach dem letzten Tastenanschlag, bevor Sie Ihren Endpunkt aufrufen: ein Vorschlag pro Tipppause statt einer pro Taste.

const input = document.querySelector("#company");
let timer;

input.addEventListener("input", () => {
  clearTimeout(timer);
  timer = setTimeout(async () => {
    const response = await fetch(`/api/companies/suggest?q=${encodeURIComponent(input.value)}`);
    const { data } = await response.json();
    // Show name, postal_code and city; keep id for the next step.
  }, 150);
});

Valider les identifiants saisis

Validate the identifiers entered

De ingevoerde identificatienummers valideren

Eingegebene Kennungen validieren

Avant d'enregistrer le formulaire, votre serveur vérifie en un appel le SIREN, le SIRET et le numéro de TVA saisis :

Before saving the form, your server checks the SIREN, SIRET and VAT number entered, in one call:

Voordat het formulier wordt opgeslagen, controleert uw server in één aanroep het ingevoerde SIREN, SIRET en btw-nummer:

Bevor das Formular gespeichert wird, prüft Ihr Server die eingegebene SIREN, SIRET und USt-IdNr. in einem einzigen Aufruf:

const params = new URLSearchParams({ id: "FR-652014051", vat: "FR14652014051" });
const response = await fetch(`https://companies.jsonpage.com/v2/validate?${params}`, {
  headers: { "X-API-Key": process.env.COMPANIES_API_KEY },
});
const { data } = await response.json();

if (!data.valid) {
  const failed = data.checks.filter((check) => !check.ok).map((check) => check.code);
  // For example ["vat_format"]: ask the user to correct the VAT number.
}

Les routes /v2/autocomplete et /v2/validate sont décrites dans la partie Formulaires.

The /v2/autocomplete and /v2/validate endpoints are described in the Forms part.

De endpoints /v2/autocomplete en /v2/validate worden beschreven in het deel Formulieren.

Die Endpunkte /v2/autocomplete und /v2/validate sind im Abschnitt Formulare beschrieben.

02 / API V2 (MULTI-PAYS)

Un format commun à plusieurs pays

L'API v2 renvoie le même format pour chaque pays servi, avec la même clé et le même forfait. La France, la Belgique, la Suisse et le Royaume-Uni sont disponibles.

Identifiant global

Chaque entreprise a un identifiant global : le code pays ISO 3166-1 en deux lettres, un tiret, puis le numéro du registre national, sans espace ni ponctuation. Exemples : FR-552100554 pour un SIREN français, GB-00445790 pour un company number britannique de 8 caractères, BE-0417497106 pour un numéro d'entreprise belge de 10 chiffres, CH-101374515 pour un numéro IDE suisse de 9 chiffres, sans le préfixe CHE.

Le pays fait partie de l'identifiant, car les numéros nationaux se chevauchent : un SIREN français et un numéro d'organisation norvégien ont tous deux 9 chiffres. Réutilisez tel quel l'identifiant renvoyé dans data.id.

Routes disponibles

Available endpoints

Beschikbare endpoints

Verfügbare Endpunkte

AuthentificationAdresse de base : https://companies.jsonpage.com. Envoyez votre clé API dans l'en-tête X-API-Key à chaque appel ; les exemples la lisent dans la variable COMPANIES_API_KEY. Seules les routes de santé du service s'en passent. Cliquez sur une route pour voir ses paramètres, un exemple et ses erreurs.
AuthenticationBase URL: https://companies.jsonpage.com. Send your API key in the X-API-Key header with every call; the examples read it from the COMPANIES_API_KEY variable. Only the service health endpoints work without it. Click an endpoint to see its parameters, an example and its errors.
AuthenticatieBasisadres: https://companies.jsonpage.com. Stuur uw API-sleutel bij elke aanroep mee in de header X-API-Key; de voorbeelden lezen hem uit de variabele COMPANIES_API_KEY. Alleen de endpoints voor de gezondheid van de dienst werken zonder. Klik op een endpoint om de parameters, een voorbeeld en de fouten te zien.
AuthentifizierungBasisadresse: https://companies.jsonpage.com. Senden Sie Ihren API-Schlüssel bei jedem Aufruf im Header X-API-Key; die Beispiele lesen ihn aus der Variablen COMPANIES_API_KEY. Nur die Endpunkte zum Dienstzustand kommen ohne ihn aus. Klicken Sie auf einen Endpunkt, um seine Parameter, ein Beispiel und seine Fehler zu sehen.

Entreprises

Companies

Ondernemingen

Unternehmen

GET/v2/companies/{id}Lire la fiche d'une entrepriseGet a company's recordDe fiche van een onderneming opvragenDen Datensatz eines Unternehmens abrufen

Renvoie la fiche d'une entreprise à partir de son identifiant global. Sans option, elle contient les champs de base : nom, statut, forme juridique, activité et dates. Ajoutez l'adresse, la TVA ou d'autres blocs avec include.

Paramètres

  • idobligatoiredans le chemin · texte

    Code pays, tiret, puis numéro du registre : FR-552100554, BE-0417497106, CH-101374515, GB-00445790.

  • includefacultatifdans la requête ?… · liste séparée par des virgules

    Blocs à ajouter, par exemple address,vat. Aucun par défaut. Valeurs : address, establishments, local, vat, signals, legal_events, officers, owners, sanctions. Contenu de chaque bloc : Blocs à la demande.

  • fieldsfacultatifdans la requête ?… · liste séparée par des virgules

    Ne garde que ces champs de base, par exemple name,status. Tous par défaut ; id est toujours renvoyé.

Returns a company's record from its global identifier. Without options, it holds the base fields: name, status, legal form, activity and dates. Add the address, the VAT number or other blocks with include.

Parameters

  • idrequiredin the path · text

    Country code, hyphen, then the registry number: FR-552100554, BE-0417497106, CH-101374515, GB-00445790.

  • includeoptionalin the query ?… · comma-separated list

    Blocks to add, for example address,vat. None by default. Values: address, establishments, local, vat, signals, legal_events, officers, owners, sanctions. What each block holds: Blocks on demand.

  • fieldsoptionalin the query ?… · comma-separated list

    Keeps only these base fields, for example name,status. All by default; id is always returned.

Geeft de fiche van een onderneming terug op basis van haar globale identificator. Zonder opties bevat ze de basisvelden: naam, status, rechtsvorm, activiteit en datums. Voeg het adres, het btw-nummer of andere blokken toe met include.

Parameters

  • idverplichtin het pad · tekst

    Landcode, koppelteken en dan het registernummer: FR-552100554, BE-0417497106, CH-101374515, GB-00445790.

  • includeoptioneelin de query ?… · kommagescheiden lijst

    Toe te voegen blokken, bijvoorbeeld address,vat. Standaard geen. Waarden: address, establishments, local, vat, signals, legal_events, officers, owners, sanctions. Inhoud van elk blok: Blokken op aanvraag.

  • fieldsoptioneelin de query ?… · kommagescheiden lijst

    Behoudt alleen deze basisvelden, bijvoorbeeld name,status. Standaard alle; id wordt altijd teruggegeven.

Liefert den Datensatz eines Unternehmens anhand seiner globalen Kennung. Ohne Optionen enthält er die Basisfelder: Name, Status, Rechtsform, Tätigkeit und Daten. Adresse, USt-IdNr. oder weitere Blöcke fügen Sie mit include hinzu.

Parameter

  • idPflichtim Pfad · Text

    Ländercode, Bindestrich, dann die Registernummer: FR-552100554, BE-0417497106, CH-101374515, GB-00445790.

  • includeoptionalin der Query ?… · kommagetrennte Liste

    Hinzuzufügende Blöcke, zum Beispiel address,vat. Standardmäßig keine. Werte: address, establishments, local, vat, signals, legal_events, officers, owners, sanctions. Inhalt der Blöcke: Blöcke auf Anfrage.

  • fieldsoptionalin der Query ?… · kommagetrennte Liste

    Behält nur diese Basisfelder, zum Beispiel name,status. Standardmäßig alle; id wird immer zurückgegeben.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/companies/CH-101374515?include=address" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": {
    "id": "CH-101374515",
    "country": "CH",
    "registry_id": "101374515",
    "name": "The Swatch Group AG",
    "status": "active",
    "legal_form": { "code": "0106", "label": "Société anonyme", "...": "..." },
    "address": { "postal_code": "2000", "city": "Neuchâtel", "...": "..." },
    "...": "..."
  },
  "meta": { "includes": { "address": "ok" }, "sources": [{ "...": "..." }] }
}

Erreurs possibles

  • 400 invalid_identifier — identifiant mal formé (attendu : code pays, tiret, numéro)
  • 400 unknown_include — bloc inconnu dans include
  • 404 country_not_supported — pays pas encore servi
  • 404 not_found — aucune entreprise avec cet identifiant

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Pays France, Belgique, Suisse et Royaume-Uni. Un bloc absent d'un pays est signalé dans meta.includes (not_available_in_country), sans erreur.

Possible errors

  • 400 invalid_identifier — malformed identifier (expected: country code, hyphen, number)
  • 400 unknown_include — unknown block in include
  • 404 country_not_supported — country not served yet
  • 404 not_found — no company with this identifier

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Countries France, Belgium, Switzerland and the United Kingdom. A block missing in a country is reported in meta.includes (not_available_in_country), without an error.

Mogelijke fouten

  • 400 invalid_identifier — ongeldige identificator (verwacht: landcode, koppelteken, nummer)
  • 400 unknown_include — onbekend blok in include
  • 404 country_not_supported — land nog niet beschikbaar
  • 404 not_found — geen onderneming met deze identificator

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Landen Frankrijk, België, Zwitserland en het Verenigd Koninkrijk. Een blok dat in een land ontbreekt, wordt gemeld in meta.includes (not_available_in_country), zonder fout.

Mögliche Fehler

  • 400 invalid_identifier — ungültige Kennung (erwartet: Ländercode, Bindestrich, Nummer)
  • 400 unknown_include — unbekannter Block in include
  • 404 country_not_supported — Land noch nicht verfügbar
  • 404 not_found — kein Unternehmen mit dieser Kennung

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

Länder Frankreich, Belgien, Schweiz und Vereinigtes Königreich. Ein Block, den es in einem Land nicht gibt, wird in meta.includes gemeldet (not_available_in_country), ohne Fehler.

GET/v2/companies/{id}/establishmentsLister les établissements d'une entrepriseList a company's establishmentsDe vestigingen van een onderneming oplijstenDie Niederlassungen eines Unternehmens auflisten

Renvoie les établissements (sites, magasins, agences) d'une entreprise, page par page. Pour la page suivante, passez la valeur next au paramètre after ; sur la dernière page, next vaut null.

Paramètres

  • idobligatoiredans le chemin · texte

    Identifiant global de l'entreprise, par exemple FR-552100554.

  • limitfacultatifdans la requête ?… · nombre entier

    Nombre d'établissements par page : 20 par défaut, de 1 à 100.

  • afterfacultatifdans la requête ?… · texte

    La valeur next de la page précédente. Absent : première page.

Returns a company's establishments (sites, shops, branches), page by page. For the next page, pass the next value to the after parameter; on the last page, next is null.

Parameters

  • idrequiredin the path · text

    Global identifier of the company, for example FR-552100554.

  • limitoptionalin the query ?… · integer

    Establishments per page: 20 by default, from 1 to 100.

  • afteroptionalin the query ?… · text

    The next value of the previous page. Absent: first page.

Geeft de vestigingen (sites, winkels, filialen) van een onderneming terug, pagina per pagina. Geef voor de volgende pagina de waarde next door aan de parameter after; op de laatste pagina is next gelijk aan null.

Parameters

  • idverplichtin het pad · tekst

    Globale identificator van de onderneming, bijvoorbeeld FR-552100554.

  • limitoptioneelin de query ?… · geheel getal

    Aantal vestigingen per pagina: standaard 20, van 1 tot 100.

  • afteroptioneelin de query ?… · tekst

    De waarde next van de vorige pagina. Afwezig: eerste pagina.

Liefert die Niederlassungen (Standorte, Geschäfte, Filialen) eines Unternehmens seitenweise. Für die nächste Seite übergeben Sie den Wert next an den Parameter after; auf der letzten Seite ist next gleich null.

Parameter

  • idPflichtim Pfad · Text

    Globale Kennung des Unternehmens, zum Beispiel FR-552100554.

  • limitoptionalin der Query ?… · Ganzzahl

    Niederlassungen pro Seite: Standard 20, von 1 bis 100.

  • afteroptionalin der Query ?… · Text

    Der Wert next der vorherigen Seite. Fehlt er: erste Seite.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/companies/FR-552100554/establishments?limit=2" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": {
    "items": [
      { "registry_id": "55210055400039", "name": "...", "head_office": false, "...": "..." },
      { "registry_id": "...", "...": "..." }
    ],
    "next": "..."
  },
  "meta": { "sources": [{ "name": "Registre officiel FR", "...": "..." }] }
}

Erreurs possibles

  • 400 invalid_parameter — limit hors de 1 à 100
  • 404 not_found — aucune entreprise avec cet identifiant
  • 404 not_available_in_country — pas d'établissements dans le registre de ce pays (Suisse, Royaume-Uni)

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Pays France (SIRET de 14 chiffres) et Belgique (numéro d'unité d'établissement de 10 chiffres) seulement.

Possible errors

  • 400 invalid_parameter — limit outside 1 to 100
  • 404 not_found — no company with this identifier
  • 404 not_available_in_country — no establishments in this country's register (Switzerland, United Kingdom)

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Countries France (14-digit SIRET) and Belgium (10-digit establishment unit number) only.

Mogelijke fouten

  • 400 invalid_parameter — limit buiten 1 tot 100
  • 404 not_found — geen onderneming met deze identificator
  • 404 not_available_in_country — geen vestigingen in het register van dit land (Zwitserland, Verenigd Koninkrijk)

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Landen Alleen Frankrijk (SIRET van 14 cijfers) en België (vestigingseenheidsnummer van 10 cijfers).

Mögliche Fehler

  • 400 invalid_parameter — limit außerhalb von 1 bis 100
  • 404 not_found — kein Unternehmen mit dieser Kennung
  • 404 not_available_in_country — keine Niederlassungen im Register dieses Landes (Schweiz, Vereinigtes Königreich)

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

Länder Nur Frankreich (14-stellige SIRET) und Belgien (10-stellige Niederlassungsnummer).

GET/v2/companies?q=…Chercher des entreprises par leur nomSearch companies by nameOndernemingen zoeken op naamUnternehmen nach Namen suchen

Cherche des entreprises par leur nom, dans un ou plusieurs pays. Les noms exacts arrivent en premier, puis les entreprises actives. Toute la recherche compte pour une seule requête.

Paramètres

  • qobligatoiredans la requête ?… · texte

    Le nom cherché. Chaque mot de 2 caractères ou plus doit figurer dans le nom ; le dernier peut être un début de mot (peug trouve PEUGEOT).

  • countryfacultatifdans la requête ?… · liste séparée par des virgules

    Pays où chercher, par exemple FR,BE. Tous par défaut. Valeurs : FR, BE, CH, GB.

  • statusfacultatifdans la requête ?… · texte

    active ne garde que les entreprises actives ; any (par défaut) garde tous les statuts.

  • limitfacultatifdans la requête ?… · nombre entier

    Nombre maximal de résultats : 20 par défaut, de 1 à 50.

Searches companies by name, in one or several countries. Exact names come first, then active companies. The whole search counts as a single request.

Parameters

  • qrequiredin the query ?… · text

    The name searched for. Every word of 2 characters or more must appear in the name; the last one can be the start of a word (peug finds PEUGEOT).

  • countryoptionalin the query ?… · comma-separated list

    Countries to search, for example FR,BE. All by default. Values: FR, BE, CH, GB.

  • statusoptionalin the query ?… · text

    active keeps active companies only; any (the default) keeps every status.

  • limitoptionalin the query ?… · integer

    Maximum number of results: 20 by default, from 1 to 50.

Zoekt ondernemingen op naam, in een of meer landen. Exacte namen komen eerst, daarna de actieve ondernemingen. De hele zoekopdracht telt als één aanvraag.

Parameters

  • qverplichtin de query ?… · tekst

    De gezochte naam. Elk woord van 2 tekens of meer moet in de naam voorkomen; het laatste mag het begin van een woord zijn (peug vindt PEUGEOT).

  • countryoptioneelin de query ?… · kommagescheiden lijst

    Landen waarin gezocht wordt, bijvoorbeeld FR,BE. Standaard alle. Waarden: FR, BE, CH, GB.

  • statusoptioneelin de query ?… · tekst

    active behoudt alleen actieve ondernemingen; any (standaard) behoudt elke status.

  • limitoptioneelin de query ?… · geheel getal

    Maximaal aantal resultaten: standaard 20, van 1 tot 50.

Sucht Unternehmen nach ihrem Namen, in einem oder mehreren Ländern. Exakte Namen kommen zuerst, dann aktive Unternehmen. Die gesamte Suche zählt als eine Anfrage.

Parameter

  • qPflichtin der Query ?… · Text

    Der gesuchte Name. Jedes Wort mit 2 oder mehr Zeichen muss im Namen vorkommen; das letzte darf ein Wortanfang sein (peug findet PEUGEOT).

  • countryoptionalin der Query ?… · kommagetrennte Liste

    Länder, in denen gesucht wird, zum Beispiel FR,BE. Standardmäßig alle. Werte: FR, BE, CH, GB.

  • statusoptionalin der Query ?… · Text

    active behält nur aktive Unternehmen; any (Standard) behält jeden Status.

  • limitoptionalin der Query ?… · Ganzzahl

    Höchstzahl der Ergebnisse: Standard 20, von 1 bis 50.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/companies?q=swatch&country=CH&limit=5" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": [
    { "id": "CH-101374515", "name": "The Swatch Group AG", "status": "active", "...": "..." },
    { "id": "CH-...", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Registre officiel CH", "...": "..." }] }
}

Erreurs possibles

  • 400 query_too_short — aucun mot de 2 caractères ou plus dans q
  • 400 invalid_parameter — status ou limit invalide
  • 404 country_not_supported — pays sans recherche par nom

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 query_too_short — no word of 2 characters or more in q
  • 400 invalid_parameter — invalid status or limit
  • 404 country_not_supported — country without name search

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 query_too_short — geen woord van 2 tekens of meer in q
  • 400 invalid_parameter — ongeldige status of limit
  • 404 country_not_supported — land zonder zoeken op naam

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 query_too_short — kein Wort mit 2 oder mehr Zeichen in q
  • 400 invalid_parameter — ungültiger Wert für status oder limit
  • 404 country_not_supported — Land ohne Namenssuche

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

GET/v2/companies?registry_id=…Retrouver une entreprise par son numéro, sans connaître le paysFind a company by its number, without knowing the countryEen onderneming vinden op haar nummer, zonder het land te kennenEin Unternehmen über seine Nummer finden, ohne das Land zu kennen

Cherche un numéro de registre national dans tous les pays servis et renvoie les entreprises qui le portent, le plus souvent une seule. La liste est vide si aucune ne correspond.

Paramètres

  • registry_idobligatoiredans la requête ?… · texte

    Le numéro, sans code pays, par exemple 552100554. Les espaces sont ignorés.

Looks for a national registry number in every country served and returns the companies that carry it, usually just one. The list is empty when none matches.

Parameters

  • registry_idrequiredin the query ?… · text

    The number, without the country code, for example 552100554. Spaces are ignored.

Zoekt een nationaal registernummer in alle beschikbare landen en geeft de ondernemingen terug die het dragen, meestal maar één. De lijst is leeg als er geen overeenkomt.

Parameters

  • registry_idverplichtin de query ?… · tekst

    Het nummer, zonder landcode, bijvoorbeeld 552100554. Spaties worden genegeerd.

Sucht eine nationale Registernummer in allen verfügbaren Ländern und liefert die Unternehmen, die sie tragen, meist nur eines. Die Liste ist leer, wenn keines passt.

Parameter

  • registry_idPflichtin der Query ?… · Text

    Die Nummer ohne Ländercode, zum Beispiel 552100554. Leerzeichen werden ignoriert.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/companies?registry_id=552100554" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": [
    { "id": "FR-552100554", "country": "FR", "registry_id": "552100554", "name": "PEUGEOT SA", "status": "closed", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Registre officiel FR", "...": "..." }] }
}

Erreurs possibles

  • 400 invalid_parameter — ni q ni registry_id dans la requête

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 invalid_parameter — neither q nor registry_id in the request

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 invalid_parameter — geen q en geen registry_id in de aanvraag

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 invalid_parameter — weder q noch registry_id in der Anfrage

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

POST/v2/companies/batchLire jusqu'à 100 entreprises en un appelGet up to 100 companies in one callTot 100 ondernemingen in één aanroep opvragenBis zu 100 Unternehmen in einem Aufruf abrufen

Renvoie plusieurs fiches en un seul appel, dans l'ordre demandé. Chaque élément contient data, ou error si l'entreprise est introuvable. Chaque entreprise du lot compte pour une requête.

Paramètres

  • idsobligatoiredans le corps JSON · liste JSON de textes

    Les identifiants globaux, de 1 à 100, par exemple ["FR-552100554", "BE-0417497106"].

  • includefacultatifdans le corps JSON · liste JSON de textes

    Blocs à ajouter à chaque fiche, mêmes valeurs que pour une seule entreprise. Aucun par défaut.

Returns several records in a single call, in the order asked. Each item holds data, or error when the company cannot be found. Each company in the batch counts as one request.

Parameters

  • idsrequiredin the JSON body · JSON list of strings

    The global identifiers, from 1 to 100, for example ["FR-552100554", "BE-0417497106"].

  • includeoptionalin the JSON body · JSON list of strings

    Blocks to add to each record, same values as for a single company. None by default.

Geeft meerdere fiches terug in één aanroep, in de gevraagde volgorde. Elk element bevat data, of error als de onderneming niet gevonden wordt. Elke onderneming in de batch telt als één aanvraag.

Parameters

  • idsverplichtin de JSON-body · JSON-lijst van teksten

    De globale identificatoren, van 1 tot 100, bijvoorbeeld ["FR-552100554", "BE-0417497106"].

  • includeoptioneelin de JSON-body · JSON-lijst van teksten

    Blokken om aan elke fiche toe te voegen, dezelfde waarden als voor één onderneming. Standaard geen.

Liefert mehrere Datensätze in einem Aufruf, in der angefragten Reihenfolge. Jedes Element enthält data oder error, wenn das Unternehmen nicht gefunden wird. Jedes Unternehmen im Stapel zählt als eine Anfrage.

Parameter

  • idsPflichtim JSON-Body · JSON-Liste von Texten

    Die globalen Kennungen, 1 bis 100, zum Beispiel ["FR-552100554", "BE-0417497106"].

  • includeoptionalim JSON-Body · JSON-Liste von Texten

    Blöcke für jeden Datensatz, dieselben Werte wie für ein einzelnes Unternehmen. Standardmäßig keine.

Exemple

Example

Voorbeeld

Beispiel

curl -X POST "https://companies.jsonpage.com/v2/companies/batch" \
  -H "X-API-Key: $COMPANIES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "ids": ["FR-552100554", "BE-0417497106"], "include": ["vat"] }'
{
  "data": [
    { "id": "FR-552100554", "data": { "id": "FR-552100554", "name": "PEUGEOT SA", "...": "..." } },
    { "id": "BE-0417497106", "data": { "id": "BE-0417497106", "name": "Anheuser-Busch InBev", "...": "..." } }
  ],
  "meta": { "sources": [{ "...": "..." }] }
}

Erreurs possibles

  • 400 invalid_json — corps illisible, de plus de 64 Ko, ou avec un autre champ que ids et include
  • 400 invalid_parameter — ids vide ou de plus de 100 éléments
  • 400 unknown_include — bloc inconnu dans include
  • 429 rate_limit_exceeded — le lot dépasse les requêtes qui vous restent pour la minute

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 invalid_json — unreadable body, larger than 64 KB, or with a field other than ids and include
  • 400 invalid_parameter — ids empty or longer than 100 items
  • 400 unknown_include — unknown block in include
  • 429 rate_limit_exceeded — the batch exceeds the requests you have left for the minute

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 invalid_json — onleesbare body, groter dan 64 kB of met een ander veld dan ids en include
  • 400 invalid_parameter — ids leeg of langer dan 100 elementen
  • 400 unknown_include — onbekend blok in include
  • 429 rate_limit_exceeded — de batch overschrijdt de aanvragen die u deze minuut nog hebt

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 invalid_json — unlesbarer Body, größer als 64 KB oder mit einem anderen Feld als ids und include
  • 400 invalid_parameter — ids leer oder mit mehr als 100 Elementen
  • 400 unknown_include — unbekannter Block in include
  • 429 rate_limit_exceeded — der Stapel übersteigt die Anfragen, die Ihnen in dieser Minute noch bleiben

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

Formulaires

Forms

Formulieren

Formulare

GET/v2/autocomplete?q=…Suggérer des entreprises pendant la saisieSuggest companies while the user typesOndernemingen voorstellen tijdens het typenUnternehmen während der Eingabe vorschlagen

Renvoie quelques suggestions légères (nom, ville, code postal) pour un champ de formulaire. Un numéro de registre saisi renvoie directement son entreprise. Appelez cette route depuis votre serveur, pour garder la clé secrète.

Paramètres

  • qobligatoiredans la requête ?… · texte

    Le texte saisi : un nom, un début de nom, ou un numéro (SIREN, SIRET, numéro belge, IDE suisse, company number britannique).

  • countryfacultatifdans la requête ?… · liste séparée par des virgules

    Pays où chercher, par exemple FR. Tous par défaut. Valeurs : FR, BE, CH, GB.

  • statusfacultatifdans la requête ?… · texte

    active (par défaut) ne propose que les entreprises actives ; any propose tous les statuts.

  • limitfacultatifdans la requête ?… · nombre entier

    Nombre maximal de suggestions : 8 par défaut, de 1 à 20.

Returns a few light suggestions (name, city, postal code) for a form field. A registry number typed in returns its company directly. Call this endpoint from your server, to keep the key secret.

Parameters

  • qrequiredin the query ?… · text

    The text typed: a name, the start of a name, or a number (SIREN, SIRET, Belgian number, Swiss UID, UK company number).

  • countryoptionalin the query ?… · comma-separated list

    Countries to search, for example FR. All by default. Values: FR, BE, CH, GB.

  • statusoptionalin the query ?… · text

    active (the default) suggests active companies only; any suggests every status.

  • limitoptionalin the query ?… · integer

    Maximum number of suggestions: 8 by default, from 1 to 20.

Geeft enkele lichte suggesties terug (naam, stad, postcode) voor een formulierveld. Een ingevoerd registernummer geeft meteen zijn onderneming terug. Roep dit endpoint aan vanaf uw server, zodat de sleutel geheim blijft.

Parameters

  • qverplichtin de query ?… · tekst

    De ingevoerde tekst: een naam, het begin van een naam of een nummer (SIREN, SIRET, Belgisch nummer, Zwitsers UID, Brits company number).

  • countryoptioneelin de query ?… · kommagescheiden lijst

    Landen waarin gezocht wordt, bijvoorbeeld FR. Standaard alle. Waarden: FR, BE, CH, GB.

  • statusoptioneelin de query ?… · tekst

    active (standaard) stelt alleen actieve ondernemingen voor; any stelt elke status voor.

  • limitoptioneelin de query ?… · geheel getal

    Maximaal aantal suggesties: standaard 8, van 1 tot 20.

Liefert einige schlanke Vorschläge (Name, Ort, Postleitzahl) für ein Formularfeld. Eine eingegebene Registernummer liefert direkt ihr Unternehmen. Rufen Sie diesen Endpunkt von Ihrem Server aus auf, damit der Schlüssel geheim bleibt.

Parameter

  • qPflichtin der Query ?… · Text

    Der eingegebene Text: ein Name, ein Namensanfang oder eine Nummer (SIREN, SIRET, belgische Nummer, Schweizer UID, britische Company Number).

  • countryoptionalin der Query ?… · kommagetrennte Liste

    Länder, in denen gesucht wird, zum Beispiel FR. Standardmäßig alle. Werte: FR, BE, CH, GB.

  • statusoptionalin der Query ?… · Text

    active (Standard) schlägt nur aktive Unternehmen vor; any schlägt jeden Status vor.

  • limitoptionalin der Query ?… · Ganzzahl

    Höchstzahl der Vorschläge: Standard 8, von 1 bis 20.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": [
    { "id": "FR-652014051", "name": "CARREFOUR", "status": "active", "postal_code": "91300", "city": "MASSY", "kind": "company" },
    { "id": "FR-...", "...": "..." }
  ]
}

Erreurs possibles

  • 400 query_too_short — aucun mot de 2 caractères ou plus dans q
  • 400 invalid_parameter — status ou limit invalide
  • 404 country_not_supported — pays sans recherche par nom

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 query_too_short — no word of 2 characters or more in q
  • 400 invalid_parameter — invalid status or limit
  • 404 country_not_supported — country without name search

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 query_too_short — geen woord van 2 tekens of meer in q
  • 400 invalid_parameter — ongeldige status of limit
  • 404 country_not_supported — land zonder zoeken op naam

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 query_too_short — kein Wort mit 2 oder mehr Zeichen in q
  • 400 invalid_parameter — ungültiger Wert für status oder limit
  • 404 country_not_supported — Land ohne Namenssuche

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

GET/v2/validateVérifier un identifiant, un SIRET ou un numéro de TVACheck an identifier, a SIRET or a VAT numberEen identificator, een SIRET of een btw-nummer controlerenEine Kennung, eine SIRET oder eine USt-IdNr. prüfen

Vérifie les numéros saisis dans un formulaire : format, existence, entreprise active, et qu'ils désignent bien la même entreprise. Donnez-en au moins un. La réponse est toujours 200 : valid dit si tous les contrôles sont réussis, checks détaille chacun.

Paramètres

  • idfacultatifdans la requête ?… · texte

    Identifiant global, par exemple FR-652014051.

  • siretfacultatifdans la requête ?… · texte

    SIRET de 14 chiffres d'un établissement français. Espaces, points et tirets ignorés.

  • vatfacultatifdans la requête ?… · texte

    Numéro de TVA français, belge ou suisse, par exemple FR14652014051. Espaces, points et tirets ignorés.

Checks the numbers typed in a form: format, existence, active company, and that they point to the same company. Give at least one. The response is always 200: valid tells whether every check passed, checks lists each one.

Parameters

  • idoptionalin the query ?… · text

    Global identifier, for example FR-652014051.

  • siretoptionalin the query ?… · text

    14-digit SIRET of a French establishment. Spaces, dots and hyphens are ignored.

  • vatoptionalin the query ?… · text

    French, Belgian or Swiss VAT number, for example FR14652014051. Spaces, dots and hyphens are ignored.

Controleert de nummers die in een formulier zijn ingevoerd: formaat, bestaan, actieve onderneming, en of ze naar dezelfde onderneming verwijzen. Geef er minstens één. Het antwoord is altijd 200: valid zegt of alle controles geslaagd zijn, checks toont elke controle.

Parameters

  • idoptioneelin de query ?… · tekst

    Globale identificator, bijvoorbeeld FR-652014051.

  • siretoptioneelin de query ?… · tekst

    SIRET van 14 cijfers van een Franse vestiging. Spaties, punten en koppeltekens worden genegeerd.

  • vatoptioneelin de query ?… · tekst

    Frans, Belgisch of Zwitsers btw-nummer, bijvoorbeeld FR14652014051. Spaties, punten en koppeltekens worden genegeerd.

Prüft die in einem Formular eingegebenen Nummern: Format, Existenz, aktives Unternehmen und ob sie dasselbe Unternehmen bezeichnen. Geben Sie mindestens eine an. Die Antwort ist immer 200: valid sagt, ob alle Prüfungen bestanden sind, checks listet jede einzeln auf.

Parameter

  • idoptionalin der Query ?… · Text

    Globale Kennung, zum Beispiel FR-652014051.

  • siretoptionalin der Query ?… · Text

    14-stellige SIRET einer französischen Niederlassung. Leerzeichen, Punkte und Bindestriche werden ignoriert.

  • vatoptionalin der Query ?… · Text

    Französische, belgische oder Schweizer USt-IdNr., zum Beispiel FR14652014051. Leerzeichen, Punkte und Bindestriche werden ignoriert.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "id_format", "ok": true, "value": "FR-652014051" },
      { "code": "vat_format", "ok": true, "value": "FR14652014051" },
      { "code": "identifiers_match", "ok": true, "value": "FR-652014051" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "...": "..." }
    ],
    "company": { "id": "FR-652014051", "name": "CARREFOUR", "...": "..." }
  }
}

Erreurs possibles

  • 400 invalid_parameter — ni id, ni siret, ni vat

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Pays id : France, Belgique, Suisse, Royaume-Uni. siret : France. vat : France, Belgique, Suisse. Liste des contrôles : Validation.

Possible errors

  • 400 invalid_parameter — none of id, siret and vat

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Countries id: France, Belgium, Switzerland, United Kingdom. siret: France. vat: France, Belgium, Switzerland. List of checks: Validation.

Mogelijke fouten

  • 400 invalid_parameter — geen id, siret of vat

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Landen id: Frankrijk, België, Zwitserland, Verenigd Koninkrijk. siret: Frankrijk. vat: Frankrijk, België, Zwitserland. Lijst van de controles: Validatie.

Mögliche Fehler

  • 400 invalid_parameter — weder id noch siret noch vat

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

Länder id: Frankreich, Belgien, Schweiz, Vereinigtes Königreich. siret: Frankreich. vat: Frankreich, Belgien, Schweiz. Liste der Prüfungen: Validierung.

Surveillance

Monitoring

Monitoring

Überwachung

PUT/v2/monitors/{id}Surveiller une entrepriseMonitor a companyEen onderneming volgenEin Unternehmen überwachen

Ajoute une entreprise à votre liste de surveillance : chaque changement détecté devient ensuite un événement. Répond 201 si elle est ajoutée, 200 si elle l'était déjà. Pas de corps de requête.

Paramètres

  • idobligatoiredans le chemin · texte

    Identifiant global de l'entreprise, par exemple FR-552100554.

Adds a company to your monitoring list: each change detected then becomes an event. Answers 201 when it is added, 200 when it already was. No request body.

Parameters

  • idrequiredin the path · text

    Global identifier of the company, for example FR-552100554.

Voegt een onderneming toe aan uw monitoringlijst: elke gedetecteerde wijziging wordt daarna een gebeurtenis. Antwoordt 201 als ze wordt toegevoegd, 200 als ze er al op stond. Geen request-body.

Parameters

  • idverplichtin het pad · tekst

    Globale identificator van de onderneming, bijvoorbeeld FR-552100554.

Fügt ein Unternehmen zu Ihrer Überwachungsliste hinzu: Jede erkannte Änderung wird danach zu einem Ereignis. Antwortet 201, wenn es hinzugefügt wird, 200, wenn es schon überwacht wurde. Kein Request-Body.

Parameter

  • idPflichtim Pfad · Text

    Globale Kennung des Unternehmens, zum Beispiel FR-552100554.

Exemple

Example

Voorbeeld

Beispiel

curl -X PUT "https://companies.jsonpage.com/v2/monitors/FR-552100554" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{ "data": { "company_id": "FR-552100554", "created": true } }

Erreurs possibles

  • 400 invalid_identifier — identifiant mal formé (attendu : code pays, tiret, numéro)
  • 403 monitor_limit_reached — limite d'entreprises surveillées de votre forfait atteinte
  • 404 not_found — aucune entreprise avec cet identifiant
  • 503 monitoring_unavailable — surveillance momentanément indisponible ; réessayez

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 invalid_identifier — malformed identifier (expected: country code, hyphen, number)
  • 403 monitor_limit_reached — your plan's limit of monitored companies is reached
  • 404 not_found — no company with this identifier
  • 503 monitoring_unavailable — monitoring temporarily unavailable; retry

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 invalid_identifier — ongeldige identificator (verwacht: landcode, koppelteken, nummer)
  • 403 monitor_limit_reached — de limiet van gevolgde ondernemingen van uw abonnement is bereikt
  • 404 not_found — geen onderneming met deze identificator
  • 503 monitoring_unavailable — monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 invalid_identifier — ungültige Kennung (erwartet: Ländercode, Bindestrich, Nummer)
  • 403 monitor_limit_reached — die Höchstzahl überwachter Unternehmen Ihres Tarifs ist erreicht
  • 404 not_found — kein Unternehmen mit dieser Kennung
  • 503 monitoring_unavailable — Überwachung vorübergehend nicht verfügbar; erneut versuchen

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

DELETE/v2/monitors/{id}Arrêter de surveiller une entrepriseStop monitoring a companyEen onderneming niet langer volgenDie Überwachung eines Unternehmens beenden

Retire une entreprise de votre liste de surveillance. Répond 204, sans corps. Les événements déjà enregistrés restent lisibles.

Paramètres

  • idobligatoiredans le chemin · texte

    Identifiant global de l'entreprise, par exemple FR-552100554.

Removes a company from your monitoring list. Answers 204, with no body. Events already recorded can still be read.

Parameters

  • idrequiredin the path · text

    Global identifier of the company, for example FR-552100554.

Verwijdert een onderneming uit uw monitoringlijst. Antwoordt 204, zonder body. Reeds geregistreerde gebeurtenissen blijven leesbaar.

Parameters

  • idverplichtin het pad · tekst

    Globale identificator van de onderneming, bijvoorbeeld FR-552100554.

Entfernt ein Unternehmen aus Ihrer Überwachungsliste. Antwortet 204, ohne Body. Bereits erfasste Ereignisse bleiben abrufbar.

Parameter

  • idPflichtim Pfad · Text

    Globale Kennung des Unternehmens, zum Beispiel FR-552100554.

Exemple

Example

Voorbeeld

Beispiel

curl -X DELETE "https://companies.jsonpage.com/v2/monitors/FR-552100554" \
  -H "X-API-Key: $COMPANIES_API_KEY"
HTTP/2 204

Erreurs possibles

  • 400 invalid_identifier — identifiant mal formé (attendu : code pays, tiret, numéro)
  • 404 not_monitored — l'entreprise n'est pas dans votre liste
  • 503 monitoring_unavailable — surveillance momentanément indisponible ; réessayez

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 invalid_identifier — malformed identifier (expected: country code, hyphen, number)
  • 404 not_monitored — the company is not in your list
  • 503 monitoring_unavailable — monitoring temporarily unavailable; retry

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 invalid_identifier — ongeldige identificator (verwacht: landcode, koppelteken, nummer)
  • 404 not_monitored — de onderneming staat niet op uw lijst
  • 503 monitoring_unavailable — monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 invalid_identifier — ungültige Kennung (erwartet: Ländercode, Bindestrich, Nummer)
  • 404 not_monitored — das Unternehmen steht nicht auf Ihrer Liste
  • 503 monitoring_unavailable — Überwachung vorübergehend nicht verfügbar; erneut versuchen

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

GET/v2/monitorsLister les entreprises surveilléesList the monitored companiesDe gevolgde ondernemingen oplijstenDie überwachten Unternehmen auflisten

Renvoie votre liste de surveillance, triée par identifiant, page par page. meta.count donne le nombre d'entreprises surveillées et meta.limit la limite de votre forfait.

Paramètres

  • limitfacultatifdans la requête ?… · nombre entier

    Entreprises par page : 100 par défaut, de 1 à 1 000.

  • afterfacultatifdans la requête ?… · texte

    La valeur next de la page précédente. Absent : première page.

Returns your monitoring list, sorted by identifier, page by page. meta.count gives the number of monitored companies and meta.limit your plan's limit.

Parameters

  • limitoptionalin the query ?… · integer

    Companies per page: 100 by default, from 1 to 1,000.

  • afteroptionalin the query ?… · text

    The next value of the previous page. Absent: first page.

Geeft uw monitoringlijst terug, gesorteerd op identificator, pagina per pagina. meta.count geeft het aantal gevolgde ondernemingen en meta.limit de limiet van uw abonnement.

Parameters

  • limitoptioneelin de query ?… · geheel getal

    Ondernemingen per pagina: standaard 100, van 1 tot 1.000.

  • afteroptioneelin de query ?… · tekst

    De waarde next van de vorige pagina. Afwezig: eerste pagina.

Liefert Ihre Überwachungsliste, nach Kennung sortiert, seitenweise. meta.count nennt die Zahl der überwachten Unternehmen und meta.limit die Grenze Ihres Tarifs.

Parameter

  • limitoptionalin der Query ?… · Ganzzahl

    Unternehmen pro Seite: Standard 100, von 1 bis 1.000.

  • afteroptionalin der Query ?… · Text

    Der Wert next der vorherigen Seite. Fehlt er: erste Seite.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/monitors?limit=100" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": [
    { "company_id": "FR-552100554", "created_at": "2026-10-02T09:12:44Z", "checked_at": "2026-10-02T10:00:03Z", "...": "..." }
  ],
  "next": null,
  "meta": { "count": 1, "limit": 1000 }
}

Erreurs possibles

  • 400 invalid_parameter — limit hors de 1 à 1 000
  • 503 monitoring_unavailable — surveillance momentanément indisponible ; réessayez

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 invalid_parameter — limit outside 1 to 1,000
  • 503 monitoring_unavailable — monitoring temporarily unavailable; retry

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 invalid_parameter — limit buiten 1 tot 1.000
  • 503 monitoring_unavailable — monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 invalid_parameter — limit außerhalb von 1 bis 1.000
  • 503 monitoring_unavailable — Überwachung vorübergehend nicht verfügbar; erneut versuchen

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

GET/v2/eventsLire les changements détectésRead the changes detectedDe gedetecteerde wijzigingen lezenDie erkannten Änderungen abrufen

Renvoie les événements de vos entreprises surveillées (changement d'adresse, de statut, nouvelle annonce…), du plus ancien au plus récent. Gardez l'identifiant du dernier événement traité et passez-le à after au prochain appel.

Paramètres

  • afterfacultatifdans la requête ?… · texte

    Ne renvoie que les événements postérieurs à celui-ci, par exemple evt_41. Absent : depuis le plus ancien.

  • limitfacultatifdans la requête ?… · nombre entier

    Événements par page : 100 par défaut, de 1 à 1 000.

  • company_idfacultatifdans la requête ?… · texte

    Ne renvoie que les événements de cette entreprise, par exemple FR-552100554.

Returns the events of your monitored companies (address or status change, new notice…), oldest first. Keep the identifier of the last event processed and pass it to after on the next call.

Parameters

  • afteroptionalin the query ?… · text

    Returns only the events after this one, for example evt_41. Absent: from the oldest.

  • limitoptionalin the query ?… · integer

    Events per page: 100 by default, from 1 to 1,000.

  • company_idoptionalin the query ?… · text

    Returns only the events of this company, for example FR-552100554.

Geeft de gebeurtenissen van uw gevolgde ondernemingen terug (wijziging van adres of status, nieuwe bekendmaking…), van oud naar nieuw. Bewaar de identificator van de laatst verwerkte gebeurtenis en geef die bij de volgende aanroep door aan after.

Parameters

  • afteroptioneelin de query ?… · tekst

    Geeft alleen de gebeurtenissen na deze terug, bijvoorbeeld evt_41. Afwezig: vanaf de oudste.

  • limitoptioneelin de query ?… · geheel getal

    Gebeurtenissen per pagina: standaard 100, van 1 tot 1.000.

  • company_idoptioneelin de query ?… · tekst

    Geeft alleen de gebeurtenissen van deze onderneming terug, bijvoorbeeld FR-552100554.

Liefert die Ereignisse Ihrer überwachten Unternehmen (Adress- oder Statusänderung, neue Bekanntmachung …), vom ältesten zum neuesten. Merken Sie sich die Kennung des zuletzt verarbeiteten Ereignisses und übergeben Sie sie beim nächsten Aufruf an after.

Parameter

  • afteroptionalin der Query ?… · Text

    Liefert nur die Ereignisse nach diesem, zum Beispiel evt_41. Fehlt er: ab dem ältesten.

  • limitoptionalin der Query ?… · Ganzzahl

    Ereignisse pro Seite: Standard 100, von 1 bis 1.000.

  • company_idoptionalin der Query ?… · Text

    Liefert nur die Ereignisse dieses Unternehmens, zum Beispiel FR-552100554.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/v2/events?after=evt_41&limit=100" \
  -H "X-API-Key: $COMPANIES_API_KEY"
{
  "data": [
    {
      "id": "evt_42",
      "type": "company.address_changed",
      "company_id": "FR-552100554",
      "detected_at": "2026-10-03T04:00:00Z",
      "data": { "before": "75 AV DE LA GRANDE ARMEE 75116 PARIS", "after": "..." }
    }
  ],
  "next": "evt_42"
}

Erreurs possibles

  • 400 invalid_parameter — after ou limit invalide
  • 400 invalid_identifier — company_id mal formé
  • 503 monitoring_unavailable — surveillance momentanément indisponible ; réessayez

Erreurs communes à toutes les routes (clé, adresse IP, débit) : Erreurs et limites.

Possible errors

  • 400 invalid_parameter — invalid after or limit
  • 400 invalid_identifier — malformed company_id
  • 503 monitoring_unavailable — monitoring temporarily unavailable; retry

Errors common to all endpoints (key, IP address, rate): Errors and limits.

Mogelijke fouten

  • 400 invalid_parameter — ongeldige after of limit
  • 400 invalid_identifier — ongeldige company_id
  • 503 monitoring_unavailable — monitoring tijdelijk niet beschikbaar; probeer opnieuw

Fouten die voor alle endpoints gelden (sleutel, IP-adres, limiet): Fouten en limieten.

Mögliche Fehler

  • 400 invalid_parameter — ungültiger Wert für after oder limit
  • 400 invalid_identifier — ungültige company_id
  • 503 monitoring_unavailable — Überwachung vorübergehend nicht verfügbar; erneut versuchen

Fehler, die für alle Endpunkte gelten (Schlüssel, IP-Adresse, Kontingent): Fehler und Limits.

Les webhooks, envoyés par l'API à votre serveur, sont décrits dans Webhooks.

Webhooks, sent by the API to your server, are described in Webhooks.

Webhooks, die de API naar uw server stuurt, worden beschreven in Webhooks.

Webhooks, die die API an Ihren Server sendet, sind unter Webhooks beschrieben.

Santé du service

Service health

Gezondheid van de dienst

Dienstzustand

GET/health/liveVérifier que le service répondCheck that the service answersControleren of de dienst antwoordtPrüfen, ob der Dienst antwortet

Répond 200 tant que le service tourne. Sans clé API : pratique pour une sonde de supervision.

Paramètres

Aucun paramètre.

Answers 200 as long as the service runs. No API key: handy for a monitoring probe.

Parameters

No parameters.

Antwoordt 200 zolang de dienst draait. Zonder API-sleutel: handig voor een monitoringprobe.

Parameters

Geen parameters.

Antwortet 200, solange der Dienst läuft. Ohne API-Schlüssel: praktisch für eine Überwachungssonde.

Parameter

Keine Parameter.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/health/live"
{ "status": "ok" }
GET/health/readyVérifier que les données sont prêtesCheck that the data is readyControleren of de gegevens klaar zijnPrüfen, ob die Daten bereit sind

Répond 200 avec "status": "ready" quand le service peut servir les données, sinon 503. Sans clé API.

Paramètres

Aucun paramètre.

Answers 200 with "status": "ready" when the service can serve data, otherwise 503. No API key.

Parameters

No parameters.

Antwoordt 200 met "status": "ready" als de dienst gegevens kan leveren, anders 503. Zonder API-sleutel.

Parameters

Geen parameters.

Antwortet 200 mit "status": "ready", wenn der Dienst Daten liefern kann, sonst 503. Ohne API-Schlüssel.

Parameter

Keine Parameter.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/health/ready"
{ "status": "ready", "...": "..." }

Erreurs possibles

  • 503 — le service n'est pas prêt ; réessayez plus tard

Possible errors

  • 503 — the service is not ready; retry later

Mogelijke fouten

  • 503 — de dienst is niet klaar; probeer later opnieuw

Mögliche Fehler

  • 503 — der Dienst ist nicht bereit; später erneut versuchen
GET/health/sourcesVoir l'état des données par paysSee the state of the data by countryDe toestand van de gegevens per land bekijkenDen Zustand der Daten je Land ansehen

Donne, pour chaque jeu de données, sa date et son état (ok, stale ou unknown), comme la page État du service. Sans clé API.

Paramètres

Aucun paramètre.

Gives, for each dataset, its date and its state (ok, stale or unknown), like the Service status page. No API key.

Parameters

No parameters.

Geeft voor elke gegevensset de datum en de toestand (ok, stale of unknown), zoals de pagina Status van de dienst. Zonder API-sleutel.

Parameters

Geen parameters.

Nennt für jeden Datenbestand das Datum und den Zustand (ok, stale oder unknown), wie die Seite Dienststatus. Ohne API-Schlüssel.

Parameter

Keine Parameter.

Exemple

Example

Voorbeeld

Beispiel

curl "https://companies.jsonpage.com/health/sources"
{
  "status": "ok",
  "checked_at": "...",
  "sources": [
    { "country": "FR", "name": "Registre officiel FR", "published_at": "2026-10-01", "status": "ok" },
    { "...": "..." }
  ]
}

Réponse de base

Sans option, la réponse fait environ 0,5 Ko et contient les mêmes champs dans tous les pays : identifiant, pays, numéro, nom, statut (active, closed ou unknown), forme juridique, activité avec son code européen NACE, dates de création, de fermeture et de mise à jour. Une valeur inconnue vaut null, et un champ de base n'est jamais omis.

curl "https://companies.jsonpage.com/v2/companies/FR-552100554" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552100554",
    "country": "FR",
    "registry_id": "552100554",
    "name": "PEUGEOT SA",
    "status": "closed",
    "legal_form": { "code": "5699", "label": "SA à directoire (s.a.i.)", "scheme": "FR-INSEE-CJ" },
    "activity": { "nace": "70.10", "code": "70.10Z", "label": "Activités des sièges sociaux", "scheme": "FR-NAF-REV2" },
    "incorporated_on": "1955-01-01",
    "closed_on": null,
    "updated_at": "2024-03-22T13:26:06Z"
  },
  "meta": {
    "sources": [{ "name": "Registre officiel FR", "published_at": "2026-10-01", "...": "..." }]
  }
}

Blocs à la demande

Ajoutez les blocs voulus avec le paramètre include, séparés par des virgules. Un bloc non demandé n'est ni lu ni calculé, et chaque appel compte pour une requête quels que soient les blocs. Un bloc inconnu provoque l'erreur unknown_include au lieu d'être ignoré.

BlocContenuPays
addressAdresse du siège : ligne, code postal, ville, pays et adresse formatée.France, Belgique, Suisse, Royaume-Uni
establishmentsLes 20 premiers établissements et le curseur de la page suivante.France, Belgique
localChamps propres au registre du pays, tels quels.France, Belgique, Suisse, Royaume-Uni
vatNuméro de TVA et résultat de sa vérification.France, Belgique, Suisse
signalsSignaux calculés à partir du registre ; liste vide si aucun.France, Belgique, Suisse, Royaume-Uni
legal_eventsLes 20 dernières annonces légales, de la plus récente à la plus ancienne.France
officersDirigeants et mandataires.Pas encore disponible
ownersPersonnes ayant un contrôle significatif (bénéficiaires effectifs) en cours ; liste vide si aucune.Royaume-Uni
sanctionsContrôle sur les listes de sanctions.France, Belgique, Suisse, Royaume-Uni

Pour chaque bloc demandé, meta.includes indique ok, ou not_available_in_country si le bloc n'est pas encore disponible dans ce pays ; le bloc est alors absent de data. C'est aujourd'hui le cas de officers dans tous les pays, et de establishments, vat et legal_events au Royaume-Uni, de legal_events et owners en Belgique, de establishments, legal_events et owners en Suisse, et de owners en France.

curl "https://companies.jsonpage.com/v2/companies/FR-552100554?include=vat,signals,officers" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552100554",
    "...": "...",
    "vat": { "number": "FR96552100554", "status": "pending", "checked_at": null, "source": "Vérification TVA" },
    "signals": [{ "code": "closed", "since": null, "detail": null }]
  },
  "meta": {
    "sources": [{ "name": "Registre officiel FR", "published_at": "2026-10-01", "...": "..." }],
    "includes": { "vat": "ok", "signals": "ok", "officers": "not_available_in_country" }
  }
}

Réponse abrégée : les champs de base sont omis ici.

Le paramètre fields réduit la réponse de base aux champs choisis, par exemple fields=name,status. L'identifiant id et les blocs demandés sont toujours conservés.

Particularités par pays

Country specifics

Bijzonderheden per land

Besonderheiten je Land

Le format est le même dans les quatre pays ; seules la numérotation et les blocs disponibles changent. Le code d'activité national reste dans activity.code et le statut d'origine du registre dans le bloc local.

The format is the same in all four countries; only the numbering and the available blocks differ. The national activity code stays in activity.code and the register's original status in the local block.

Het formaat is in de vier landen hetzelfde; alleen de nummering en de beschikbare blokken verschillen. De nationale activiteitscode blijft in activity.code en de oorspronkelijke status uit het register in het blok local.

Das Format ist in allen vier Ländern gleich; nur die Nummerierung und die verfügbaren Blöcke unterscheiden sich. Der nationale Tätigkeitscode bleibt in activity.code und der ursprüngliche Status aus dem Register im Block local.

France (FR)Belgique (BE)Suisse (CH)Royaume-Uni (GB)
CouvertureRegistres officiels des entreprises françaises et annonces légales.Registre officiel des entreprises belges : environ 2 millions d'entreprises actives et leurs unités d'établissement.Registre du commerce suisse : environ 795 000 entités juridiques actives.Registre britannique des sociétés : environ 5,7 millions de sociétés actives, et leurs bénéficiaires effectifs (personnes ayant un contrôle significatif).
NuméroSIREN, 9 chiffres : FR-552100554.Numéro d'entreprise, 10 chiffres commençant par 0 ou 1, dont les deux derniers sont une clé modulo 97 : BE-0417497106. Les formes 0417.497.106, BE0417497106 et l'ancien numéro à 9 chiffres (BE-417497106) sont acceptées.Numéro IDE, 9 chiffres après CHE, dont le dernier est une clé modulo 11 : CH-105909036 pour CHE-105.909.036. Les formes CHE-105.909.036, CHE105909036 et CHE-105.909.036 MWST (ou TVA, IVA) sont acceptées.Company number, 8 caractères, parfois avec un préfixe (SC, NI, OC…). Les zéros initiaux manquants sont rétablis : GB-6 devient GB-00000006.
statusA → active, C → closed.closed pour une situation juridique de fin (faillite clôturée, liquidation clôturée…) ; une entreprise en faillite ou en liquidation reste active. La source ne liste que les entités actives : une entreprise qui a cessé n'est plus trouvée.closed pour une entité radiée du registre ; closed_on reste null, la source ne donnant pas de date de radiation. Une entreprise en liquidation reste active.closed si la société est dissoute ; une société en liquidation ou en administration reste active.
legal_formCatégorie juridique (FR-INSEE-CJ).Forme juridique belge (BE-KBO-JURIDICAL-FORM), libellé en français.Forme juridique eCH-0097 (CH-ECH-0097-LEGAL-FORM), libellé en français.Catégorie de société britannique (GB-CH-CATEGORY).
activityNAF rév. 2 ; NACE = 4 premiers chiffres.Activité principale dans la version NACE-BEL la plus récente (BE-NACEBEL-2025) ; NACE rév. 2 = classe du code NACE-BEL 2008.null : la source ne publie pas de code d'activité (NOGA).Premier code SIC 2007 ; NACE rév. 2 quand la classe à 4 chiffres existe, sinon null.
updated_atDate de dernière mise à jour de la fiche.null ; la date des données figure dans meta.sources.null ; la date des données figure dans meta.sources. incorporated_on vaut aussi null : la source ne donne pas de date d'inscription.null ; la date des données figure dans meta.sources.
Blocs disponiblesaddress, establishments, local, vat, signals, legal_events, sanctions.address (siège), establishments (unités d'établissement), local (situation juridique, noms, activités), vat, signals, sanctions.address (siège), local (IDE, numéros du registre, but, commune, canton, noms traduits, autres sièges inscrits), vat, signals, sanctions.address (siège statutaire), local (statut, catégorie, codes SIC, échéances des comptes et de la déclaration annuelle, anciens noms), signals, owners (personnes ayant un contrôle significatif), sanctions.
Non disponiblesowners (le registre des bénéficiaires effectifs n'est plus public depuis le 31 juillet 2024).legal_events, owners (la source ne les publie pas).establishments, legal_events, owners (la source ne les publie pas).establishments (le registre britannique n'en a pas), vat (la vérification européenne de la TVA ne couvre plus le Royaume-Uni depuis le Brexit), legal_events.
France (FR)Belgium (BE)Switzerland (CH)United Kingdom (GB)
CoverageOfficial French company registers and legal notices.Official Belgian company register: about 2 million active enterprises and their establishment units.Swiss commercial register: about 795,000 active legal entities.UK companies register: about 5.7 million live companies, and their beneficial owners (persons with significant control).
NumberSIREN, 9 digits: FR-552100554.Enterprise number, 10 digits starting with 0 or 1, the last two being a modulo-97 check: BE-0417497106. The forms 0417.497.106, BE0417497106 and the old 9-digit number (BE-417497106) are accepted.UID, 9 digits after CHE, the last being a modulo-11 check digit: CH-105909036 for CHE-105.909.036. The forms CHE-105.909.036, CHE105909036 and CHE-105.909.036 MWST (or TVA, IVA) are accepted.Company number, 8 characters, sometimes with a prefix (SC, NI, OC…). Missing leading zeros are restored: GB-6 becomes GB-00000006.
statusA → active, C → closed.closed for a final juridical situation (bankruptcy closed, liquidation closed…); an enterprise in bankruptcy or liquidation stays active. The source lists active entities only: an enterprise that has ceased is no longer found.closed for an entity removed from the register; closed_on stays null, as the source gives no deletion date. A company in liquidation stays active.closed when the company is dissolved; a company in liquidation or administration stays active.
legal_formLegal category (FR-INSEE-CJ).Belgian legal form (BE-KBO-JURIDICAL-FORM), label in French.eCH-0097 legal form (CH-ECH-0097-LEGAL-FORM), label in French.UK company category (GB-CH-CATEGORY).
activityNAF rev. 2; NACE = first 4 digits.Main activity in the newest NACE-BEL version (BE-NACEBEL-2025); NACE rev. 2 = class of the NACE-BEL 2008 code.null: the source publishes no activity code (NOGA).First SIC 2007 code; NACE rev. 2 when the 4-digit class exists, otherwise null.
updated_atDate of the record's latest update.null; the date of the data is in meta.sources.null; the date of the data is in meta.sources. incorporated_on is null too: the source gives no registration date.null; the date of the data is in meta.sources.
Available blocksaddress, establishments, local, vat, signals, legal_events, sanctions.address (head office), establishments (establishment units), local (juridical situation, names, activities), vat, signals, sanctions.address (registered office), local (UID, register numbers, purpose, municipality, canton, translated names, other registered offices), vat, signals, sanctions.address (registered office), local (status, category, SIC codes, accounts and confirmation statement due dates, previous names), signals, owners (persons with significant control), sanctions.
Not availableowners (the register of beneficial owners is no longer public since 31 July 2024).legal_events, owners (the source does not publish them).establishments, legal_events, owners (the source does not publish them).establishments (the UK register has none), vat (EU VAT verification no longer covers the UK since Brexit), legal_events.
Frankrijk (FR)België (BE)Zwitserland (CH)Verenigd Koninkrijk (GB)
DekkingOfficiële Franse ondernemingsregisters en wettelijke aankondigingen.Officieel Belgisch ondernemingsregister: ongeveer 2 miljoen actieve ondernemingen en hun vestigingseenheden.Zwitsers handelsregister: ongeveer 795.000 actieve juridische entiteiten.Brits vennootschapsregister: ongeveer 5,7 miljoen actieve vennootschappen, en hun uiteindelijke begunstigden (personen met aanzienlijke zeggenschap).
NummerSIREN, 9 cijfers: FR-552100554.Ondernemingsnummer, 10 cijfers die beginnen met 0 of 1, waarvan de laatste twee een controlesleutel modulo 97 vormen: BE-0417497106. De vormen 0417.497.106, BE0417497106 en het oude nummer van 9 cijfers (BE-417497106) worden aanvaard.UID-nummer, 9 cijfers na CHE, waarvan het laatste een controlecijfer modulo 11 is: CH-105909036 voor CHE-105.909.036. De vormen CHE-105.909.036, CHE105909036 en CHE-105.909.036 MWST (of TVA, IVA) worden aanvaard.Company number, 8 tekens, soms met een prefix (SC, NI, OC…). Ontbrekende voorloopnullen worden aangevuld: GB-6 wordt GB-00000006.
statusA → active, C → closed.closed bij een juridische eindtoestand (faillissement afgesloten, vereffening afgesloten…); een onderneming in faillissement of vereffening blijft active. De bron bevat alleen actieve entiteiten: een onderneming die is stopgezet, wordt niet meer gevonden.closed voor een entiteit die uit het register is geschrapt; closed_on blijft null, omdat de bron geen datum van schrapping geeft. Een onderneming in vereffening blijft active.closed als de vennootschap ontbonden is; een vennootschap in vereffening of onder bewind blijft active.
legal_formJuridische categorie (FR-INSEE-CJ).Belgische rechtsvorm (BE-KBO-JURIDICAL-FORM), omschrijving in het Frans.Rechtsvorm volgens eCH-0097 (CH-ECH-0097-LEGAL-FORM), omschrijving in het Frans.Categorie van Britse vennootschap (GB-CH-CATEGORY).
activityNAF rev. 2; NACE = eerste 4 cijfers.Hoofdactiviteit in de recentste NACE-BEL-versie (BE-NACEBEL-2025); NACE rev. 2 = klasse van de NACE-BEL 2008-code.null: de bron publiceert geen activiteitscode (NOGA).Eerste SIC 2007-code; NACE rev. 2 als de klasse van 4 cijfers bestaat, anders null.
updated_atDatum van de laatste bijwerking van de fiche.null; de datum van de gegevens staat in meta.sources.null; de datum van de gegevens staat in meta.sources. Ook incorporated_on is null: de bron geeft geen inschrijvingsdatum.null; de datum van de gegevens staat in meta.sources.
Beschikbare blokkenaddress, establishments, local, vat, signals, legal_events, sanctions.address (zetel), establishments (vestigingseenheden), local (juridische toestand, namen, activiteiten), vat, signals, sanctions.address (zetel), local (UID, registernummers, doel, gemeente, kanton, vertaalde namen, andere ingeschreven zetels), vat, signals, sanctions.address (statutaire zetel), local (status, categorie, SIC-codes, vervaldata van de jaarrekening en de jaarlijkse verklaring, vroegere namen), signals, owners (personen met aanzienlijke zeggenschap), sanctions.
Niet beschikbaarowners (het register van uiteindelijke begunstigden is sinds 31 juli 2024 niet meer openbaar).legal_events, owners (de bron publiceert ze niet).establishments, legal_events, owners (de bron publiceert ze niet).establishments (het Britse register kent geen vestigingen), vat (de Europese btw-controle dekt het Verenigd Koninkrijk sinds de brexit niet meer), legal_events.
Frankreich (FR)Belgien (BE)Schweiz (CH)Vereinigtes Königreich (GB)
AbdeckungOffizielle französische Unternehmensregister und rechtliche Bekanntmachungen.Offizielles belgisches Unternehmensregister: rund 2 Millionen aktive Unternehmen und ihre Niederlassungseinheiten.Schweizer Handelsregister: rund 795.000 aktive Rechtseinheiten.Britisches Gesellschaftsregister: etwa 5,7 Millionen aktive Gesellschaften und ihre wirtschaftlich Berechtigten (Personen mit maßgeblicher Kontrolle).
NummerSIREN, 9 Ziffern: FR-552100554.Unternehmensnummer, 10 Ziffern, beginnend mit 0 oder 1, deren letzte zwei eine Prüfziffer nach Modulo 97 bilden: BE-0417497106. Die Schreibweisen 0417.497.106, BE0417497106 und die alte 9-stellige Nummer (BE-417497106) werden akzeptiert.UID, 9 Ziffern nach CHE, deren letzte eine Prüfziffer nach Modulo 11 ist: CH-105909036 für CHE-105.909.036. Die Schreibweisen CHE-105.909.036, CHE105909036 und CHE-105.909.036 MWST (oder TVA, IVA) werden akzeptiert.Company number, 8 Zeichen, manchmal mit Präfix (SC, NI, OC…). Fehlende führende Nullen werden ergänzt: GB-6 wird zu GB-00000006.
statusA → active, C → closed.closed bei einer abschließenden rechtlichen Situation (Konkurs abgeschlossen, Liquidation abgeschlossen…); ein Unternehmen in Konkurs oder Liquidation bleibt active. Die Quelle enthält nur aktive Einheiten: Ein Unternehmen, das seine Tätigkeit eingestellt hat, wird nicht mehr gefunden.closed für eine im Register gelöschte Einheit; closed_on bleibt null, da die Quelle kein Löschungsdatum angibt. Ein Unternehmen in Liquidation bleibt active.closed, wenn die Gesellschaft aufgelöst ist; eine Gesellschaft in Liquidation oder unter Insolvenzverwaltung bleibt active.
legal_formRechtskategorie (FR-INSEE-CJ).Belgische Rechtsform (BE-KBO-JURIDICAL-FORM), Bezeichnung auf Französisch.Rechtsform nach eCH-0097 (CH-ECH-0097-LEGAL-FORM), Bezeichnung auf Französisch.Kategorie der britischen Gesellschaft (GB-CH-CATEGORY).
activityNAF Rev. 2; NACE = erste 4 Ziffern.Haupttätigkeit in der neuesten NACE-BEL-Version (BE-NACEBEL-2025); NACE Rev. 2 = Klasse des NACE-BEL-2008-Codes.null: Die Quelle veröffentlicht keinen Tätigkeitscode (NOGA).Erster SIC-2007-Code; NACE Rev. 2, wenn die 4-stellige Klasse existiert, sonst null.
updated_atDatum der letzten Aktualisierung des Datensatzes.null; das Datum der Daten steht in meta.sources.null; das Datum der Daten steht in meta.sources. Auch incorporated_on ist null: Die Quelle nennt kein Eintragungsdatum.null; das Datum der Daten steht in meta.sources.
Verfügbare Blöckeaddress, establishments, local, vat, signals, legal_events, sanctions.address (Sitz), establishments (Niederlassungseinheiten), local (rechtliche Situation, Namen, Tätigkeiten), vat, signals, sanctions.address (Sitz), local (UID, Registernummern, Zweck, Gemeinde, Kanton, übersetzte Namen, weitere eingetragene Sitze), vat, signals, sanctions.address (eingetragener Sitz), local (Status, Kategorie, SIC-Codes, Fälligkeiten des Jahresabschlusses und der jährlichen Meldung, frühere Namen), signals, owners (Personen mit maßgeblicher Kontrolle), sanctions.
Nicht verfügbarowners (das Register der wirtschaftlich Berechtigten ist seit dem 31. Juli 2024 nicht mehr öffentlich).legal_events, owners (die Quelle veröffentlicht sie nicht).establishments, legal_events, owners (die Quelle veröffentlicht sie nicht).establishments (das britische Register führt keine Niederlassungen), vat (die europäische USt-Prüfung deckt das Vereinigte Königreich seit dem Brexit nicht mehr ab), legal_events.

Exemple au Royaume-Uni : un bloc non disponible dans le pays est signalé dans meta.includes, sans erreur.

UK example: a block that is not available in the country is reported in meta.includes, without an error.

Voorbeeld in het Verenigd Koninkrijk: een blok dat in het land niet beschikbaar is, wordt gemeld in meta.includes, zonder fout.

Beispiel im Vereinigten Königreich: Ein im Land nicht verfügbarer Block wird in meta.includes gemeldet, ohne Fehler.

curl "https://companies.jsonpage.com/v2/companies/GB-00445790?include=address,signals,vat" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "GB-00445790",
    "country": "GB",
    "registry_id": "00445790",
    "name": "TESCO PLC",
    "status": "active",
    "...": "...",
    "address": { "...": "..." },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Registre officiel GB", "published_at": "2026-10-01", "...": "..." }],
    "includes": { "address": "ok", "signals": "ok", "vat": "not_available_in_country" }
  }
}

Réponse abrégée et illustrative. La route /v2/companies/GB-00445790/establishments renvoie 404 not_available_in_country.

Shortened, illustrative response. The /v2/companies/GB-00445790/establishments endpoint returns 404 not_available_in_country.

Ingekort en illustratief antwoord. Het endpoint /v2/companies/GB-00445790/establishments geeft 404 not_available_in_country terug.

Gekürzte, beispielhafte Antwort. Der Endpunkt /v2/companies/GB-00445790/establishments gibt 404 not_available_in_country zurück.

Belgique

Belgium

België

Belgien

Les entreprises belges proviennent du registre officiel des entreprises belges. L'identifiant global est BE- suivi du numéro d'entreprise de 10 chiffres, par exemple BE-0417497106. L'API accepte aussi BE-0417.497.106, BE-BE0417497106 et l'ancien numéro à 9 chiffres (BE-417497106), et renvoie toujours la forme à 10 chiffres dans data.id. Les deux derniers chiffres sont une clé de contrôle : 97 moins le reste de la division des huit premiers par 97. Un numéro dont la clé est fausse provoque l'erreur 400 invalid_identifier.

Belgian enterprises come from the official Belgian company register. The global identifier is BE- followed by the 10-digit enterprise number, for example BE-0417497106. The API also accepts BE-0417.497.106, BE-BE0417497106 and the old 9-digit number (BE-417497106), and always returns the 10-digit form in data.id. The last two digits are a check: 97 minus the remainder of the first eight divided by 97. A number with a wrong check returns the 400 invalid_identifier error.

De Belgische ondernemingen komen uit het officiële Belgische ondernemingsregister. Het globale identificatienummer is BE- gevolgd door het ondernemingsnummer van 10 cijfers, bijvoorbeeld BE-0417497106. De API aanvaardt ook BE-0417.497.106, BE-BE0417497106 en het oude nummer van 9 cijfers (BE-417497106), en geeft in data.id altijd de vorm van 10 cijfers terug. De laatste twee cijfers zijn een controlesleutel: 97 min de rest van de deling van de eerste acht cijfers door 97. Een nummer met een foute sleutel geeft de fout 400 invalid_identifier.

Die belgischen Unternehmen stammen aus dem offiziellen belgischen Unternehmensregister. Die globale Kennung ist BE- gefolgt von der 10-stelligen Unternehmensnummer, zum Beispiel BE-0417497106. Die API akzeptiert auch BE-0417.497.106, BE-BE0417497106 und die alte 9-stellige Nummer (BE-417497106) und gibt in data.id immer die 10-stellige Form zurück. Die letzten beiden Ziffern sind eine Prüfziffer: 97 minus der Rest der Division der ersten acht Ziffern durch 97. Eine Nummer mit falscher Prüfziffer führt zum Fehler 400 invalid_identifier.

curl "https://companies.jsonpage.com/v2/companies/BE-0417497106?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "BE-0417497106",
    "country": "BE",
    "registry_id": "0417497106",
    "name": "Anheuser-Busch InBev",
    "status": "active",
    "legal_form": { "code": "014", "label": "Société anonyme", "scheme": "BE-KBO-JURIDICAL-FORM" },
    "activity": { "nace": "70.10", "code": "70100", "label": "Activités des sièges sociaux", "scheme": "BE-NACEBEL-2025" },
    "incorporated_on": "1977-08-02",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Grand-Place 1", "postal_code": "1000", "city": "Bruxelles", "country": "BE", "formatted": "Grand-Place 1, 1000 Bruxelles" },
    "vat": { "number": "BE0417497106", "status": "pending", "checked_at": null, "source": "Vérification TVA" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Registre officiel BE", "published_at": "2026-10-02", "...": "..." }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Le numéro de TVA belge est BE suivi du numéro d'entreprise ; il est vérifié comme en France (pending au premier appel, puis valid ou invalid). Les libellés de la forme juridique, de l'activité et de la situation juridique sont en français ; l'adresse est en français quand la source la donne, sinon en néerlandais.

The Belgian VAT number is BE followed by the enterprise number; it is checked as in France (pending on the first call, then valid or invalid). The labels of the legal form, the activity and the juridical situation are in French; the address is in French when the source gives it, otherwise in Dutch.

Het Belgische btw-nummer is BE gevolgd door het ondernemingsnummer; het wordt gecontroleerd zoals in Frankrijk (pending bij de eerste oproep, daarna valid of invalid). De omschrijvingen van de rechtsvorm, de activiteit en de juridische toestand zijn in het Frans; het adres is in het Frans als de bron het zo geeft, anders in het Nederlands.

Die belgische USt-IdNr. ist BE gefolgt von der Unternehmensnummer; sie wird wie in Frankreich geprüft (pending beim ersten Aufruf, danach valid oder invalid). Die Bezeichnungen der Rechtsform, der Tätigkeit und der rechtlichen Situation sind auf Französisch; die Adresse ist auf Französisch, wenn die Quelle sie so angibt, sonst auf Niederländisch.

Le bloc local reprend la fiche du registre belge telle quelle :

The local block holds the Belgian register record as is:

Het blok local bevat de fiche van het Belgische register zoals ze is:

Der Block local enthält den Datensatz des belgischen Registers unverändert:

"local": {
  "enterprise_number": "0417.497.106",
  "status": "AC",
  "juridical_situation": { "code": "000", "label": "Situation normale", "scheme": "BE-KBO-JURIDICAL-SITUATION" },
  "type_of_enterprise": "2",
  "juridical_form": { "code": "014", "label": "Société anonyme", "scheme": "BE-KBO-JURIDICAL-FORM" },
  "start_date": "1977-08-02",
  "names": [
    { "language": "fr", "type": "legal", "value": "Anheuser-Busch InBev" },
    { "language": "fr", "type": "abbreviation", "value": "AB Inbev" },
    { "language": "nl", "type": "legal", "value": "Anheuser-Busch InBev" },
    "..."
  ],
  "activities": [
    { "code": "70100", "nace_version": "2025", "group": "006", "classification": "MAIN", "label": "Activités des sièges sociaux" },
    { "code": "70100", "nace_version": "2008", "group": "001", "classification": "MAIN", "label": "Activités des sièges sociaux" },
    "..."
  ]
}
ChampContenu
enterprise_numberNuméro d'entreprise sous sa forme officielle, 0417.497.106.
statusStatut d'origine du registre (AC : active).
juridical_situationSituation juridique : code, libellé et schéma BE-KBO-JURIDICAL-SITUATION, par exemple 000 « Situation normale ». Elle donne les signaux insolvency_proceedings et liquidation.
type_of_enterprise1 personne physique, 2 personne morale.
juridical_form, start_dateForme juridique (identique à legal_form) et date de début de l'entreprise.
namesTous les noms inscrits : language (fr, nl, de, en, ou vide si la langue est inconnue), type (legal, abbreviation ou commercial) et value. Le champ name de base est le nom légal, en français s'il existe.
activitiesToutes les activités inscrites : code, nace_version (2003, 2008 ou 2025), group (groupe d'activités du registre, 001 pour la TVA), classification (MAIN principale, SECO secondaire, ANCI auxiliaire) et label.
FieldContent
enterprise_numberEnterprise number in its official form, 0417.497.106.
statusOriginal register status (AC: active).
juridical_situationJuridical situation: code, label and scheme BE-KBO-JURIDICAL-SITUATION, for example 000 “Situation normale”. It yields the insolvency_proceedings and liquidation signals.
type_of_enterprise1 natural person, 2 legal person.
juridical_form, start_dateLegal form (same as legal_form) and start date of the enterprise.
namesEvery registered name: language (fr, nl, de, en, or empty when the language is unknown), type (legal, abbreviation or commercial) and value. The base name field is the legal name, in French when it exists.
activitiesEvery registered activity: code, nace_version (2003, 2008 or 2025), group (register activity group, 001 for VAT), classification (MAIN main, SECO secondary, ANCI ancillary) and label.
VeldInhoud
enterprise_numberOndernemingsnummer in zijn officiële vorm, 0417.497.106.
statusOorspronkelijke status in het register (AC: actief).
juridical_situationJuridische toestand: code, omschrijving en schema BE-KBO-JURIDICAL-SITUATION, bijvoorbeeld 000 “Situation normale”. Ze levert de signalen insolvency_proceedings en liquidation.
type_of_enterprise1 natuurlijke persoon, 2 rechtspersoon.
juridical_form, start_dateRechtsvorm (gelijk aan legal_form) en begindatum van de onderneming.
namesAlle ingeschreven namen: language (fr, nl, de, en, of leeg als de taal onbekend is), type (legal, abbreviation of commercial) en value. Het basisveld name is de juridische naam, in het Frans als die bestaat.
activitiesAlle ingeschreven activiteiten: code, nace_version (2003, 2008 of 2025), group (activiteitengroep van het register, 001 voor de btw), classification (MAIN hoofdactiviteit, SECO nevenactiviteit, ANCI hulpactiviteit) en label.
FeldInhalt
enterprise_numberUnternehmensnummer in ihrer amtlichen Form, 0417.497.106.
statusUrsprünglicher Status im Register (AC: aktiv).
juridical_situationRechtliche Situation: Code, Bezeichnung und Schema BE-KBO-JURIDICAL-SITUATION, zum Beispiel 000 „Situation normale“. Aus ihr ergeben sich die Signale insolvency_proceedings und liquidation.
type_of_enterprise1 natürliche Person, 2 juristische Person.
juridical_form, start_dateRechtsform (wie legal_form) und Anfangsdatum des Unternehmens.
namesAlle eingetragenen Namen: language (fr, nl, de, en oder leer, wenn die Sprache unbekannt ist), type (legal, abbreviation oder commercial) und value. Das Basisfeld name ist der rechtliche Name, auf Französisch, wenn es ihn gibt.
activitiesAlle eingetragenen Tätigkeiten: code, nace_version (2003, 2008 oder 2025), group (Tätigkeitsgruppe des Registers, 001 für die Umsatzsteuer), classification (MAIN Haupttätigkeit, SECO Nebentätigkeit, ANCI Hilfstätigkeit) und label.

Le champ de base activity est l'activité principale dans la version NACE-BEL la plus récente, celle du groupe TVA en priorité ; activity.nace est la classe NACE rév. 2 issue du code NACE-BEL 2008.

The base activity field is the main activity in the newest NACE-BEL version, the VAT group first; activity.nace is the NACE rev. 2 class taken from the NACE-BEL 2008 code.

Het basisveld activity is de hoofdactiviteit in de recentste NACE-BEL-versie, bij voorkeur die van de btw-groep; activity.nace is de NACE rev. 2-klasse afgeleid van de NACE-BEL 2008-code.

Das Basisfeld activity ist die Haupttätigkeit in der neuesten NACE-BEL-Version, vorrangig die der Umsatzsteuergruppe; activity.nace ist die aus dem NACE-BEL-2008-Code abgeleitete Klasse der NACE Rev. 2.

Les établissements sont les unités d'établissement inscrites au registre belge : /v2/companies/BE-0417497106/establishments les liste page par page. registry_id est leur numéro à 10 chiffres, qui commence par 2 ; name est leur nom commercial, sinon le nom légal ; activity est leur activité principale et opened_on leur date de début. head_office vaut toujours false : le registre ne désigne pas de siège parmi les unités, et l'adresse du siège est dans le bloc address.

Establishments are the establishment units recorded in the Belgian register: /v2/companies/BE-0417497106/establishments lists them page by page. registry_id is their 10-digit number, which starts with 2; name is their commercial name, otherwise the legal name; activity is their main activity and opened_on their start date. head_office is always false: the register does not designate a head office among the units, and the head office address is in the address block.

De vestigingen zijn de vestigingseenheden uit het Belgische register: /v2/companies/BE-0417497106/establishments somt ze pagina per pagina op. registry_id is hun nummer van 10 cijfers, dat met 2 begint; name is hun handelsnaam, anders de juridische naam; activity is hun hoofdactiviteit en opened_on hun begindatum. head_office is altijd false: het register duidt geen zetel aan onder de eenheden, en het adres van de zetel staat in het blok address.

Die Niederlassungen sind die im belgischen Register eingetragenen Niederlassungseinheiten: /v2/companies/BE-0417497106/establishments listet sie seitenweise auf. registry_id ist ihre 10-stellige Nummer, die mit 2 beginnt; name ist ihr Handelsname, sonst der rechtliche Name; activity ist ihre Haupttätigkeit und opened_on ihr Anfangsdatum. head_office ist immer false: Das Register bestimmt keinen Sitz unter den Einheiten, und die Adresse des Sitzes steht im Block address.

{
  "registry_id": "2102217256",
  "name": "Anheuser-Busch InBev",
  "head_office": false,
  "status": "active",
  "activity": { "nace": "70.10", "code": "70100", "label": "Activités des sièges sociaux", "scheme": "BE-NACEBEL-2025" },
  "opened_on": "1976-10-01",
  "address": { "line": "Avenue Joseph-Prévers 26", "postal_code": "4020", "city": "Liège", "country": "BE", "formatted": "Avenue Joseph-Prévers 26, 4020 Liège" }
}

Signaux en Belgique : insolvency_proceedings pour une faillite ouverte, un concordat, un sursis ou une réorganisation judiciaire, et liquidation pour une dissolution ou une liquidation en cours ; leur detail est le libellé de la situation juridique. recently_created et closed suivent les mêmes règles que dans les autres pays. Seules les entités actives figurent dans la source : une entreprise qui a cessé n'est plus trouvée (404 not_found), et la surveillance la signale par l'événement company.removed_from_register.

Signals in Belgium: insolvency_proceedings for an opened bankruptcy, a judicial composition, a moratorium or a judicial reorganisation, and liquidation for a dissolution or liquidation in progress; their detail is the label of the juridical situation. recently_created and closed follow the same rules as in the other countries. Only active entities are in the source: an enterprise that has ceased is no longer found (404 not_found), and monitoring reports it with the company.removed_from_register event.

Signalen in België: insolvency_proceedings bij een geopend faillissement, een gerechtelijk akkoord, een opschorting of een gerechtelijke reorganisatie, en liquidation bij een lopende ontbinding of vereffening; hun detail is de omschrijving van de juridische toestand. recently_created en closed volgen dezelfde regels als in de andere landen. Alleen actieve entiteiten staan in de bron: een onderneming die is stopgezet, wordt niet meer gevonden (404 not_found), en de monitoring meldt ze met de gebeurtenis company.removed_from_register.

Signale in Belgien: insolvency_proceedings bei einem eröffneten Konkurs, einem gerichtlichen Vergleich, einem Zahlungsaufschub oder einer gerichtlichen Reorganisation und liquidation bei einer laufenden Auflösung oder Liquidation; ihr detail ist die Bezeichnung der rechtlichen Situation. recently_created und closed folgen denselben Regeln wie in den anderen Ländern. Nur aktive Einheiten sind in der Quelle enthalten: Ein Unternehmen, das seine Tätigkeit eingestellt hat, wird nicht mehr gefunden (404 not_found), und die Überwachung meldet es mit dem Ereignis company.removed_from_register.

Recherche par nom : chaque nom inscrit au registre belge est cherchable, nom légal, abréviation ou nom commercial, dans chaque langue. Par exemple, GET /v2/companies?q=ab+inbev&country=BE trouve d'abord Anheuser-Busch InBev. La validation accepte les numéros de TVA belges : GET /v2/validate?vat=BE0417497106.

Name search: every name recorded in the Belgian register is searchable, legal name, abbreviation or commercial name, in every language. For example, GET /v2/companies?q=ab+inbev&country=BE finds Anheuser-Busch InBev first. Validation accepts Belgian VAT numbers: GET /v2/validate?vat=BE0417497106.

Zoeken op naam: elke naam die in het Belgische register is ingeschreven, is doorzoekbaar, juridische naam, afkorting of handelsnaam, in elke taal. Zo vindt GET /v2/companies?q=ab+inbev&country=BE eerst Anheuser-Busch InBev. De validatie aanvaardt Belgische btw-nummers: GET /v2/validate?vat=BE0417497106.

Suche nach Namen: Jeder im belgischen Register eingetragene Name ist durchsuchbar, rechtlicher Name, Abkürzung oder Handelsname, in jeder Sprache. Zum Beispiel findet GET /v2/companies?q=ab+inbev&country=BE zuerst Anheuser-Busch InBev. Die Validierung akzeptiert belgische USt-IdNr.: GET /v2/validate?vat=BE0417497106.

Suisse

Switzerland

Zwitserland

Schweiz

Les entreprises suisses proviennent du registre du commerce suisse : environ 795 000 entités juridiques actives, de toutes formes (sociétés anonymes, Sàrl, raisons individuelles, coopératives, associations, fondations, succursales…). L'identifiant global est CH- suivi des 9 chiffres du numéro IDE, sans le préfixe CHE : CH-105909036 pour CHE-105.909.036. L'API accepte aussi CH-105.909.036, CH-CHE-105.909.036 et CH-CHE-105.909.036 MWST, et renvoie toujours la forme à 9 chiffres dans data.id ; la recherche par numéro, l'autocomplétion, la validation et l'enrichissement acceptent le numéro IDE tel quel (CHE-105.909.036, CHE105909036, CHE-105.909.036 MWST, ou avec TVA ou IVA). Le dernier chiffre est une clé de contrôle modulo 11 (norme eCH-0097) : un numéro dont la clé est fausse provoque l'erreur 400 invalid_identifier.

Swiss companies come from the Swiss commercial register: about 795,000 active legal entities of every form (companies limited by shares, limited liability companies, sole proprietorships, cooperatives, associations, foundations, branches…). The global identifier is CH- followed by the 9 digits of the UID, without the CHE prefix: CH-105909036 for CHE-105.909.036. The API also accepts CH-105.909.036, CH-CHE-105.909.036 and CH-CHE-105.909.036 MWST, and always returns the 9-digit form in data.id; search by number, autocomplete, validation and enrichment accept the UID as is (CHE-105.909.036, CHE105909036, CHE-105.909.036 MWST, or with TVA or IVA). The last digit is a modulo-11 check digit (eCH-0097 standard): a number with a wrong check digit returns the 400 invalid_identifier error.

De Zwitserse ondernemingen komen uit het Zwitserse handelsregister: ongeveer 795.000 actieve juridische entiteiten van elke vorm (naamloze vennootschappen, vennootschappen met beperkte aansprakelijkheid, eenmanszaken, coöperaties, verenigingen, stichtingen, bijkantoren…). Het globale identificatienummer is CH- gevolgd door de 9 cijfers van het UID-nummer, zonder het prefix CHE: CH-105909036 voor CHE-105.909.036. De API aanvaardt ook CH-105.909.036, CH-CHE-105.909.036 en CH-CHE-105.909.036 MWST, en geeft in data.id altijd de vorm van 9 cijfers terug; het zoeken op nummer, de autocompletion, de validatie en de verrijking aanvaarden het UID-nummer zoals het is (CHE-105.909.036, CHE105909036, CHE-105.909.036 MWST, of met TVA of IVA). Het laatste cijfer is een controlecijfer modulo 11 (norm eCH-0097): een nummer met een fout controlecijfer geeft de fout 400 invalid_identifier.

Die Schweizer Unternehmen stammen aus dem Schweizer Handelsregister: rund 795.000 aktive Rechtseinheiten aller Rechtsformen (Aktiengesellschaften, GmbH, Einzelunternehmen, Genossenschaften, Vereine, Stiftungen, Zweigniederlassungen…). Die globale Kennung ist CH- gefolgt von den 9 Ziffern der UID, ohne das Präfix CHE: CH-105909036 für CHE-105.909.036. Die API akzeptiert auch CH-105.909.036, CH-CHE-105.909.036 und CH-CHE-105.909.036 MWST und gibt in data.id immer die 9-stellige Form zurück; die Suche nach Nummer, die Autovervollständigung, die Validierung und die Anreicherung akzeptieren die UID unverändert (CHE-105.909.036, CHE105909036, CHE-105.909.036 MWST oder mit TVA oder IVA). Die letzte Ziffer ist eine Prüfziffer nach Modulo 11 (Standard eCH-0097): Eine Nummer mit falscher Prüfziffer führt zum Fehler 400 invalid_identifier.

curl "https://companies.jsonpage.com/v2/companies/CH-101374515?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "CH-101374515",
    "country": "CH",
    "registry_id": "101374515",
    "name": "The Swatch Group AG",
    "status": "active",
    "legal_form": { "code": "0106", "label": "Société anonyme", "scheme": "CH-ECH-0097-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": null,
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "c/o Caisse de pensions Swatch Group, faubourg de l'Hôpital 3", "postal_code": "2000", "city": "Neuchâtel", "country": "CH", "formatted": "c/o Caisse de pensions Swatch Group, faubourg de l'Hôpital 3, 2000 Neuchâtel" },
    "vat": { "number": "CHE-116.294.121 MWST", "status": "valid", "checked_at": "2026-10-03T22:39:43Z", "source": "Vérification TVA" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Registre officiel CH", "published_at": "2026-10-03", "...": "..." }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Le numéro de TVA suisse est le numéro IDE suivi de MWST (TVA en français, IVA en italien) ; il est vérifié lui aussi. Pour une entreprise membre d'un groupe TVA, comme ici, le numéro renvoyé est celui du groupe, avec lequel elle facture. Le libellé de la forme juridique est en français ; le nom et l'adresse sont ceux du registre, dans la langue de l'inscription.

The Swiss VAT number is the UID followed by MWST (TVA in French, IVA in Italian); it is verified too. For a member of a VAT group, as here, the number returned is the group's, which the company invoices with. The legal form label is in French; the name and address are those of the register, in the language of the registration.

Het Zwitserse btw-nummer is het UID-nummer gevolgd door MWST (TVA in het Frans, IVA in het Italiaans); ook dit nummer wordt gecontroleerd. Voor een lid van een btw-groep, zoals hier, is het teruggegeven nummer dat van de groep, waarmee de onderneming factureert. De omschrijving van de rechtsvorm is in het Frans; de naam en het adres zijn die van het register, in de taal van de inschrijving.

Die Schweizer MWST-Nummer ist die UID gefolgt von MWST (TVA auf Französisch, IVA auf Italienisch); auch sie wird geprüft. Bei einem Mitglied einer MWST-Gruppe, wie hier, ist die zurückgegebene Nummer die der Gruppe, mit der das Unternehmen fakturiert. Die Bezeichnung der Rechtsform ist auf Französisch; Name und Adresse sind die des Registers, in der Sprache der Eintragung.

Le bloc local reprend la fiche du registre du commerce. Nestlé est une seule entité juridique avec deux sièges inscrits, à Cham et à Vevey :

The local block holds the commercial register record. Nestlé is a single legal entity with two registered offices, in Cham and in Vevey:

Het blok local bevat de fiche uit het handelsregister. Nestlé is één juridische entiteit met twee ingeschreven zetels, in Cham en in Vevey:

Der Block local enthält den Datensatz des Handelsregisters. Nestlé ist eine einzige Rechtseinheit mit zwei eingetragenen Sitzen, in Cham und in Vevey:

curl "https://companies.jsonpage.com/v2/companies/CH-105909036?include=local" \
  -H "X-API-Key: VOTRE_CLE"
"local": {
  "uid": "CHE-105.909.036",
  "ehra_id": 126286,
  "chid": "CH17030010013",
  "legal_form": { "code": "0106", "label_fr": "Société anonyme", "label_de": "Aktiengesellschaft", "label_en": "Company limited by shares" },
  "purpose": "Beteiligung an Industrie-, Dienstleistungs-, Handels- und Finanzunternehmungen, …",
  "municipality": { "bfs_number": "1702", "name": "Cham" },
  "canton": "ZG",
  "names": [
    { "language": "", "value": "Nestlé AG" },
    { "language": "en", "value": "Nestlé Ltd." },
    { "language": "fr", "value": "Nestlé S.A." }
  ],
  "other_registrations": [
    {
      "ehra_id": 126288,
      "chid": "CH55000672935",
      "name": "Nestlé S.A.",
      "status": "active",
      "municipality": { "bfs_number": "5890", "name": "Vevey" },
      "canton": "VD",
      "address": { "line": "Avenue Nestlé 55", "postal_code": "1800", "city": "Vevey", "country": "CH", "formatted": "Avenue Nestlé 55, 1800 Vevey" }
    }
  ],
  "last_listed_on": null
}
ChampContenu
uidNuméro IDE sous sa forme officielle, CHE-105.909.036.
ehra_id, chidNuméro de l'entité au registre fédéral, un entier, et numéro du registre cantonal, par exemple CH17030010013.
legal_formForme juridique eCH-0097 : code et libellés label_fr, label_de et label_en.
purposeBut de l'entreprise tel qu'inscrit, dans la langue du registre.
municipality, cantonCommune du siège (bfs_number, numéro officiel de la commune, et name) et canton en deux lettres, par exemple ZG.
namesNom inscrit (language vide) et ses traductions inscrites (language de, fr, it, en ou rm), avec value. Le champ name de base est le nom inscrit.
other_registrationsAutres sièges inscrits de la même entité juridique : ehra_id, chid, name, status, municipality, canton et address ; [] s'il n'y en a pas.
last_listed_onEntités radiées seulement : dernier jour où le registre listait l'entité ; null sinon.
FieldContent
uidUID in its official form, CHE-105.909.036.
ehra_id, chidNumber of the entity in the federal register, an integer, and cantonal register number, for example CH17030010013.
legal_formeCH-0097 legal form: code and labels label_fr, label_de and label_en.
purposePurpose of the company as registered, in the language of the register.
municipality, cantonMunicipality of the registered office (bfs_number, the official municipality number, and name) and two-letter canton, for example ZG.
namesRegistered name (empty language) and its registered translations (language de, fr, it, en or rm), with value. The base name field is the registered name.
other_registrationsFurther registered offices of the same legal entity: ehra_id, chid, name, status, municipality, canton and address; [] when there are none.
last_listed_onRemoved entities only: the last day the register listed the entity; null otherwise.
VeldInhoud
uidUID-nummer in zijn officiële vorm, CHE-105.909.036.
ehra_id, chidNummer van de entiteit in het federale register, een geheel getal, en nummer van het kantonale register, bijvoorbeeld CH17030010013.
legal_formRechtsvorm volgens eCH-0097: code en omschrijvingen label_fr, label_de en label_en.
purposeDoel van de onderneming zoals ingeschreven, in de taal van het register.
municipality, cantonGemeente van de zetel (bfs_number, het officiële gemeentenummer, en name) en kanton in twee letters, bijvoorbeeld ZG.
namesIngeschreven naam (lege language) en de ingeschreven vertalingen ervan (language de, fr, it, en of rm), met value. Het basisveld name is de ingeschreven naam.
other_registrationsAndere ingeschreven zetels van dezelfde juridische entiteit: ehra_id, chid, name, status, municipality, canton en address; [] als er geen zijn.
last_listed_onAlleen geschrapte entiteiten: de laatste dag waarop het register de entiteit vermeldde; anders null.
FeldInhalt
uidUID in ihrer amtlichen Form, CHE-105.909.036.
ehra_id, chidNummer der Einheit im eidgenössischen Register, eine ganze Zahl, und Nummer des kantonalen Registers, zum Beispiel CH17030010013.
legal_formRechtsform nach eCH-0097: code und Bezeichnungen label_fr, label_de und label_en.
purposeZweck des Unternehmens wie eingetragen, in der Sprache des Registers.
municipality, cantonGemeinde des Sitzes (bfs_number, die amtliche Gemeindenummer, und name) und Kanton mit zwei Buchstaben, zum Beispiel ZG.
namesEingetragener Name (leere language) und seine eingetragenen Übersetzungen (language de, fr, it, en oder rm), mit value. Das Basisfeld name ist der eingetragene Name.
other_registrationsWeitere eingetragene Sitze derselben Rechtseinheit: ehra_id, chid, name, status, municipality, canton und address; [], wenn es keine gibt.
last_listed_onNur gelöschte Einheiten: der letzte Tag, an dem das Register die Einheit führte; sonst null.

Signaux en Suisse : liquidation quand le nom inscrit porte la mention légale « en liquidation » (« in Liquidation », « in liquidazione ») ; son detail le précise. closed désigne une entité radiée du registre. recently_created ne s'applique pas, faute de date d'inscription dans la source. Le registre suisse n'a pas d'établissements : /v2/companies/CH-101374515/establishments renvoie 404 not_available_in_country, et les blocs establishments, legal_events et owners sont signalés not_available_in_country dans meta.includes.

Signals in Switzerland: liquidation when the registered name carries the legal mention “in Liquidation” (“en liquidation”, “in liquidazione”); its detail says so. closed means an entity removed from the register. recently_created does not apply, as the source has no registration date. The Swiss register has no establishments: /v2/companies/CH-101374515/establishments returns 404 not_available_in_country, and the establishments, legal_events and owners blocks are reported as not_available_in_country in meta.includes.

Signalen in Zwitserland: liquidation als de ingeschreven naam de wettelijke vermelding “in Liquidation” (“en liquidation”, “in liquidazione”) draagt; het detail vermeldt dat. closed staat voor een entiteit die uit het register is geschrapt. recently_created is niet van toepassing, omdat de bron geen inschrijvingsdatum bevat. Het Zwitserse register kent geen vestigingen: /v2/companies/CH-101374515/establishments geeft 404 not_available_in_country terug, en de blokken establishments, legal_events en owners worden gemeld als not_available_in_country in meta.includes.

Signale in der Schweiz: liquidation, wenn der eingetragene Name den gesetzlichen Zusatz „in Liquidation“ („en liquidation“, „in liquidazione“) trägt; das detail gibt dies an. closed bezeichnet eine im Register gelöschte Einheit. recently_created gilt nicht, da die Quelle kein Eintragungsdatum enthält. Das Schweizer Register führt keine Niederlassungen: /v2/companies/CH-101374515/establishments gibt 404 not_available_in_country zurück, und die Blöcke establishments, legal_events und owners werden in meta.includes als not_available_in_country gemeldet.

Recherche par nom : le nom inscrit et ses traductions (allemand, français, italien, anglais) sont cherchables. Par exemple, GET /v2/companies?q=swatch&country=CH trouve Swatch AG et The Swatch Group AG. Dans l'autocomplétion, un numéro IDE saisi (CHE-101.374.515) renvoie directement l'entreprise ; les raisons individuelles (forme 0101) ont le kind person. La validation accepte les numéros de TVA suisses : GET /v2/validate?vat=CHE-105.909.036+MWST.

Name search: the registered name and its translations (German, French, Italian, English) are searchable. For example, GET /v2/companies?q=swatch&country=CH finds Swatch AG and The Swatch Group AG. In autocomplete, a UID typed (CHE-101.374.515) returns the company directly; sole proprietorships (form 0101) have the kind person. Validation accepts Swiss VAT numbers: GET /v2/validate?vat=CHE-105.909.036+MWST.

Zoeken op naam: de ingeschreven naam en de vertalingen ervan (Duits, Frans, Italiaans, Engels) zijn doorzoekbaar. Zo vindt GET /v2/companies?q=swatch&country=CH Swatch AG en The Swatch Group AG. In de autocompletion geeft een ingevoerd UID-nummer (CHE-101.374.515) meteen de onderneming terug; eenmanszaken (vorm 0101) hebben als kind person. De validatie aanvaardt Zwitserse btw-nummers: GET /v2/validate?vat=CHE-105.909.036+MWST.

Suche nach Namen: Der eingetragene Name und seine Übersetzungen (Deutsch, Französisch, Italienisch, Englisch) sind durchsuchbar. Zum Beispiel findet GET /v2/companies?q=swatch&country=CH Swatch AG und The Swatch Group AG. In der Autovervollständigung liefert eine eingegebene UID (CHE-101.374.515) direkt das Unternehmen; Einzelunternehmen (Rechtsform 0101) haben den kind person. Die Validierung akzeptiert Schweizer MWST-Nummern: GET /v2/validate?vat=CHE-105.909.036+MWST.

TVA

En France, le numéro de TVA intracommunautaire se calcule à partir du SIREN ; Jsonpage vérifie ensuite qu'il est valide. Aucune requête n'attend cette vérification : elle se fait en arrière-plan, et sa date figure dans checked_at.

En Belgique, le numéro de TVA est BE suivi du numéro d'entreprise, par exemple BE0417497106 ; il est vérifié de la même façon, avec les mêmes statuts.

In Belgium, the VAT number is BE followed by the enterprise number, for example BE0417497106; it is verified the same way, with the same statuses.

In België is het btw-nummer BE gevolgd door het ondernemingsnummer, bijvoorbeeld BE0417497106; het wordt op dezelfde manier gecontroleerd, met dezelfde statussen.

In Belgien ist die USt-IdNr. BE gefolgt von der Unternehmensnummer, zum Beispiel BE0417497106; sie wird auf dieselbe Weise geprüft, mit denselben Status.

En Suisse, le numéro de TVA est le numéro IDE suivi de MWST, par exemple CHE-101.374.515 MWST ; il est vérifié lui aussi. Les statuts sont les mêmes, avec en plus unavailable quand la vérification n'a pas pu aboutir ; elle est alors refaite plus tard. Pour une entreprise membre d'un groupe TVA, le numéro renvoyé est celui du groupe, avec lequel elle facture : Nestlé (CH-105909036) renvoie CHE-116.281.710 MWST.

In Switzerland, the VAT number is the UID followed by MWST, for example CHE-101.374.515 MWST; it is verified too. The statuses are the same, plus unavailable when the check could not be completed; it is then retried later. For a member of a VAT group, the number returned is the group's, which the company invoices with: Nestlé (CH-105909036) returns CHE-116.281.710 MWST.

In Zwitserland is het btw-nummer het UID-nummer gevolgd door MWST, bijvoorbeeld CHE-101.374.515 MWST; ook dit nummer wordt gecontroleerd. De statussen zijn dezelfde, met daarnaast unavailable als de controle niet kon worden afgerond; ze wordt dan later opnieuw uitgevoerd. Voor een lid van een btw-groep is het teruggegeven nummer dat van de groep, waarmee de onderneming factureert: Nestlé (CH-105909036) geeft CHE-116.281.710 MWST terug.

In der Schweiz ist die MWST-Nummer die UID gefolgt von MWST, zum Beispiel CHE-101.374.515 MWST; auch sie wird geprüft. Die Status sind dieselben, dazu kommt unavailable, wenn die Prüfung nicht abgeschlossen werden konnte; sie wird dann später wiederholt. Bei einem Mitglied einer MWST-Gruppe ist die zurückgegebene Nummer die der Gruppe, mit der das Unternehmen fakturiert: Nestlé (CH-105909036) liefert CHE-116.281.710 MWST.

StatutSignification
pendingNuméro calculé, vérification programmée : redemandez la fiche quelques secondes plus tard.
validLe numéro est confirmé.
invalidLe numéro n'est pas reconnu.
not_verifiedNuméro calculé, mais non vérifié par ce serveur.
unavailableSuisse seulement : la vérification n'a pas pu aboutir ; elle est refaite plus tard.

Signaux

Les signaux sont calculés à partir de la fiche du registre, avec les mêmes codes dans tous les pays. Chaque signal contient code, since (date de début de la situation, si le registre la donne) et detail. Une entreprise fermée ne reçoit que closed.

SignalSignificationPays
closedEntreprise fermée ou dissoute.France, Belgique, Suisse, Royaume-Uni
recently_createdCréée il y a moins de 12 mois.France, Belgique, Royaume-Uni
insolvency_proceedingsProcédure collective en cours ; le détail donne le dernier jugement en France, la situation juridique en Belgique.France, Belgique, Royaume-Uni
strike_off_proposedRadiation d'office proposée.Royaume-Uni
liquidationDissolution ou liquidation en cours, hors faillite ; le détail donne la situation juridique en Belgique, la mention du nom en Suisse.Belgique, Suisse
accounts_overdueComptes annuels en retard.Royaume-Uni
confirmation_statement_overdueDéclaration annuelle en retard.Royaume-Uni
dormantSociété dormante.Royaume-Uni

Annonces légales

Le bloc legal_events reprend les annonces légales officielles publiées depuis 2008 : procédures collectives, conciliations, rétablissements professionnels, radiations, ventes, immatriculations et annonces diverses. Les noms des personnes physiques et le texte libre des jugements ne sont jamais stockés ; le lien url mène à l'annonce officielle complète.

{
  "id": "A202601892890",
  "published_on": "2026-10-02",
  "family": "insolvency",
  "type": "initial",
  "judgment": {
    "family": "Jugement d'ouverture",
    "nature": "Jugement d'ouverture de liquidation judiciaire",
    "date": "2026-09-21"
  },
  "court": "Greffe du Tribunal de Commerce de Foix",
  "source": "Annonces légales FR",
  "url": "..."
}
ChampContenu
idIdentifiant de l'annonce.
published_onDate de publication.
familyinsolvency, conciliation, professional_recovery, deregistration, sale, registration ou other.
typeinitial, correction (rectificatif) ou cancellation (annulation).
judgmentFamille, nature et date du jugement ; null pour une annonce sans jugement.
courtTribunal ou greffe à l'origine de l'annonce.
source, urlOrigine de l'annonce et lien vers sa version officielle.

Le signal insolvency_proceedings lit ces jugements du plus récent au plus ancien : une clôture termine la procédure ; une ouverture, une conversion en liquidation ou un plan la maintient ouverte. Une annonce annulée est ignorée.

Bénéficiaires effectifs

Beneficial owners

Uiteindelijke begunstigden

Wirtschaftlich Berechtigte

Le bloc owners, disponible au Royaume-Uni, liste les bénéficiaires effectifs de la société (personnes ayant un contrôle significatif, persons with significant control) inscrits au registre britannique ; leur date figure dans meta.sources. Seules les personnes en cours sont renvoyées, jamais celles qui ont cessé leur contrôle. Les adresses ne sont jamais renvoyées, ni le jour de naissance : seuls le mois et l'année, comme au registre. Le bloc vaut [] si aucune personne n'est déclarée.

The owners block, available for the United Kingdom, lists the beneficial owners of the company (persons with significant control) recorded in the UK register; their date appears in meta.sources. Only current persons are returned, never those who have ceased to have control. Addresses are never returned, nor the day of birth: only the month and year, as in the register. The block is [] when no person is declared.

Het blok owners, beschikbaar voor het Verenigd Koninkrijk, somt de uiteindelijke begunstigden van de vennootschap op (personen met aanzienlijke zeggenschap, persons with significant control) die in het Britse register zijn ingeschreven; hun datum staat in meta.sources. Alleen huidige personen worden teruggegeven, nooit personen van wie de zeggenschap is beëindigd. Adressen worden nooit teruggegeven, en ook de geboortedag niet: alleen de maand en het jaar, zoals in het register. Het blok is [] als er geen persoon is aangegeven.

Der Block owners, verfügbar für das Vereinigte Königreich, listet die im britischen Register eingetragenen wirtschaftlich Berechtigten der Gesellschaft auf (Personen mit maßgeblicher Kontrolle, persons with significant control); ihr Datum erscheint in meta.sources. Es werden nur aktuelle Personen zurückgegeben, nie solche, deren Kontrolle beendet ist. Adressen werden nie zurückgegeben, ebenso wenig der Geburtstag: nur Monat und Jahr, wie im Register. Der Block ist [], wenn keine Person gemeldet ist.

En France, owners est signalé not_available_in_country dans meta.includes : le registre des bénéficiaires effectifs n'est plus public depuis le 31 juillet 2024. Son accès est réservé aux autorités, aux professionnels assujettis et aux personnes justifiant d'un intérêt légitime.

In France, owners is reported as not_available_in_country in meta.includes: the register of beneficial owners is no longer public since 31 July 2024. Access is reserved to authorities, obliged professionals and persons with a legitimate interest.

In Frankrijk wordt owners gemeld als not_available_in_country in meta.includes: het register van uiteindelijke begunstigden is sinds 31 juli 2024 niet meer openbaar. De toegang is voorbehouden aan de autoriteiten, aan meldingsplichtige beroepsbeoefenaars en aan personen die een legitiem belang aantonen.

In Frankreich wird owners als not_available_in_country in meta.includes gemeldet: Das Register der wirtschaftlich Berechtigten ist seit dem 31. Juli 2024 nicht mehr öffentlich. Der Zugang ist Behörden, verpflichteten Berufsträgern und Personen mit nachgewiesenem berechtigtem Interesse vorbehalten.

curl "https://companies.jsonpage.com/v2/companies/GB-00445790?include=owners,sanctions" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "GB-00445790",
    "...": "...",
    "owners": [
      {
        "kind": "individual",
        "name": "Mr John Smith",
        "nationality": "British",
        "country_of_residence": "England",
        "birth": { "year": 1970, "month": 5 },
        "control": {
          "shares": { "min": 50, "max": 75 },
          "voting_rights": { "min": 25, "max": 100 },
          "appoints_directors": true,
          "significant_influence": false,
          "via": ["trust"]
        },
        "natures_of_control": ["ownership-of-shares-50-to-75-percent-as-trust", "voting-rights-more-than-25-percent", "right-to-appoint-and-remove-directors"],
        "notified_on": "2016-04-06",
        "sanctioned": false
      }
    ],
    "sanctions": { "...": "..." }
  },
  "meta": {
    "sources": [
      { "name": "Registre officiel GB", "published_at": "2026-10-01", "...": "..." },
      { "name": "Bénéficiaires effectifs GB", "published_at": "2026-09-30", "...": "..." }
    ],
    "includes": { "owners": "ok", "sanctions": "ok" }
  }
}

Réponse abrégée et illustrative : la personne est fictive.

Shortened, illustrative response: the person is fictitious.

Ingekort en illustratief antwoord: de persoon is fictief.

Gekürzte, beispielhafte Antwort: Die Person ist fiktiv.

ChampContenu
kindindividual (personne physique), corporate_entity (société inscrite à un registre), legal_person (autre personne morale) ou super_secure (personne protégée par le registre britannique).
nameNom tel que publié ; null pour super_secure.
nationality, country_of_residence, birthPersonnes physiques seulement, absents sinon. birth contient year et month, jamais le jour.
control.shares, control.voting_rightsTranche détenue en pourcentage, { "min", "max" } (par exemple 25 à 50, 50 à 75, 75 à 100), ou null.
control.appoints_directorsDroit de nommer ou de révoquer la majorité des administrateurs.
control.significant_influenceInfluence ou contrôle significatif par un autre moyen.
control.viafirm et/ou trust quand le contrôle est exercé par une société de personnes ou une fiducie ; [] sinon.
natures_of_controlCodes bruts du registre britannique, tels qu'inscrits.
notified_onDate de début du contrôle déclarée au registre britannique.
identificationPersonnes morales seulement, absent sinon : registration_number, country_registered, legal_form.
sanctionedtrue quand le registre britannique indique que la personne est sanctionnée.
FieldContent
kindindividual (natural person), corporate_entity (company on a register), legal_person (other legal person) or super_secure (person protected by the UK register).
nameName as published; null for super_secure.
nationality, country_of_residence, birthIndividuals only, omitted otherwise. birth contains year and month, never the day.
control.shares, control.voting_rightsBand held, in percent, { "min", "max" } (for example 25 to 50, 50 to 75, 75 to 100), or null.
control.appoints_directorsRight to appoint or remove a majority of the directors.
control.significant_influenceSignificant influence or control by other means.
control.viafirm and/or trust when control is held through a firm or a trust; [] otherwise.
natures_of_controlRaw codes of the UK register, as recorded.
notified_onStart date of the control notified to the UK register.
identificationCorporate owners only, omitted otherwise: registration_number, country_registered, legal_form.
sanctionedtrue when the UK register marks the person as sanctioned.
VeldInhoud
kindindividual (natuurlijke persoon), corporate_entity (vennootschap ingeschreven in een register), legal_person (andere rechtspersoon) of super_secure (persoon beschermd door het Britse register).
nameNaam zoals gepubliceerd; null voor super_secure.
nationality, country_of_residence, birthAlleen natuurlijke personen, anders afwezig. birth bevat year en month, nooit de dag.
control.shares, control.voting_rightsAangehouden schijf in procent, { "min", "max" } (bijvoorbeeld 25 tot 50, 50 tot 75, 75 tot 100), of null.
control.appoints_directorsRecht om de meerderheid van de bestuurders te benoemen of te ontslaan.
control.significant_influenceAanzienlijke invloed of zeggenschap op een andere manier.
control.viafirm en/of trust als de zeggenschap wordt uitgeoefend via een personenvennootschap of een trust; anders [].
natures_of_controlRuwe codes van het Britse register, zoals ingeschreven.
notified_onBegindatum van de zeggenschap, zoals aangegeven bij het Britse register.
identificationAlleen rechtspersonen, anders afwezig: registration_number, country_registered, legal_form.
sanctionedtrue als het Britse register aangeeft dat de persoon gesanctioneerd is.
FeldInhalt
kindindividual (natürliche Person), corporate_entity (in einem Register eingetragene Gesellschaft), legal_person (andere juristische Person) oder super_secure (vom britischen Register geschützte Person).
nameName wie veröffentlicht; null bei super_secure.
nationality, country_of_residence, birthNur bei natürlichen Personen, sonst nicht vorhanden. birth enthält year und month, nie den Tag.
control.shares, control.voting_rightsGehaltene Spanne in Prozent, { "min", "max" } (zum Beispiel 25 bis 50, 50 bis 75, 75 bis 100), oder null.
control.appoints_directorsRecht, die Mehrheit der Direktoren zu ernennen oder abzuberufen.
control.significant_influenceMaßgeblicher Einfluss oder maßgebliche Kontrolle auf andere Weise.
control.viafirm und/oder trust, wenn die Kontrolle über eine Personengesellschaft oder einen Trust ausgeübt wird; sonst [].
natures_of_controlRohcodes des britischen Registers, wie eingetragen.
notified_onBeginndatum der Kontrolle, wie dem britischen Register gemeldet.
identificationNur bei juristischen Personen, sonst nicht vorhanden: registration_number, country_registered, legal_form.
sanctionedtrue, wenn das britische Register die Person als sanktioniert kennzeichnet.

Sanctions

Sanctions

Sancties

Sanktionen

Le bloc sanctions, disponible en France, en Belgique, en Suisse et au Royaume-Uni, compare l'entreprise aux principales listes de sanctions internationales et nationales officielles : Union européenne (EU), Nations unies (UN), France (FR), Royaume-Uni (UK) et États-Unis (US). Seules les entités inscrites (personnes morales) sont comparées, jamais les personnes physiques.

The sanctions block, available for France, Belgium, Switzerland and the United Kingdom, compares the company with the main official international and national sanctions lists: European Union (EU), United Nations (UN), France (FR), United Kingdom (UK) and United States (US). Only listed entities (legal persons) are compared, never natural persons.

Het blok sanctions, beschikbaar voor Frankrijk, België, Zwitserland en het Verenigd Koninkrijk, vergelijkt de onderneming met de belangrijkste officiële internationale en nationale sanctielijsten: Europese Unie (EU), Verenigde Naties (UN), Frankrijk (FR), Verenigd Koninkrijk (UK) en Verenigde Staten (US). Alleen ingeschreven entiteiten (rechtspersonen) worden vergeleken, nooit natuurlijke personen.

Der Block sanctions, verfügbar für Frankreich, Belgien, die Schweiz und das Vereinigte Königreich, gleicht das Unternehmen mit den wichtigsten offiziellen internationalen und nationalen Sanktionslisten ab: Europäische Union (EU), Vereinte Nationen (UN), Frankreich (FR), Vereinigtes Königreich (UK) und Vereinigte Staaten (US). Es werden nur gelistete Einrichtungen (juristische Personen) abgeglichen, nie natürliche Personen.

curl "https://companies.jsonpage.com/v2/companies/FR-552100554?include=sanctions" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552100554",
    "...": "...",
    "sanctions": {
      "status": "no_match",
      "matches": [],
      "lists": [
        { "list": "EU", "name": "Liste de sanctions UE", "published_at": "2026-09-22", "entities": 1776 },
        { "list": "UN", "name": "Liste de sanctions ONU", "published_at": "2026-10-01", "entities": 275 },
        { "list": "FR", "name": "Liste de sanctions FR", "published_at": "2026-10-02", "entities": 1924 },
        { "list": "UK", "name": "Liste de sanctions UK", "published_at": "2026-10-02", "entities": 1645 },
        { "list": "US", "name": "Liste de sanctions US", "published_at": "2026-10-02", "entities": 10037 }
      ]
    }
  },
  "meta": { "sources": [{ "...": "..." }], "includes": { "sanctions": "ok" } }
}

Réponse abrégée et illustrative : les nombres d'entités varient avec les listes.

Shortened, illustrative response: the entity counts change with the lists.

Ingekort en illustratief antwoord: het aantal entiteiten varieert met de lijsten.

Gekürzte, beispielhafte Antwort: Die Anzahl der Einrichtungen ändert sich mit den Listen.

StatutSignification
matchLe numéro de l'entreprise (SIREN, numéro d'entreprise belge, numéro IDE suisse ou company number) est inscrit comme numéro d'immatriculation du même pays. Seule la liste de l'UE indique le pays de ces numéros.
possible_matchLe nom de l'entreprise est identique à un nom ou à un alias inscrit, une fois ignorés la casse, les accents, la ponctuation et les formes juridiques. À vérifier : un homonyme est possible.
no_matchAucune correspondance par numéro ni par nom.
StatusMeaning
matchThe company's number (SIREN, Belgian enterprise number, Swiss UID or company number) is listed as a registration number of the same country. Only the EU list gives the country of these numbers.
possible_matchThe company name equals a listed name or alias once case, accents, punctuation and legal forms are ignored. To be checked: it may be a namesake.
no_matchNo match by number or by name.
StatusBetekenis
matchHet nummer van de onderneming (SIREN, Belgisch ondernemingsnummer, Zwitsers UID-nummer of company number) staat vermeld als registratienummer van hetzelfde land. Alleen de EU-lijst vermeldt het land van deze nummers.
possible_matchDe naam van de onderneming is identiek aan een vermelde naam of alias, zonder rekening te houden met hoofdletters, accenten, leestekens en rechtsvormen. Te controleren: een naamgenoot is mogelijk.
no_matchGeen overeenkomst op nummer of op naam.
StatusBedeutung
matchDie Nummer des Unternehmens (SIREN, belgische Unternehmensnummer, Schweizer UID oder Company number) ist als Registernummer desselben Landes gelistet. Nur die EU-Liste gibt das Land dieser Nummern an.
possible_matchDer Name des Unternehmens stimmt mit einem gelisteten Namen oder Alias überein, wenn Groß- und Kleinschreibung, Akzente, Satzzeichen und Rechtsformen ignoriert werden. Zu prüfen: Es kann sich um einen Namensvetter handeln.
no_matchKeine Übereinstimmung über Nummer oder Namen.

Chaque élément de matches contient list (EU, UN, FR, UK ou US), reference (référence de l'entité dans sa liste), name (nom principal inscrit), match_type (identifier ou name) et listed_on (date d'inscription, si la liste la donne). lists donne, pour chaque liste, son nom, sa date de publication et le nombre d'entités comparées.

Each item of matches contains list (EU, UN, FR, UK or US), reference (the entity's reference in its list), name (main listed name), match_type (identifier or name) and listed_on (listing date, when the list gives it). lists gives, for each list, its name, its publication date and the number of entities compared.

Elk element van matches bevat list (EU, UN, FR, UK of US), reference (referentie van de entiteit in haar lijst), name (vermelde hoofdnaam), match_type (identifier of name) en listed_on (datum van vermelding, als de lijst die opgeeft). lists geeft voor elke lijst de naam, de publicatiedatum en het aantal vergeleken entiteiten.

Jedes Element von matches enthält list (EU, UN, FR, UK oder US), reference (Referenz der Einrichtung in ihrer Liste), name (gelisteter Hauptname), match_type (identifier oder name) und listed_on (Datum der Listung, sofern die Liste es angibt). lists gibt für jede Liste ihren Namen, ihr Veröffentlichungsdatum und die Anzahl der abgeglichenen Einrichtungen an.

Résultat indicatif. Un no_match n'est pas une garantie : une entité sanctionnée peut être inscrite sous un autre nom, sans numéro, ou contrôlée par une personne inscrite. Ce contrôle ne remplace pas vos propres obligations de vigilance (KYC, lutte contre le blanchiment), comme le précisent les CGV.

Indicative result. A no_match is not a guarantee: a sanctioned entity can be listed under another name, without a number, or be controlled by a listed person. This screening does not replace your own due diligence obligations (KYC, anti-money-laundering), as stated in the Terms.

Indicatief resultaat. Een no_match is geen garantie: een gesanctioneerde entiteit kan onder een andere naam of zonder nummer vermeld staan, of onder zeggenschap staan van een vermelde persoon. Deze controle vervangt uw eigen waakzaamheidsverplichtingen (KYC, witwasbestrijding) niet, zoals vermeld in de Algemene voorwaarden.

Unverbindliches Ergebnis. Ein no_match ist keine Garantie: Eine sanktionierte Einrichtung kann unter einem anderen Namen oder ohne Nummer gelistet sein oder von einer gelisteten Person kontrolliert werden. Diese Prüfung ersetzt nicht Ihre eigenen Sorgfaltspflichten (KYC, Geldwäschebekämpfung), wie in den AGB festgelegt.

Établissements

La route /v2/companies/{id}/establishments renvoie les établissements page par page. Le paramètre limit va de 1 à 100 (20 par défaut). Chaque page contient items et next. Passez la valeur de next au paramètre after pour obtenir la page suivante. Sur la dernière page, next vaut null.

curl "https://companies.jsonpage.com/v2/companies/FR-552100554/establishments?limit=50&after=55210055400039" \
  -H "X-API-Key: VOTRE_CLE"

Chaque établissement contient registry_id (le SIRET en France, le numéro d'unité d'établissement en Belgique), name, head_office, status, activity, opened_on et address.

Recherche par nom

Name search

Zoeken op naam

Suche nach Namen

GET /v2/companies?q={nom} cherche les entreprises par leur nom. Chaque mot de 2 caractères ou plus doit figurer dans le nom ; le dernier mot peut être un début de mot de 3 lettres ou plus (« peug » trouve PEUGEOT). La casse, les accents et la ponctuation sont ignorés.

GET /v2/companies?q={name} searches companies by name. Every word of 2 characters or more must appear in the name; the last word can be the start of a word of 3 letters or more ("peug" finds PEUGEOT). Case, accents and punctuation are ignored.

GET /v2/companies?q={name} zoekt ondernemingen op naam. Elk woord van 2 tekens of meer moet in de naam voorkomen; het laatste woord mag het begin zijn van een woord van 3 letters of meer (“peug” vindt PEUGEOT). Hoofdletters, accenten en leestekens worden genegeerd.

GET /v2/companies?q={name} sucht Unternehmen nach ihrem Namen. Jedes Wort mit 2 oder mehr Zeichen muss im Namen vorkommen; das letzte Wort darf der Anfang eines Wortes mit 3 oder mehr Buchstaben sein („peug“ findet PEUGEOT). Groß- und Kleinschreibung, Akzente und Satzzeichen werden ignoriert.

curl "https://companies.jsonpage.com/v2/companies?q=peugeot" \
  -H "X-API-Key: VOTRE_CLE"

curl "https://companies.jsonpage.com/v2/companies?q=tesco&country=GB&status=active&limit=5" \
  -H "X-API-Key: VOTRE_CLE"

curl "https://companies.jsonpage.com/v2/companies?q=proximus&country=BE" \
  -H "X-API-Key: VOTRE_CLE"

curl "https://companies.jsonpage.com/v2/companies?q=swatch&country=CH" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    { "id": "FR-552100554", "country": "FR", "registry_id": "552100554", "name": "PEUGEOT SA", "status": "closed", "...": "..." },
    { "id": "FR-...", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Registre officiel FR", "published_at": "2026-10-01", "...": "..." }] }
}

Réponse abrégée et illustrative.

Shortened, illustrative response.

Ingekort en illustratief antwoord.

Gekürzte, beispielhafte Antwort.

Paramètres (q, country, status, limit) : nom, type, valeur par défaut et limites dans le détail de la route, parmi les routes disponibles.

Parameters (q, country, status, limit): name, type, default value and limits in the endpoint details, among the available endpoints.

Parameters (q, country, status, limit): naam, type, standaardwaarde en limieten in de details van het endpoint, bij de beschikbare endpoints.

Parameter (q, country, status, limit): Name, Typ, Standardwert und Grenzen in den Details des Endpunkts, bei den verfügbaren Endpunkten.

Ordre des résultats : d'abord les noms exacts (les formes juridiques comme SA, SAS, SARL, LTD ou PLC sont ignorées dans la comparaison, donc « peugeot » trouve d'abord PEUGEOT SA), puis les entreprises actives, puis les sociétés avant les entrepreneurs individuels, enfin la pertinence. Pour un mot très courant, le classement par pertinence s'arrête après 400 ms et les résultats sont servis sans lui, pour rester rapides.

Result order: exact names first (legal forms such as SA, SAS, SARL, LTD or PLC are ignored when comparing, so "peugeot" finds PEUGEOT SA first), then active companies, then companies before sole traders, then relevance. For a very common word, relevance ranking stops after 400 ms and results are served without it, so that they stay fast.

Volgorde van de resultaten: eerst de exacte namen (rechtsvormen zoals SA, SAS, SARL, LTD of PLC worden bij de vergelijking genegeerd, dus “peugeot” vindt eerst PEUGEOT SA), dan de actieve ondernemingen, dan vennootschappen vóór eenmanszaken, en ten slotte de relevantie. Bij een zeer gangbaar woord stopt de rangschikking op relevantie na 400 ms en worden de resultaten zonder die rangschikking geleverd, zodat ze snel blijven.

Reihenfolge der Ergebnisse: zuerst exakte Namen (Rechtsformen wie SA, SAS, SARL, LTD oder PLC werden beim Vergleich ignoriert, „peugeot“ findet also zuerst PEUGEOT SA), dann aktive Unternehmen, dann Gesellschaften vor Einzelunternehmern, schließlich die Relevanz. Bei einem sehr häufigen Wort bricht die Sortierung nach Relevanz nach 400 ms ab und die Ergebnisse werden ohne sie ausgeliefert, damit sie schnell bleiben.

Chaque résultat est une fiche de base, identique à celle de GET /v2/companies/{id} ; include et fields ne s'appliquent pas. La recherche entière compte pour une seule requête, quel que soit le nombre de résultats. Les unités protégées (statut de diffusion « P ») n'ont pas de nom et ne peuvent pas être trouvées par leur nom.

Each result is a base record, identical to that of GET /v2/companies/{id}; include and fields do not apply. The whole search counts as a single request, whatever the number of results. Protected units (diffusion status "P") have no name and cannot be found by name.

Elk resultaat is een basisfiche, identiek aan die van GET /v2/companies/{id}; include en fields zijn niet van toepassing. De volledige zoekopdracht telt als één aanvraag, ongeacht het aantal resultaten. Beschermde eenheden (verspreidingsstatus “P”) hebben geen naam en kunnen niet op naam worden gevonden.

Jedes Ergebnis ist ein Basisdatensatz, identisch mit dem von GET /v2/companies/{id}; include und fields gelten nicht. Die gesamte Suche zählt als eine einzige Anfrage, unabhängig von der Anzahl der Ergebnisse. Geschützte Einheiten (Verbreitungsstatus „P“) haben keinen Namen und können nicht über ihren Namen gefunden werden.

Erreurs propres à la recherche : 400 query_too_short (aucun mot de 2 caractères ou plus), 400 invalid_parameter (status ou limit invalide), 404 country_not_supported (pays sans recherche par nom), 503 search_unavailable (recherche pas encore disponible sur le serveur).

Search-specific errors: 400 query_too_short (no word of 2 characters or more), 400 invalid_parameter (invalid status or limit), 404 country_not_supported (country without name search), 503 search_unavailable (search not available on the server yet).

Fouten die specifiek zijn voor het zoeken: 400 query_too_short (geen woord van 2 tekens of meer), 400 invalid_parameter (ongeldige status of limit), 404 country_not_supported (land zonder zoeken op naam), 503 search_unavailable (zoeken nog niet beschikbaar op de server).

Suchspezifische Fehler: 400 query_too_short (kein Wort mit 2 oder mehr Zeichen), 400 invalid_parameter (ungültiger Wert für status oder limit), 404 country_not_supported (Land ohne Namenssuche), 503 search_unavailable (Suche auf dem Server noch nicht verfügbar).

Recherche par numéro

Si vous ne connaissez que le numéro national, GET /v2/companies?registry_id=552100554 liste les entreprises de tous les pays servis qui portent ce numéro, le plus souvent une seule. La réponse est une liste vide si aucune ne correspond.

Requêtes groupées

La route POST /v2/companies/batch accepte jusqu'à 100 identifiants et les blocs voulus. Chaque entreprise du lot compte pour une requête dans la limite du forfait. La réponse garde l'ordre demandé ; chaque élément contient data, ou error si l'entreprise est introuvable ou l'identifiant invalide.

curl -X POST "https://companies.jsonpage.com/v2/companies/batch" \
  -H "X-API-Key: VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{ "ids": ["FR-552100554", "FR-000000001"], "include": ["vat"] }'
{
  "data": [
    { "id": "FR-552100554", "data": { "id": "FR-552100554", "...": "..." } },
    { "id": "FR-000000001", "data": null, "error": { "code": "not_found", "message": "No company with this identifier." } }
  ],
  "meta": { "sources": [{ "name": "Registre officiel FR", "published_at": "2026-10-01", "...": "..." }] }
}

Cache et ETag

Les réponses des routes GET v2 portent un en-tête ETag. Renvoyez sa valeur dans l'en-tête If-None-Match de la requête suivante. Si la fiche n'a pas changé, l'API répond 304 sans corps.

curl -i "https://companies.jsonpage.com/v2/companies/FR-552100554" \
  -H "X-API-Key: VOTRE_CLE" \
  -H 'If-None-Match: "3f9a0c1d2b4e5f6a7b8c9d0e"'
03 / ERREURS ET LIMITES

Gérer les réponses

Toutes les erreurs v2 ont le même format, avec un code stable, un message en anglais et un lien vers cette documentation.

{
  "error": {
    "code": "invalid_identifier",
    "message": "A French registry number is a 9-digit SIREN.",
    "docs": "https://companies.jsonpage.com/docs.html#erreurs"
  }
}
Statut HTTPCode d'erreurSignification
400invalid_identifierIdentifiant global mal formé ou numéro au mauvais format pour ce pays.
400unknown_includeBloc inconnu dans include.
400invalid_parameter, invalid_jsonParamètre hors limites ou corps de requête groupée invalide.
400query_too_shortRecherche par nom sans mot de 2 caractères ou plus.
401invalid_api_keyClé absente ou invalide.
403ip_not_allowedRequête venant d'une adresse IP absente de la liste autorisée du compte (Pro).
403monitor_limit_reachedLimite d'entreprises surveillées du forfait atteinte.
404not_foundAucune entreprise avec cet identifiant.
404country_not_supportedPays pas encore servi, ou sans recherche par nom.
404not_available_in_countryÉtablissements absents du registre de ce pays.
404not_monitoredEntreprise absente de votre liste de surveillance.
429rate_limit_exceededDébit du forfait dépassé ; l'en-tête Retry-After donne le délai d'attente.
500data_unavailableDonnées momentanément illisibles ; réessayer.
503server_busyService temporairement occupé ; réessayer avec temporisation.
503search_unavailableRecherche par nom pas encore disponible sur ce serveur.
503monitoring_unavailableSurveillance pas encore disponible sur ce serveur.

Débits : Gratuit 100/min, Standard 1 000/min, Pro sans plafond de forfait. Il n'y a pas de quota mensuel. Pour préserver la disponibilité, Pro a une limite d'usage raisonnable de 10 000 requêtes/min par compte.

Le débit se recharge en continu sur une minute. L'en-tête X-RateLimit-Remaining de chaque réponse indique combien de requêtes restent disponibles. Sur 429 et 503, l'en-tête Retry-After donne le délai d'attente en secondes. Une requête groupée compte pour autant de requêtes que d'entreprises demandées.

The rate refills continuously over one minute. The X-RateLimit-Remaining header of every response tells how many requests are still available. On 429 and 503, the Retry-After header gives the delay to wait, in seconds. A batch request counts as many requests as companies asked for.

De limiet vult zich continu aan over één minuut. De header X-RateLimit-Remaining van elk antwoord geeft aan hoeveel aanvragen nog beschikbaar zijn. Bij 429 en 503 geeft de header Retry-After de wachttijd in seconden. Een gegroepeerde aanvraag telt voor evenveel aanvragen als gevraagde ondernemingen.

Das Kontingent füllt sich innerhalb einer Minute fortlaufend wieder auf. Der Header X-RateLimit-Remaining jeder Antwort gibt an, wie viele Anfragen noch verfügbar sind. Bei 429 und 503 nennt der Header Retry-After die Wartezeit in Sekunden. Eine Sammelanfrage zählt so viele Anfragen wie angefragte Unternehmen.

04 / SURVEILLANCE ET WEBHOOKS
04 / MONITORING AND WEBHOOKS
04 / MONITORING EN WEBHOOKS
04 / ÜBERWACHUNG UND WEBHOOKS

Être prévenu des changements

Get notified of changes

Op de hoogte blijven van wijzigingen

Über Änderungen benachrichtigt werden

Ajoutez des entreprises à votre liste de surveillance : chaque entreprise surveillée est comparée aux registres officiels, aux annonces légales, aux bénéficiaires effectifs et aux listes de sanctions. Chaque différence devient un événement, que vous lisez avec GET /v2/events ou que vous recevez sur votre webhook. L'état enregistré lors de l'ajout sert de référence : aucun événement n'est créé pour le passé.

Add companies to your monitoring list: each monitored company is compared with the official registers, legal notices, beneficial owners and sanctions lists. Each difference becomes an event, which you read with GET /v2/events or receive on your webhook. The state recorded when the company is added is the baseline: no event is created for the past.

Voeg ondernemingen toe aan uw monitoringlijst: elke gevolgde onderneming wordt vergeleken met de officiële registers, de wettelijke aankondigingen, de uiteindelijke begunstigden en de sanctielijsten. Elk verschil wordt een gebeurtenis, die u leest met GET /v2/events of ontvangt op uw webhook. De toestand die bij het toevoegen wordt vastgelegd, dient als referentie: er wordt geen gebeurtenis aangemaakt voor het verleden.

Fügen Sie Unternehmen zu Ihrer Überwachungsliste hinzu: Jedes überwachte Unternehmen wird mit den Registern abgeglichen: offizielle Register, rechtliche Bekanntmachungen, wirtschaftlich Berechtigte und Sanktionslisten. Jede Abweichung wird zu einem Ereignis, das Sie mit GET /v2/events abrufen oder über Ihren Webhook empfangen. Der beim Hinzufügen erfasste Zustand dient als Referenz: Für die Vergangenheit wird kein Ereignis erzeugt.

Chaque appel à ces routes compte pour une requête, comme les autres appels. Les livraisons de webhooks ne sont pas comptées.

Each call to these endpoints counts as one request, like any other call. Webhook deliveries are not counted.

Elke aanroep van deze endpoints telt als één aanvraag, net als de andere aanroepen. Webhookleveringen worden niet meegeteld.

Jeder Aufruf dieser Endpunkte zählt wie jeder andere Aufruf als eine Anfrage. Webhook-Zustellungen werden nicht gezählt.

curl -X PUT "https://companies.jsonpage.com/v2/monitors/FR-552100554" \
  -H "X-API-Key: VOTRE_CLE"
{ "data": { "company_id": "FR-552100554", "created": true } }
curl "https://companies.jsonpage.com/v2/monitors?limit=100" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    { "company_id": "FR-552100554", "created_at": "2026-10-02T09:12:44Z", "checked_at": "2026-10-02T10:00:03Z" }
  ],
  "next": null,
  "meta": { "count": 1, "limit": 1000 }
}

checked_at vaut null tant que l'entreprise n'a pas encore été comparée. meta.count est le nombre d'entreprises surveillées et meta.limit la limite de votre forfait. Quand une page est pleine, passez next au paramètre after ; sur la dernière page, next vaut null.

checked_at is null until the company has been compared for the first time. meta.count is the number of monitored companies and meta.limit the limit of your plan. When a page is full, pass next to the after parameter; on the last page, next is null.

checked_at is null zolang de onderneming nog niet is vergeleken. meta.count is het aantal gevolgde ondernemingen en meta.limit de limiet van uw abonnement. Wanneer een pagina vol is, geeft u next door aan de parameter after; op de laatste pagina is next gelijk aan null.

checked_at ist null, solange das Unternehmen noch nicht abgeglichen wurde. meta.count ist die Anzahl der überwachten Unternehmen und meta.limit das Limit Ihres Tarifs. Wenn eine Seite voll ist, übergeben Sie next an den Parameter after; auf der letzten Seite ist next gleich null.

Limites par forfait

Limits per plan

Limieten per abonnement

Limits je Tarif

ForfaitEntreprises surveillées
Gratuit2
Standard1 000
Pro10 000
PlanMonitored companies
Free2
Standard1,000
Pro10,000
AbonnementGevolgde ondernemingen
Gratis2
Standard1.000
Pro10.000
TarifÜberwachte Unternehmen
Kostenlos2
Standard1.000
Pro10.000

Les webhooks sont inclus dans tous les forfaits. Au-delà de la limite, PUT renvoie 403 monitor_limit_reached : retirez une entreprise ou changez de forfait. Ajouter une entreprise déjà surveillée reste possible et renvoie 200.

Webhooks are included in every plan. Beyond the limit, PUT returns 403 monitor_limit_reached: remove a company or upgrade your plan. Adding a company that is already monitored still works and returns 200.

Webhooks zijn inbegrepen in alle abonnementen. Boven de limiet geeft PUT 403 monitor_limit_reached terug: verwijder een onderneming of kies een ander abonnement. Een onderneming toevoegen die al wordt gevolgd, blijft mogelijk en geeft 200 terug.

Webhooks sind in allen Tarifen enthalten. Oberhalb des Limits gibt PUT den Fehler 403 monitor_limit_reached zurück: Entfernen Sie ein Unternehmen oder wechseln Sie den Tarif. Ein bereits überwachtes Unternehmen hinzuzufügen, bleibt möglich und gibt 200 zurück.

Lire les événements

Reading events

Gebeurtenissen lezen

Ereignisse abrufen

Les événements sont renvoyés du plus ancien au plus récent. Leurs identifiants evt_… sont croissants, sans être forcément consécutifs. Passez l'identifiant du dernier événement traité au paramètre after : next donne l'identifiant du dernier événement de la page, ou null s'il n'y a pas de nouvel événement. Dans ce cas, gardez votre propre curseur pour l'appel suivant. Les événements restent lisibles 90 jours.

Events are returned oldest first. Their evt_… identifiers increase, without being necessarily consecutive. Pass the identifier of the last event you processed to the after parameter: next gives the identifier of the last event of the page, or null when there is no new event. In that case, keep your own cursor for the next call. Events stay readable for 90 days.

Gebeurtenissen worden teruggegeven van oud naar nieuw. Hun identificatoren evt_… zijn oplopend, maar niet noodzakelijk opeenvolgend. Geef de identificator van de laatst verwerkte gebeurtenis door aan de parameter after: next geeft de identificator van de laatste gebeurtenis op de pagina, of null als er geen nieuwe gebeurtenis is. Bewaar in dat geval uw eigen cursor voor de volgende aanroep. Gebeurtenissen blijven 90 dagen leesbaar.

Ereignisse werden vom ältesten zum neuesten zurückgegeben. Ihre Kennungen evt_… sind aufsteigend, aber nicht unbedingt fortlaufend. Übergeben Sie die Kennung des zuletzt verarbeiteten Ereignisses an den Parameter after: next liefert die Kennung des letzten Ereignisses der Seite oder null, wenn es kein neues Ereignis gibt. Behalten Sie in diesem Fall Ihren eigenen Cursor für den nächsten Aufruf. Ereignisse bleiben 90 Tage lang abrufbar.

curl "https://companies.jsonpage.com/v2/events?after=evt_41&limit=100" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    {
      "id": "evt_42",
      "type": "company.address_changed",
      "company_id": "FR-552100554",
      "detected_at": "2026-10-03T04:00:00Z",
      "data": {
        "before": "75 AV DE LA GRANDE ARMEE 75116 PARIS",
        "after": "7 RUE HENRI SAINTE-CLAIRE DEVILLE 92500 RUEIL-MALMAISON"
      }
    }
  ],
  "next": "evt_42"
}

Réponse illustrative.

Illustrative response.

Illustratief antwoord.

Beispielhafte Antwort.

Types d'événements

Event types

Soorten gebeurtenissen

Ereignistypen

TypeQuanddata
company.status_changedLe statut change (active, closed, unknown).before, after
company.name_changedLe nom change.before, after
company.address_changedL'adresse formatée du siège change.before, after
company.activity_changedLe code d'activité national change.before, after
company.legal_form_changedLe code de forme juridique change.before, after
company.removed_from_registerL'entreprise n'est plus dans le registre.{}
signal.addedUn signal apparaît.code, since, detail
signal.removedUn signal disparaît.code
legal_event.publishedUne nouvelle annonce légale est publiée (France).event : même objet que le bloc legal_events
sanctions.changedLe statut ou les correspondances du contrôle des sanctions changent.before, after, added, removed, matches
owner.addedUne personne ayant un contrôle significatif est ajoutée (Royaume-Uni).kind, name
owner.removedUne personne ayant un contrôle significatif n'est plus déclarée (Royaume-Uni).kind, name
TypeWhendata
company.status_changedThe status changes (active, closed, unknown).before, after
company.name_changedThe name changes.before, after
company.address_changedThe formatted address of the head office changes.before, after
company.activity_changedThe national activity code changes.before, after
company.legal_form_changedThe legal form code changes.before, after
company.removed_from_registerThe company is no longer in the register.{}
signal.addedA signal appears.code, since, detail
signal.removedA signal disappears.code
legal_event.publishedA new legal notice is published (France).event: the same object as the legal_events block
sanctions.changedThe status or the matches of the sanctions screening change.before, after, added, removed, matches
owner.addedA person with significant control is added (United Kingdom).kind, name
owner.removedA person with significant control is no longer declared (United Kingdom).kind, name
TypeWanneerdata
company.status_changedDe status wijzigt (active, closed, unknown).before, after
company.name_changedDe naam wijzigt.before, after
company.address_changedHet opgemaakte adres van de hoofdzetel wijzigt.before, after
company.activity_changedDe nationale activiteitscode wijzigt.before, after
company.legal_form_changedDe code van de rechtsvorm wijzigt.before, after
company.removed_from_registerDe onderneming staat niet meer in het register.{}
signal.addedEr verschijnt een signaal.code, since, detail
signal.removedEen signaal verdwijnt.code
legal_event.publishedEr wordt een nieuwe wettelijke aankondiging gepubliceerd (Frankrijk).event: hetzelfde object als het blok legal_events
sanctions.changedDe status of de overeenkomsten van de sanctiecontrole wijzigen.before, after, added, removed, matches
owner.addedEr wordt een persoon met aanzienlijke zeggenschap toegevoegd (Verenigd Koninkrijk).kind, name
owner.removedEen persoon met aanzienlijke zeggenschap wordt niet meer aangegeven (Verenigd Koninkrijk).kind, name
TypWanndata
company.status_changedDer Status ändert sich (active, closed, unknown).before, after
company.name_changedDer Name ändert sich.before, after
company.address_changedDie formatierte Adresse des Hauptsitzes ändert sich.before, after
company.activity_changedDer nationale Tätigkeitscode ändert sich.before, after
company.legal_form_changedDer Code der Rechtsform ändert sich.before, after
company.removed_from_registerDas Unternehmen ist nicht mehr im Register.{}
signal.addedEin Signal erscheint.code, since, detail
signal.removedEin Signal verschwindet.code
legal_event.publishedEine neue rechtliche Bekanntmachung wird veröffentlicht (Frankreich).event: dasselbe Objekt wie der Block legal_events
sanctions.changedDer Status oder die Treffer der Sanktionsprüfung ändern sich.before, after, added, removed, matches
owner.addedEine Person mit maßgeblicher Kontrolle wird hinzugefügt (Vereinigtes Königreich).kind, name
owner.removedEine Person mit maßgeblicher Kontrolle wird nicht mehr gemeldet (Vereinigtes Königreich).kind, name

Les signaux suivis sont insolvency_proceedings, liquidation, strike_off_proposed, accounts_overdue, confirmation_statement_overdue et dormant. closed et recently_created ne créent jamais d'événement de signal : la fermeture est déjà signalée par company.status_changed. Pour sanctions.changed, before et after sont des statuts (no_match, possible_match, match), added et removed listent les correspondances sous la forme LISTE:référence, et matches reprend les correspondances actuelles, au format du bloc sanctions. Un champ que le pays ne fournit pas ne crée jamais d'événement.

The monitored signals are insolvency_proceedings, liquidation, strike_off_proposed, accounts_overdue, confirmation_statement_overdue and dormant. closed and recently_created never produce a signal event: a closure is already reported by company.status_changed. For sanctions.changed, before and after are statuses (no_match, possible_match, match), added and removed list matches as LIST:reference, and matches holds the current matches, in the format of the sanctions block. A field that the country does not provide never produces an event.

De gevolgde signalen zijn insolvency_proceedings, liquidation, strike_off_proposed, accounts_overdue, confirmation_statement_overdue en dormant. closed en recently_created leveren nooit een signaalgebeurtenis op: een sluiting wordt al gemeld door company.status_changed. Voor sanctions.changed zijn before en after statussen (no_match, possible_match, match), sommen added en removed de overeenkomsten op in de vorm LIST:reference, en bevat matches de huidige overeenkomsten, in het formaat van het blok sanctions. Een veld dat het land niet levert, leidt nooit tot een gebeurtenis.

Die überwachten Signale sind insolvency_proceedings, liquidation, strike_off_proposed, accounts_overdue, confirmation_statement_overdue und dormant. closed und recently_created erzeugen nie ein Signalereignis: Eine Schließung wird bereits durch company.status_changed gemeldet. Bei sanctions.changed sind before und after Status (no_match, possible_match, match), added und removed listen Treffer in der Form LIST:reference auf, und matches enthält die aktuellen Treffer im Format des Blocks sanctions. Ein Feld, das das Land nicht liefert, erzeugt nie ein Ereignis.

{
  "id": "evt_57",
  "type": "sanctions.changed",
  "company_id": "GB-01234567",
  "detected_at": "2026-10-03T05:00:00Z",
  "data": {
    "before": "no_match",
    "after": "match",
    "added": ["US:EXAMPLE-1"],
    "removed": [],
    "matches": [{ "list": "US", "reference": "EXAMPLE-1", "name": "EXAMPLE TRADING LTD", "match_type": "identifier", "listed_on": "2026-10-02", "programs": ["RUSSIA-EO14024"] }]
  }
}

Événement fictif.

Fictitious event.

Fictieve gebeurtenis.

Fiktives Ereignis.

Un changement n'est détecté qu'après sa publication par la source officielle. La surveillance est fournie au mieux, sans garantie d'exhaustivité ni de délai, comme le précisent les CGV.

A change is only detected once the official source has published it. Monitoring is provided on a best-effort basis, with no guarantee of completeness or delay, as stated in the Terms.

Een wijziging wordt pas gedetecteerd nadat de officiële bron ze heeft gepubliceerd. De monitoring wordt geleverd naar best vermogen, zonder garantie van volledigheid of termijn, zoals vermeld in de Algemene voorwaarden.

Eine Änderung wird erst erkannt, nachdem die offizielle Quelle sie veröffentlicht hat. Die Überwachung erfolgt nach bestem Bemühen, ohne Gewähr für Vollständigkeit oder Fristen, wie in den AGB festgelegt.

Webhooks

Webhooks

Webhooks

Webhooks

Configurez votre webhook dans le tableau de bord, section Surveillance : une adresse HTTPS par compte, sur un hôte public. Les adresses privées, de bouclage (loopback) et lien-local sont refusées, et les redirections ne sont pas suivies. Le tableau de bord affiche le secret de signature whsec_…, que vous pouvez régénérer, et permet d'envoyer un événement de test ping. Cet événement de test n'apparaît pas dans GET /v2/events.

Set up your webhook in the dashboard, Monitoring section: one HTTPS URL per account, on a public host. Private, loopback and link-local addresses are refused, and redirects are not followed. The dashboard shows the whsec_… signing secret, which you can regenerate, and lets you send a ping test event. This test event does not appear in GET /v2/events.

Stel uw webhook in via het dashboard, onderdeel Monitoring: één HTTPS-adres per account, op een publieke host. Privéadressen, loopback- en link-local-adressen worden geweigerd, en omleidingen worden niet gevolgd. Het dashboard toont het ondertekeningsgeheim whsec_…, dat u opnieuw kunt genereren, en laat u een testgebeurtenis ping versturen. Deze testgebeurtenis verschijnt niet in GET /v2/events.

Richten Sie Ihren Webhook im Dashboard ein, Bereich Überwachung: eine HTTPS-Adresse pro Konto, auf einem öffentlichen Host. Private, Loopback- und Link-Local-Adressen werden abgelehnt, und Weiterleitungen werden nicht verfolgt. Das Dashboard zeigt das Signaturgeheimnis whsec_… an, das Sie neu generieren können, und ermöglicht das Senden eines Testereignisses ping. Dieses Testereignis erscheint nicht in GET /v2/events.

Chaque événement est envoyé par une requête POST dont le corps JSON est l'objet événement, avec ces en-têtes :

Each event is sent as a POST request whose JSON body is the event object, with these headers:

Elke gebeurtenis wordt verstuurd met een POST-aanvraag waarvan de JSON-body het gebeurtenisobject is, met deze headers:

Jedes Ereignis wird per POST-Anfrage gesendet, deren JSON-Body das Ereignisobjekt ist, mit diesen Headern:

POST /webhooks/siren HTTP/1.1
Content-Type: application/json
Companies-Event-Id: evt_42
Companies-Signature: t=1791000000,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

{"id":"evt_42","type":"company.address_changed","company_id":"FR-552100554","detected_at":"2026-10-03T04:00:00Z","data":{"before":"…","after":"…"}}

Companies-Signature contient t, l'heure d'envoi en secondes Unix, et v1, le HMAC-SHA256 en hexadécimal de la chaîne <t>.<corps brut> calculé avec votre secret. Vérifiez la signature sur le corps brut, avant tout décodage JSON, comparez-la en temps constant et refusez un t éloigné de plus de 5 minutes de votre horloge.

Companies-Signature contains t, the sending time in Unix seconds, and v1, the hex HMAC-SHA256 of the string <t>.<raw body> computed with your secret. Verify the signature on the raw body, before any JSON decoding, compare it in constant time and reject a t more than 5 minutes away from your clock.

Companies-Signature bevat t, het tijdstip van verzending in Unix-seconden, en v1, de hexadecimale HMAC-SHA256 van de string <t>.<raw body>, berekend met uw geheim. Controleer de handtekening op de ruwe body, vóór elke JSON-decodering, vergelijk ze in constante tijd en weiger een t die meer dan 5 minuten van uw klok afwijkt.

Companies-Signature enthält t, den Sendezeitpunkt in Unix-Sekunden, und v1, den hexadezimalen HMAC-SHA256 der Zeichenkette <t>.<raw body>, berechnet mit Ihrem Geheimnis. Prüfen Sie die Signatur am Roh-Body, vor jeder JSON-Dekodierung, vergleichen Sie sie in konstanter Zeit und lehnen Sie ein t ab, das mehr als 5 Minuten von Ihrer Uhr abweicht.

Vérifier la signature en Node.js

Verify the signature in Node.js

De handtekening controleren in Node.js

Die Signatur in Node.js prüfen

import { createServer } from "node:http";
import { createHmac, timingSafeEqual } from "node:crypto";

const secret = process.env.SIREN_WEBHOOK_SECRET; // whsec_…

function verify(rawBody, header = "") {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const t = Number(parts.t);
  if (!t || !parts.v1 || Math.abs(Date.now() / 1000 - t) > 300) return false;
  const expected = createHmac("sha256", secret).update(`${parts.t}.`).update(rawBody).digest("hex");
  return parts.v1.length === expected.length && timingSafeEqual(Buffer.from(parts.v1), Buffer.from(expected));
}

createServer((req, res) => {
  const chunks = [];
  req.on("data", (chunk) => chunks.push(chunk));
  req.on("end", () => {
    const body = Buffer.concat(chunks);
    if (!verify(body, req.headers["companies-signature"])) return res.writeHead(400).end();
    const event = JSON.parse(body);
    // Skip event.id if already processed, otherwise store it and handle it.
    res.writeHead(200).end();
  });
}).listen(3000);

Vérifier la signature en Python

Verify the signature in Python

De handtekening controleren in Python

Die Signatur in Python prüfen

import hashlib
import hmac
import os
import time

SECRET = os.environ["SIREN_WEBHOOK_SECRET"].encode()  # whsec_…

def verify(raw_body: bytes, header: str) -> bool:
    parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p)
    try:
        t = int(parts["t"])
    except (KeyError, ValueError):
        return False
    if abs(time.time() - t) > 300:
        return False
    signed = parts["t"].encode() + b"." + raw_body
    expected = hmac.new(SECRET, signed, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, parts.get("v1", ""))

Livraisons et nouvelles tentatives

Deliveries and retries

Leveringen en nieuwe pogingen

Zustellungen und Wiederholungsversuche

Une réponse 2xx dans les 15 secondes vaut succès. Sinon (autre code, délai dépassé, connexion impossible), la livraison est retentée après 1 min, 5 min, 30 min, 2 h, 6 h, 12 h et 24 h, puis marquée en échec. Un événement en échec reste lisible avec GET /v2/events. Une livraison peut arriver plusieurs fois ou dans le désordre : dédupliquez sur l'identifiant de l'événement (id ou en-tête Companies-Event-Id) et répondez vite, en traitant l'événement après la réponse si besoin.

A 2xx answer within 15 seconds is a success. Otherwise (another status, timeout, connection failure), the delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h and 24 h, then marked as failed. A failed event stays readable through GET /v2/events. A delivery may arrive more than once or out of order: deduplicate on the event identifier (id or the Companies-Event-Id header) and answer quickly, handling the event after the answer if needed.

Een 2xx-antwoord binnen 15 seconden geldt als succes. Anders (andere code, time-out, geen verbinding mogelijk) wordt de levering opnieuw geprobeerd na 1 min, 5 min, 30 min, 2 u, 6 u, 12 u en 24 u, en daarna als mislukt gemarkeerd. Een mislukte gebeurtenis blijft leesbaar via GET /v2/events. Een levering kan meermaals of in een andere volgorde aankomen: ontdubbel op de identificator van de gebeurtenis (id of de header Companies-Event-Id) en antwoord snel, en verwerk de gebeurtenis indien nodig na het antwoord.

Eine 2xx-Antwort innerhalb von 15 Sekunden gilt als Erfolg. Andernfalls (anderer Code, Zeitüberschreitung, keine Verbindung möglich) wird die Zustellung nach 1 Min., 5 Min., 30 Min., 2 Std., 6 Std., 12 Std. und 24 Std. erneut versucht und danach als fehlgeschlagen markiert. Ein fehlgeschlagenes Ereignis bleibt über GET /v2/events abrufbar. Eine Zustellung kann mehrfach oder in anderer Reihenfolge eintreffen: Deduplizieren Sie anhand der Ereigniskennung (id oder Header Companies-Event-Id) und antworten Sie schnell; verarbeiten Sie das Ereignis bei Bedarf erst nach der Antwort.

Erreurs de la surveillance

Monitoring errors

Fouten bij de monitoring

Fehler der Überwachung

400 invalid_identifier (identifiant global mal formé), 400 invalid_parameter (limit ou after invalide), 403 monitor_limit_reached (limite du forfait atteinte), 404 not_found (PUT d'une entreprise absente du registre), 404 not_monitored (DELETE d'une entreprise que vous ne surveillez pas), 503 monitoring_unavailable (surveillance pas encore disponible sur le serveur).

400 invalid_identifier (malformed global identifier), 400 invalid_parameter (invalid limit or after), 403 monitor_limit_reached (plan limit reached), 404 not_found (PUT of a company that is not in the register), 404 not_monitored (DELETE of a company you do not monitor), 503 monitoring_unavailable (monitoring not available on the server yet).

400 invalid_identifier (slecht gevormde globale identificator), 400 invalid_parameter (ongeldige limit of after), 403 monitor_limit_reached (limiet van het abonnement bereikt), 404 not_found (PUT van een onderneming die niet in het register staat), 404 not_monitored (DELETE van een onderneming die u niet volgt), 503 monitoring_unavailable (monitoring nog niet beschikbaar op de server).

400 invalid_identifier (fehlerhaft formatierte globale Kennung), 400 invalid_parameter (ungültiger Wert für limit oder after), 403 monitor_limit_reached (Limit des Tarifs erreicht), 404 not_found (PUT eines Unternehmens, das nicht im Register steht), 404 not_monitored (DELETE eines Unternehmens, das Sie nicht überwachen), 503 monitoring_unavailable (Überwachung auf dem Server noch nicht verfügbar).

05 / FORMULAIRES : AUTOCOMPLÉTION ET VALIDATION
05 / FORMS: AUTOCOMPLETE AND VALIDATION
05 / FORMULIEREN: AUTOCOMPLETION EN VALIDATIE
05 / FORMULARE: AUTOVERVOLLSTÄNDIGUNG UND VALIDIERUNG

Compléter et vérifier une saisie

Complete and check what users type

Invoer aanvullen en controleren

Eingaben vervollständigen und prüfen

Deux routes pour les formulaires d'inscription de clients ou de fournisseurs, les factures (SIRET et TVA du fournisseur) et les contrôles d'identité d'entreprise simples : /v2/autocomplete propose des entreprises pendant la saisie, /v2/validate vérifie les identifiants saisis. Chaque appel compte pour une requête.

Two endpoints for client or supplier onboarding forms, invoices (supplier SIRET and VAT) and simple company identity checks: /v2/autocomplete suggests companies while the user types, /v2/validate checks the identifiers entered. Each call counts as one request.

Twee endpoints voor registratieformulieren voor klanten of leveranciers, facturen (SIRET en btw-nummer van de leverancier) en eenvoudige identiteitscontroles van ondernemingen: /v2/autocomplete stelt ondernemingen voor tijdens het typen, /v2/validate controleert de ingevoerde identificatienummers. Elke aanroep telt als één aanvraag.

Zwei Endpunkte für Registrierungsformulare von Kunden oder Lieferanten, Rechnungen (SIRET und USt-IdNr. des Lieferanten) und einfache Identitätsprüfungen von Unternehmen: /v2/autocomplete schlägt während der Eingabe Unternehmen vor, /v2/validate prüft die eingegebenen Kennungen. Jeder Aufruf zählt als eine Anfrage.

Autocomplétion

Autocomplete

Autocompletion

Autovervollständigung

GET /v2/autocomplete répond à partir de l'index des noms seulement, sans lire la fiche complète, en quelques millisecondes côté serveur. Les mots suivent les règles de la recherche par nom : chaque mot de 2 caractères ou plus doit figurer dans le nom, le dernier peut être un début de mot. Si le texte saisi est un numéro de registre (SIREN, SIRET, numéro d'entreprise belge, numéro IDE suisse ou company number britannique), l'entreprise correspondante est renvoyée directement ; un SIRET renvoie son entreprise.

GET /v2/autocomplete answers from the name index only, without reading the full record, in a few milliseconds on the server. Words follow the name search rules: every word of 2 characters or more must appear in the name, the last one can be the start of a word. If the text typed is a registry number (SIREN, SIRET, Belgian enterprise number, Swiss UID or UK company number), the matching company is returned directly; a SIRET returns its company.

GET /v2/autocomplete antwoordt uitsluitend op basis van de naamindex, zonder de volledige fiche te lezen, in enkele milliseconden aan serverzijde. De woorden volgen de regels van het zoeken op naam: elk woord van 2 tekens of meer moet in de naam voorkomen, het laatste mag het begin van een woord zijn. Is de ingevoerde tekst een registernummer (SIREN, SIRET, Belgisch ondernemingsnummer, Zwitsers UID-nummer of Brits company number), dan wordt de overeenkomstige onderneming meteen teruggegeven; een SIRET geeft zijn onderneming terug.

GET /v2/autocomplete antwortet ausschließlich auf Basis des Namensindex, ohne den vollständigen Datensatz zu lesen, in wenigen Millisekunden auf dem Server. Die Wörter folgen den Regeln der Suche nach Namen: Jedes Wort mit 2 oder mehr Zeichen muss im Namen vorkommen, das letzte darf ein Wortanfang sein. Ist der eingegebene Text eine Registernummer (SIREN, SIRET, belgische Unternehmensnummer, Schweizer UID oder Companies-House-Nummer), wird das entsprechende Unternehmen direkt zurückgegeben; eine SIRET liefert ihr Unternehmen.

curl "https://companies.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://companies.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: YOUR_KEY"
curl "https://companies.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: UW_SLEUTEL"
curl "https://companies.jsonpage.com/v2/autocomplete?q=carrefour&limit=5" \
  -H "X-API-Key: IHR_SCHLUESSEL"
{
  "data": [
    { "id": "FR-652014051", "name": "CARREFOUR", "status": "active", "postal_code": "91300", "city": "MASSY", "kind": "company" },
    { "id": "FR-...", "...": "..." }
  ]
}

Réponse abrégée et illustrative.

Shortened, illustrative response.

Ingekort en illustratief antwoord.

Gekürzte, beispielhafte Antwort.

Paramètres (q, country, status, limit) : nom, type, valeur par défaut et limites dans le détail de la route, parmi les routes disponibles.

Parameters (q, country, status, limit): name, type, default value and limits in the endpoint details, among the available endpoints.

Parameters (q, country, status, limit): naam, type, standaardwaarde en limieten in de details van het endpoint, bij de beschikbare endpoints.

Parameter (q, country, status, limit): Name, Typ, Standardwert und Grenzen in den Details des Endpunkts, bei den verfügbaren Endpunkten.

Chaque suggestion contient id (l'identifiant global à réutiliser), name, status, postal_code et city (null si inconnus) et kind : company pour une société, person pour un entrepreneur individuel. L'ordre est celui de la recherche par nom : noms exacts, puis entreprises actives, puis sociétés avant entrepreneurs individuels. Pour la fiche complète, appelez ensuite GET /v2/companies/{id} avec l'id choisi.

Each suggestion contains id (the global identifier to reuse), name, status, postal_code and city (null when unknown) and kind: company for a company, person for a sole trader. The order is that of the name search: exact names, then active companies, then companies before sole traders. For the full record, then call GET /v2/companies/{id} with the chosen id.

Elke suggestie bevat id (de globale identificator om verder te gebruiken), name, status, postal_code en city (null indien onbekend) en kind: company voor een vennootschap, person voor een eenmanszaak. De volgorde is die van het zoeken op naam: exacte namen, dan actieve ondernemingen, dan vennootschappen vóór eenmanszaken. Roep voor de volledige fiche vervolgens GET /v2/companies/{id} aan met de gekozen id.

Jeder Vorschlag enthält id (die weiterzuverwendende globale Kennung), name, status, postal_code und city (null, falls unbekannt) sowie kind: company für eine Gesellschaft, person für einen Einzelunternehmer. Die Reihenfolge entspricht der Suche nach Namen: exakte Namen, dann aktive Unternehmen, dann Gesellschaften vor Einzelunternehmern. Für den vollständigen Datensatz rufen Sie anschließend GET /v2/companies/{id} mit der gewählten id auf.

Erreurs : 400 query_too_short (aucun mot de 2 caractères ou plus), 400 invalid_parameter (status ou limit invalide), 404 country_not_supported (pays sans recherche par nom). Les réponses portent un ETag, comme les autres routes GET v2.

Errors: 400 query_too_short (no word of 2 characters or more), 400 invalid_parameter (invalid status or limit), 404 country_not_supported (country without name search). Responses carry an ETag, like the other v2 GET endpoints.

Fouten: 400 query_too_short (geen woord van 2 tekens of meer), 400 invalid_parameter (ongeldige status of limit), 404 country_not_supported (land zonder zoeken op naam). De antwoorden bevatten een ETag, net als de andere v2-endpoints met GET.

Fehler: 400 query_too_short (kein Wort mit 2 oder mehr Zeichen), 400 invalid_parameter (ungültiger Wert für status oder limit), 404 country_not_supported (Land ohne Namenssuche). Die Antworten enthalten einen ETag, wie die anderen v2-Endpunkte mit GET.

Dans un formulaireAppelez la route depuis votre serveur, jamais directement depuis le navigateur : la clé API serait visible. Attendez environ 150 ms après la dernière frappe avant chaque appel. Voir l'exemple Express du démarrage rapide.
In a formCall the endpoint from your server, never directly from the browser: the API key would be visible. Wait about 150 ms after the last keystroke before each call. See the Express example in the quick start.
In een formulierRoep het endpoint aan vanaf uw server, nooit rechtstreeks vanuit de browser: de API-sleutel zou dan zichtbaar zijn. Wacht ongeveer 150 ms na de laatste toetsaanslag vóór elke aanroep. Zie het Express-voorbeeld in de snelstart.
In einem FormularRufen Sie den Endpunkt von Ihrem Server aus auf, nie direkt aus dem Browser: Der API-Schlüssel wäre sonst sichtbar. Warten Sie vor jedem Aufruf etwa 150 ms nach dem letzten Tastenanschlag. Siehe das Express-Beispiel im Schnellstart.

Validation

Validation

Validatie

Validierung

GET /v2/validate accepte id (identifiant global, par exemple FR-552100554), siret et vat, dans n'importe quelle combinaison, avec au moins l'un des trois. Les espaces, points et tirets du SIRET et du numéro de TVA sont ignorés. La réponse dit si tout est valide, détaille chaque contrôle et renvoie la fiche de base de l'entreprise avec son adresse.

GET /v2/validate accepts id (global identifier, for example FR-552100554), siret and vat, in any combination, with at least one of them. Spaces, dots and hyphens in the SIRET and the VAT number are ignored. The response says whether everything is valid, details each check and returns the company's base record with its address.

GET /v2/validate aanvaardt id (globale identificator, bijvoorbeeld FR-552100554), siret en vat, in elke combinatie, met minstens één van de drie. Spaties, punten en koppeltekens in het SIRET en het btw-nummer worden genegeerd. Het antwoord geeft aan of alles geldig is, detailleert elke controle en geeft de basisfiche van de onderneming met haar adres terug.

GET /v2/validate akzeptiert id (globale Kennung, zum Beispiel FR-552100554), siret und vat in beliebiger Kombination, mit mindestens einem der drei. Leerzeichen, Punkte und Bindestriche in der SIRET und der USt-IdNr. werden ignoriert. Die Antwort gibt an, ob alles gültig ist, schlüsselt jede Prüfung auf und liefert den Basisdatensatz des Unternehmens mit seiner Adresse.

curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: YOUR_KEY"
curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: UW_SLEUTEL"
curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: IHR_SCHLUESSEL"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "id_format", "ok": true, "value": "FR-652014051" },
      { "code": "siren_key", "ok": true, "value": "652014051" },
      { "code": "vat_format", "ok": true, "value": "FR14652014051" },
      { "code": "identifiers_match", "ok": true, "value": "FR-652014051" },
      { "code": "company_exists", "ok": true, "value": "FR-652014051" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "code": "vat_registered", "ok": true, "value": "valid" }
    ],
    "company": {
      "id": "FR-652014051",
      "country": "FR",
      "registry_id": "652014051",
      "name": "CARREFOUR",
      "status": "active",
      "...": "...",
      "address": { "...": "...", "postal_code": "91300", "city": "MASSY" },
      "vat": { "number": "FR14652014051", "status": "valid", "checked_at": "...", "source": "Vérification TVA" }
    }
  }
}

Réponse abrégée : les champs de base sont omis ici.

Shortened response: the base fields are omitted here.

Ingekort antwoord: de basisvelden zijn hier weggelaten.

Gekürzte Antwort: Die Basisfelder sind hier ausgelassen.

ContrôleVérifie
id_formatL'identifiant global est bien formé pour un pays servi ; en Suisse, la clé de contrôle modulo 11 du numéro IDE est vérifiée.
siren_keyLa clé de contrôle (Luhn) du SIREN est correcte (France).
siret_formatLe SIRET a 14 chiffres.
siret_keyLa clé de contrôle (Luhn) du SIRET est correcte ; les établissements de La Poste suivent leur propre règle.
siret_existsL'établissement existe au registre.
siret_activeL'établissement est actif.
vat_formatLe numéro de TVA est bien formé : en France, celui calculé à partir du SIREN ; en Belgique, BE suivi d'un numéro d'entreprise dont la clé est correcte ; en Suisse, le numéro IDE dont la clé est correcte, suivi de MWST, TVA ou IVA.
vat_country_supportedLe pays du numéro de TVA est pris en charge (France, Belgique ou Suisse) ; toujours en échec pour un autre pays.
identifiers_matchTous les identifiants désignent la même entreprise.
company_existsL'entreprise existe dans le registre.
company_activeL'entreprise est active.
vat_registeredStatut de vérification du numéro de TVA : valid, pending (vérification en cours, réessayez quelques secondes plus tard), not_verified et unavailable (vérification non aboutie) passent ; invalid échoue.
CheckVerifies
id_formatThe global identifier is well formed for a country served; in Switzerland, the modulo-11 check digit of the UID is verified.
siren_keyThe SIREN check digit (Luhn) is correct (France).
siret_formatThe SIRET has 14 digits.
siret_keyThe SIRET check digit (Luhn) is correct; La Poste establishments follow their own rule.
siret_existsThe establishment exists in the register.
siret_activeThe establishment is active.
vat_formatThe VAT number is well formed: in France, the one computed from the SIREN; in Belgium, BE followed by an enterprise number with a correct check; in Switzerland, the UID with a correct check digit, followed by MWST, TVA or IVA.
vat_country_supportedThe country of the VAT number is supported (France, Belgium or Switzerland); always failed for another country.
identifiers_matchAll identifiers point to the same company.
company_existsThe company exists in the register.
company_activeThe company is active.
vat_registeredVerification status of the VAT number: valid, pending (check in progress, retry a few seconds later), not_verified and unavailable (check not completed) pass; invalid fails.
ControleControleert
id_formatDe globale identificator is correct gevormd voor een ondersteund land; in Zwitserland wordt het controlecijfer modulo 11 van het UID-nummer gecontroleerd.
siren_keyHet controlecijfer (Luhn) van het SIREN is correct (Frankrijk).
siret_formatHet SIRET telt 14 cijfers.
siret_keyHet controlecijfer (Luhn) van het SIRET is correct; de vestigingen van La Poste volgen hun eigen regel.
siret_existsDe vestiging bestaat in het register.
siret_activeDe vestiging is actief.
vat_formatHet btw-nummer is correct gevormd: in Frankrijk het nummer dat op basis van het SIREN is berekend; in België BE gevolgd door een ondernemingsnummer met een correcte controlesleutel; in Zwitserland het UID-nummer met een correct controlecijfer, gevolgd door MWST, TVA of IVA.
vat_country_supportedHet land van het btw-nummer wordt ondersteund (Frankrijk, België of Zwitserland); altijd mislukt voor een ander land.
identifiers_matchAlle identificatienummers verwijzen naar dezelfde onderneming.
company_existsDe onderneming bestaat in het register.
company_activeDe onderneming is actief.
vat_registeredControlestatus van het btw-nummer: valid, pending (controle bezig, probeer het enkele seconden later opnieuw), not_verified en unavailable (controle niet afgerond) slagen; invalid mislukt.
PrüfungPrüft
id_formatDie globale Kennung ist für ein abgedecktes Land korrekt formatiert; in der Schweiz wird die Prüfziffer nach Modulo 11 der UID geprüft.
siren_keyDie Prüfziffer (Luhn) der SIREN ist korrekt (Frankreich).
siret_formatDie SIRET hat 14 Ziffern.
siret_keyDie Prüfziffer (Luhn) der SIRET ist korrekt; Niederlassungen von La Poste folgen ihrer eigenen Regel.
siret_existsDie Niederlassung existiert im Register.
siret_activeDie Niederlassung ist aktiv.
vat_formatDie USt-IdNr. ist korrekt aufgebaut: in Frankreich die aus der SIREN berechnete Nummer; in Belgien BE gefolgt von einer Unternehmensnummer mit korrekter Prüfziffer; in der Schweiz die UID mit korrekter Prüfziffer, gefolgt von MWST, TVA oder IVA.
vat_country_supportedDas Land der USt-IdNr. wird unterstützt (Frankreich, Belgien oder Schweiz); bei einem anderen Land immer fehlgeschlagen.
identifiers_matchAlle Kennungen bezeichnen dasselbe Unternehmen.
company_existsDas Unternehmen existiert im Register.
company_activeDas Unternehmen ist aktiv.
vat_registeredPrüfstatus der USt-IdNr.: valid, pending (Prüfung läuft, versuchen Sie es einige Sekunden später erneut), not_verified und unavailable (Prüfung nicht abgeschlossen) bestehen; invalid schlägt fehl.

valid vaut true seulement si tous les contrôles renvoyés sont réussis. Seuls les contrôles utiles sont renvoyés : un contrôle qui dépend d'un autre en échec est omis (un SIRET mal formé n'est pas cherché). company est renvoyé même quand l'établissement ou l'entreprise est fermé, pour dire ce que désignent les identifiants ; il vaut null si les identifiants ne désignent pas la même entreprise ou si l'entreprise est introuvable. La réponse n'est pas mise en cache plus de 60 secondes (Cache-Control: private, max-age=60).

valid is true only if every check returned succeeded. Only relevant checks are returned: a check that depends on a failed one is omitted (a malformed SIRET is not looked up). company is returned even when the establishment or the company is closed, to say what the identifiers point to; it is null when the identifiers do not point to the same company or when the company is not found. The response is not cached for more than 60 seconds (Cache-Control: private, max-age=60).

valid is alleen true als alle teruggegeven controles geslaagd zijn. Alleen relevante controles worden teruggegeven: een controle die afhangt van een andere, mislukte controle wordt weggelaten (een slecht gevormd SIRET wordt niet opgezocht). company wordt ook teruggegeven als de vestiging of de onderneming gesloten is, om aan te geven waarnaar de identificatienummers verwijzen; het is null als de identificatienummers niet naar dezelfde onderneming verwijzen of als de onderneming niet gevonden wordt. Het antwoord wordt niet langer dan 60 seconden gecachet (Cache-Control: private, max-age=60).

valid ist nur dann true, wenn alle zurückgegebenen Prüfungen bestanden sind. Es werden nur relevante Prüfungen zurückgegeben: Eine Prüfung, die von einer fehlgeschlagenen anderen abhängt, wird ausgelassen (eine fehlerhaft formatierte SIRET wird nicht nachgeschlagen). company wird auch zurückgegeben, wenn die Niederlassung oder das Unternehmen geschlossen ist, um anzugeben, worauf sich die Kennungen beziehen; der Wert ist null, wenn die Kennungen nicht dasselbe Unternehmen bezeichnen oder das Unternehmen nicht gefunden wird. Die Antwort wird höchstens 60 Sekunden zwischengespeichert (Cache-Control: private, max-age=60).

Exemple en Belgique : un numéro de TVA belge suffit, l'API en déduit l'entreprise. Les points sont ignorés, donc BE0417.497.106 est accepté.

Belgian example: a Belgian VAT number is enough, the API derives the company from it. Dots are ignored, so BE0417.497.106 is accepted.

Voorbeeld in België: een Belgisch btw-nummer volstaat, de API leidt er de onderneming uit af. Punten worden genegeerd, dus BE0417.497.106 wordt aanvaard.

Beispiel in Belgien: Eine belgische USt-IdNr. genügt, die API leitet daraus das Unternehmen ab. Punkte werden ignoriert, BE0417.497.106 wird also akzeptiert.

curl "https://companies.jsonpage.com/v2/validate?vat=BE0417497106" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://companies.jsonpage.com/v2/validate?vat=BE0417497106" \
  -H "X-API-Key: YOUR_KEY"
curl "https://companies.jsonpage.com/v2/validate?vat=BE0417497106" \
  -H "X-API-Key: UW_SLEUTEL"
curl "https://companies.jsonpage.com/v2/validate?vat=BE0417497106" \
  -H "X-API-Key: IHR_SCHLUESSEL"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "vat_country_supported", "ok": true, "value": "BE0417497106" },
      { "code": "vat_format", "ok": true, "value": "BE0417497106" },
      { "code": "company_exists", "ok": true, "value": "BE-0417497106" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "code": "vat_registered", "ok": true, "value": "valid" }
    ],
    "company": {
      "id": "BE-0417497106",
      "country": "BE",
      "registry_id": "0417497106",
      "name": "Anheuser-Busch InBev",
      "status": "active",
      "...": "...",
      "address": { "...": "...", "postal_code": "1000", "city": "Bruxelles" },
      "vat": { "number": "BE0417497106", "status": "valid", "checked_at": "...", "source": "Vérification TVA" }
    }
  }
}

Exemple en Suisse : un numéro de TVA suisse suffit aussi, avec ou sans points, espaces et mention MWST, TVA ou IVA.

Swiss example: a Swiss VAT number is enough too, with or without dots, spaces and the MWST, TVA or IVA mention.

Voorbeeld in Zwitserland: ook een Zwitsers btw-nummer volstaat, met of zonder punten, spaties en de vermelding MWST, TVA of IVA.

Beispiel in der Schweiz: Auch eine Schweizer MWST-Nummer genügt, mit oder ohne Punkte, Leerzeichen und den Zusatz MWST, TVA oder IVA.

curl "https://companies.jsonpage.com/v2/validate?vat=CHE-105.909.036+MWST" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://companies.jsonpage.com/v2/validate?vat=CHE-105.909.036+MWST" \
  -H "X-API-Key: YOUR_KEY"
curl "https://companies.jsonpage.com/v2/validate?vat=CHE-105.909.036+MWST" \
  -H "X-API-Key: UW_SLEUTEL"
curl "https://companies.jsonpage.com/v2/validate?vat=CHE-105.909.036+MWST" \
  -H "X-API-Key: IHR_SCHLUESSEL"
{
  "data": {
    "valid": true,
    "checks": [
      { "code": "vat_country_supported", "ok": true, "value": "CHE105909036MWST" },
      { "code": "vat_format", "ok": true, "value": "CHE105909036MWST" },
      { "code": "company_exists", "ok": true, "value": "CH-105909036" },
      { "code": "company_active", "ok": true, "value": "active" },
      { "code": "vat_registered", "ok": true, "value": "valid" }
    ],
    "company": {
      "id": "CH-105909036",
      "country": "CH",
      "registry_id": "105909036",
      "name": "Nestlé AG",
      "status": "active",
      "...": "...",
      "address": { "...": "...", "postal_code": "6330", "city": "Cham" },
      "vat": { "number": "CHE-116.281.710 MWST", "status": "valid", "checked_at": "...", "source": "Vérification TVA" }
    }
  }
}

Nestlé est membre d'un groupe TVA : le numéro saisi désigne bien l'entreprise, et le bloc vat donne le numéro du groupe, avec lequel elle facture.

Nestlé is a member of a VAT group: the number typed does point to the company, and the vat block gives the group's number, which it invoices with.

Nestlé is lid van een btw-groep: het ingevoerde nummer verwijst wel degelijk naar de onderneming, en het blok vat geeft het nummer van de groep, waarmee ze factureert.

Nestlé ist Mitglied einer MWST-Gruppe: Die eingegebene Nummer bezeichnet das Unternehmen, und der Block vat nennt die Nummer der Gruppe, mit der es fakturiert.

curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&siret=55210055400039" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&siret=55210055400039" \
  -H "X-API-Key: YOUR_KEY"
curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&siret=55210055400039" \
  -H "X-API-Key: UW_SLEUTEL"
curl "https://companies.jsonpage.com/v2/validate?id=FR-652014051&siret=55210055400039" \
  -H "X-API-Key: IHR_SCHLUESSEL"
{
  "data": {
    "valid": false,
    "checks": [
      { "code": "id_format", "ok": true, "value": "FR-652014051" },
      { "code": "siren_key", "ok": true, "value": "652014051" },
      { "code": "siret_format", "ok": true, "value": "55210055400039" },
      { "code": "siret_key", "ok": true, "value": "55210055400039" },
      { "code": "identifiers_match", "ok": false, "value": "FR-552100554" }
    ],
    "company": null
  }
}

Le SIRET appartient à une autre entreprise (FR-552100554) : les identifiants ne concordent pas.

The SIRET belongs to another company (FR-552100554): the identifiers do not match.

Het SIRET behoort toe aan een andere onderneming (FR-552100554): de identificatienummers komen niet overeen.

Die SIRET gehört zu einem anderen Unternehmen (FR-552100554): Die Kennungen stimmen nicht überein.

Erreur : 400 invalid_parameter si aucun des trois paramètres n'est donné. Un identifiant mal formé n'est pas une erreur : il donne id_format en échec.

Error: 400 invalid_parameter when none of the three parameters is given. A malformed identifier is not an error: it gives a failed id_format.

Fout: 400 invalid_parameter als geen van de drie parameters is opgegeven. Een slecht gevormde identificator is geen fout: die levert een mislukte id_format op.

Fehler: 400 invalid_parameter, wenn keiner der drei Parameter angegeben ist. Eine fehlerhaft formatierte Kennung ist kein Fehler: Sie führt zu einer fehlgeschlagenen Prüfung id_format.

06 / ESPACE CLIENT : CLÉS, ENRICHISSEMENT, LISTES, EXPORTS
06 / CUSTOMER AREA: KEYS, ENRICHMENT, LISTS, EXPORTS
06 / KLANTENZONE: SLEUTELS, VERRIJKING, LIJSTEN, EXPORTS
06 / KUNDENBEREICH: SCHLÜSSEL, ANREICHERUNG, LISTEN, EXPORTE

Gérer son compte dans le tableau de bord

Manage your account in the dashboard

Uw account beheren in het dashboard

Ihr Konto im Dashboard verwalten

Ces fonctions s'utilisent dans le tableau de bord, connecté à votre compte : ce ne sont pas des routes de l'API publique et elles ne demandent pas de clé API.

These features are used in the dashboard, signed in to your account: they are not public API endpoints and they do not need an API key.

Deze functies gebruikt u in het dashboard, aangemeld met uw account: het zijn geen endpoints van de openbare API en ze vereisen geen API-sleutel.

Diese Funktionen nutzen Sie im Dashboard, angemeldet mit Ihrem Konto: Es sind keine Endpunkte der öffentlichen API, und sie benötigen keinen API-Schlüssel.

Clés API

API keys

API-sleutels

API-Schlüssel

Vous pouvez avoir jusqu'à 1, 3 ou 10 clés actives en même temps selon le forfait (Gratuit, Standard, Pro), chacune avec un nom. Renouveler une clé crée une nouvelle clé du même nom : l'ancienne reste valable 24 heures, le temps de la remplacer sur vos serveurs, puis elle est désactivée. Une clé révoquée est refusée aussitôt avec 401 invalid_api_key.

You can have up to 1, 3 or 10 active keys at the same time depending on the plan (Free, Standard, Pro), each with a name. Rotating a key creates a new key with the same name: the old one keeps working for 24 hours, so that you can replace it on your servers, and is then disabled. A revoked key is rejected at once with 401 invalid_api_key.

Afhankelijk van het abonnement (Gratis, Standard, Pro) kunt u tegelijk tot 1, 3 of 10 actieve sleutels hebben, elk met een naam. Een sleutel vernieuwen maakt een nieuwe sleutel met dezelfde naam aan: de oude blijft 24 uur geldig, zodat u hem op uw servers kunt vervangen, en wordt daarna gedeactiveerd. Een ingetrokken sleutel wordt onmiddellijk geweigerd met 401 invalid_api_key.

Je nach Tarif (Kostenlos, Standard, Pro) können Sie bis zu 1, 3 oder 10 aktive Schlüssel gleichzeitig haben, jeder mit einem Namen. Das Erneuern eines Schlüssels erzeugt einen neuen Schlüssel mit demselben Namen: Der alte bleibt 24 Stunden gültig, damit Sie ihn auf Ihren Servern ersetzen können, und wird danach deaktiviert. Ein widerrufener Schlüssel wird sofort mit 401 invalid_api_key abgelehnt.

Adresses IP autorisées (Pro)

Allowed IP addresses (Pro)

Toegestane IP-adressen (Pro)

Zulässige IP-Adressen (Pro)

Avec Pro, limitez l'usage de vos clés à 20 adresses IP ou plages CIDR au plus, en IPv4 ou en IPv6 (par exemple 203.0.113.10 ou 2001:db8::/32). La liste s'applique à toutes les clés du compte ; une requête venant d'une autre adresse reçoit 403 ip_not_allowed. Une liste vide accepte toutes les adresses.

With Pro, restrict the use of your keys to at most 20 IP addresses or CIDR ranges, IPv4 or IPv6 (for example 203.0.113.10 or 2001:db8::/32). The list applies to every key of the account; a request from another address gets 403 ip_not_allowed. An empty list accepts every address.

Met Pro beperkt u het gebruik van uw sleutels tot maximaal 20 IP-adressen of CIDR-bereiken, in IPv4 of IPv6 (bijvoorbeeld 203.0.113.10 of 2001:db8::/32). De lijst geldt voor alle sleutels van de account; een aanvraag vanaf een ander adres krijgt 403 ip_not_allowed. Een lege lijst aanvaardt alle adressen.

Mit Pro beschränken Sie die Nutzung Ihrer Schlüssel auf höchstens 20 IP-Adressen oder CIDR-Bereiche, in IPv4 oder IPv6 (zum Beispiel 203.0.113.10 oder 2001:db8::/32). Die Liste gilt für alle Schlüssel des Kontos; eine Anfrage von einer anderen Adresse erhält 403 ip_not_allowed. Eine leere Liste lässt alle Adressen zu.

Journal des requêtes

Request log

Aanvraaglogboek

Anfrageprotokoll

Le journal liste chaque appel à l'API (date, méthode, chemin avec ses paramètres, code de statut et durée) sur 7 jours en Gratuit, 30 jours en Standard et 90 jours en Pro. Le contenu des réponses n'est pas conservé.

The log lists every API call (date, method, path with its parameters, status code and duration) over 7 days on Free, 30 days on Standard and 90 days on Pro. Response bodies are not kept.

Het logboek toont elke API-aanroep (datum, methode, pad met parameters, statuscode en duur) over 7 dagen bij Gratis, 30 dagen bij Standard en 90 dagen bij Pro. De inhoud van de antwoorden wordt niet bewaard.

Das Protokoll listet jeden API-Aufruf (Datum, Methode, Pfad mit Parametern, Statuscode und Dauer) über 7 Tage im Kostenlos-Tarif, 30 Tage im Standard-Tarif und 90 Tage im Pro-Tarif. Der Inhalt der Antworten wird nicht gespeichert.

Enrichir un fichier

Enrich a file

Een bestand verrijken

Eine Datei anreichern

Déposez un fichier CSV et choisissez la colonne des identifiants : SIREN, SIRET, numéro de TVA ou identifiant global. Seule cette colonne est envoyée. Le fichier complété, en CSV séparé par des points-virgules, contient input, id, found, name, status, legal_form, activity_code, activity_label, nace, address, postal_code, city, country, vat_number, vat_status, incorporated_on, closed_on, signals, insolvency, sanctions, error. Un fichier compte jusqu'à 100, 10 000 ou 100 000 lignes selon le forfait et chaque ligne compte pour une requête. Un fichier est traité à la fois par compte ; le résultat reste téléchargeable 7 jours.

Upload a CSV file and choose the identifier column: SIREN, SIRET, VAT number or global identifier. Only that column is sent. The completed file, a semicolon-separated CSV, contains input, id, found, name, status, legal_form, activity_code, activity_label, nace, address, postal_code, city, country, vat_number, vat_status, incorporated_on, closed_on, signals, insolvency, sanctions, error. A file holds up to 100, 10,000 or 100,000 rows depending on the plan, and each row counts as one request. One file is processed at a time per account; the result can be downloaded for 7 days.

Laad een CSV-bestand op en kies de kolom met de identificatienummers: SIREN, SIRET, btw-nummer of globale identificator. Alleen die kolom wordt verzonden. Het aangevulde bestand, een CSV met puntkomma's als scheidingsteken, bevat input, id, found, name, status, legal_form, activity_code, activity_label, nace, address, postal_code, city, country, vat_number, vat_status, incorporated_on, closed_on, signals, insolvency, sanctions, error. Een bestand telt tot 100, 10.000 of 100.000 regels naargelang het abonnement, en elke regel telt als één aanvraag. Per account wordt één bestand tegelijk verwerkt; het resultaat blijft 7 dagen downloadbaar.

Laden Sie eine CSV-Datei hoch und wählen Sie die Spalte mit den Kennungen: SIREN, SIRET, USt-IdNr. oder globale Kennung. Nur diese Spalte wird übermittelt. Die ergänzte Datei, eine durch Semikolons getrennte CSV, enthält input, id, found, name, status, legal_form, activity_code, activity_label, nace, address, postal_code, city, country, vat_number, vat_status, incorporated_on, closed_on, signals, insolvency, sanctions, error. Eine Datei umfasst je nach Tarif bis zu 100, 10.000 oder 100.000 Zeilen, und jede Zeile zählt als eine Anfrage. Pro Konto wird jeweils eine Datei verarbeitet; das Ergebnis kann 7 Tage lang heruntergeladen werden.

Listes d'entreprises (Standard et Pro)

Company lists (Standard and Pro)

Lijsten van ondernemingen (Standard en Pro)

Unternehmenslisten (Standard und Pro)

Filtrez les entreprises françaises par activité (code NAF comme 62.01Z ou division comme 62), département (69, 2A, 974), catégorie juridique et période de création. L'aperçu donne le nombre d'entreprises et dix exemples ; le fichier CSV contient siren, id, name, naf, naf_label, legal_category, legal_category_label, created_at, address, postal_code, city, department. Quota : 1 000 lignes par mois civil en Standard, 50 000 en Pro. Seules les entreprises actives à diffusion publique sont incluses, jamais les entrepreneurs individuels. Vous restez responsable du respect du RGPD et des règles de prospection (voir les CGV).

Filter French companies by activity (NAF code such as 62.01Z or division such as 62), department (69, 2A, 974), legal category and creation period. The preview gives the number of companies and ten examples; the CSV file contains siren, id, name, naf, naf_label, legal_category, legal_category_label, created_at, address, postal_code, city, department. Quota: 1,000 rows per calendar month on Standard, 50,000 on Pro. Only active companies whose data is public are included, never sole traders. You remain responsible for complying with the GDPR and direct marketing rules (see the terms).

Filter Franse ondernemingen op activiteit (NAF-code zoals 62.01Z of afdeling zoals 62), departement (69, 2A, 974), rechtsvormcategorie en periode van oprichting. Het voorbeeld toont het aantal ondernemingen en tien voorbeelden; het CSV-bestand bevat siren, id, name, naf, naf_label, legal_category, legal_category_label, created_at, address, postal_code, city, department. Quotum: 1.000 regels per kalendermaand bij Standard, 50.000 bij Pro. Alleen actieve ondernemingen met openbare gegevens worden opgenomen, nooit eenmanszaken. U blijft verantwoordelijk voor de naleving van de AVG en van de regels voor direct marketing (zie de algemene voorwaarden).

Filtern Sie französische Unternehmen nach Tätigkeit (NAF-Code wie 62.01Z oder Abteilung wie 62), Département (69, 2A, 974), Rechtsformkategorie und Gründungszeitraum. Die Vorschau zeigt die Anzahl der Unternehmen und zehn Beispiele; die CSV-Datei enthält siren, id, name, naf, naf_label, legal_category, legal_category_label, created_at, address, postal_code, city, department. Kontingent: 1.000 Zeilen pro Kalendermonat im Standard-Tarif, 50.000 im Pro-Tarif. Aufgenommen werden nur aktive Unternehmen mit öffentlichen Daten, niemals Einzelunternehmer. Sie bleiben für die Einhaltung der DSGVO und der Regeln zur Direktwerbung verantwortlich (siehe die AGB).

Exports de vos données (Standard et Pro)

Exports of your data (Standard and Pro)

Export van uw gegevens (Standard en Pro)

Export Ihrer Daten (Standard und Pro)

Vos entreprises surveillées, vos événements et votre journal des requêtes se téléchargent en CSV, lisibles directement par les tableurs.

Your monitored companies, your events and your request log can be downloaded as CSV files that open directly in spreadsheet software.

Uw gemonitorde ondernemingen, uw gebeurtenissen en uw aanvraaglogboek kunt u downloaden als CSV-bestanden die rechtstreeks in een rekenblad opengaan.

Ihre überwachten Unternehmen, Ihre Ereignisse und Ihr Anfrageprotokoll lassen sich als CSV-Dateien herunterladen, die sich direkt in Tabellenkalkulationen öffnen.

07 / BONNES PRATIQUES

Une intégration fiable

  • Enregistrez l'identifiant global renvoyé dans data.id (FR-552100554, BE-0417497106, CH-101374515, GB-00445790) et réutilisez-le tel quel. Vérifiez d'abord un numéro saisi par un utilisateur avec /v2/validate.
  • Ne demandez dans include que les blocs utiles : un bloc non demandé n'est ni lu ni calculé, et la réponse reste légère.
  • Conservez la clé API côté serveur. Pour la changer, renouvelez-la : l'ancienne reste valable 24 heures.
  • Sur 429 ou 503, attendez le délai Retry-After, puis réessayez avec une attente progressive.
  • Renvoyez l'ETag dans If-None-Match pour ne pas relire une fiche inchangée, et lisez plusieurs entreprises d'un coup avec POST /v2/companies/batch.
  • Pour suivre des clients ou des fournisseurs, préférez la surveillance (webhooks ou GET /v2/events) à la relecture régulière de leurs fiches.
  • Respectez le statut de diffusion partielle P des entreprises françaises (local.diffusion_status) et les conditions d'utilisation des données.
  • Store the global identifier returned in data.id (FR-552100554, BE-0417497106, CH-101374515, GB-00445790) and reuse it as is. Check a number typed by a user with /v2/validate first.
  • Ask include only for the blocks you need: a block not asked for is neither read nor computed, and the response stays light.
  • Keep the API key on your server. To change it, renew it: the old one stays valid for 24 hours.
  • On 429 or 503, wait for the Retry-After delay, then retry with increasing delays.
  • Send the ETag back in If-None-Match so as not to read an unchanged record again, and read several companies at once with POST /v2/companies/batch.
  • To follow customers or suppliers, prefer monitoring (webhooks or GET /v2/events) to reading their records again and again.
  • Respect the partial diffusion status P of French companies (local.diffusion_status) and the terms of use of the data.
  • Sla de globale identificatie op die in data.id wordt teruggegeven (FR-552100554, BE-0417497106, CH-101374515, GB-00445790) en hergebruik ze ongewijzigd. Controleer een door een gebruiker ingevoerd nummer eerst met /v2/validate.
  • Vraag in include alleen de blokken die u nodig hebt: een blok dat niet wordt gevraagd, wordt niet gelezen of berekend, en het antwoord blijft licht.
  • Bewaar de API-sleutel op uw server. Om hem te wijzigen, vernieuwt u hem: de oude blijft 24 uur geldig.
  • Wacht bij 429 of 503 de wachttijd Retry-After af en probeer het daarna opnieuw met een steeds langere wachttijd.
  • Stuur de ETag terug in If-None-Match om een ongewijzigde fiche niet opnieuw te lezen, en lees meerdere ondernemingen tegelijk met POST /v2/companies/batch.
  • Om klanten of leveranciers te volgen, gebruikt u beter de monitoring (webhooks of GET /v2/events) dan hun fiches telkens opnieuw te lezen.
  • Respecteer de status van gedeeltelijke verspreiding P van Franse ondernemingen (local.diffusion_status) en de gebruiksvoorwaarden van de gegevens.
  • Speichern Sie die globale Kennung aus data.id (FR-552100554, BE-0417497106, CH-101374515, GB-00445790) und verwenden Sie sie unverändert weiter. Prüfen Sie eine von einem Nutzer eingegebene Nummer zuerst mit /v2/validate.
  • Fordern Sie in include nur die benötigten Blöcke an: Ein nicht angeforderter Block wird weder gelesen noch berechnet, und die Antwort bleibt schlank.
  • Bewahren Sie den API-Schlüssel auf Ihrem Server auf. Um ihn zu ändern, erneuern Sie ihn: Der alte bleibt 24 Stunden gültig.
  • Warten Sie bei 429 oder 503 die Zeit aus Retry-After ab und versuchen Sie es dann mit wachsenden Abständen erneut.
  • Senden Sie das ETag in If-None-Match zurück, um einen unveränderten Datensatz nicht erneut zu lesen, und lesen Sie mehrere Unternehmen auf einmal mit POST /v2/companies/batch.
  • Um Kunden oder Lieferanten zu verfolgen, nutzen Sie besser die Überwachung (Webhooks oder GET /v2/events), statt ihre Datensätze immer wieder abzurufen.
  • Beachten Sie den Status der eingeschränkten Veröffentlichung P französischer Unternehmen (local.diffusion_status) und die Nutzungsbedingungen der Daten.

Voir aussi la page SLA pour l'engagement de disponibilité du forfait Pro.

08 / SOURCE DES DONNÉES
08 / DATA SOURCE
08 / GEGEVENSBRON
08 / DATENQUELLE

Source des données

Data source

Gegevensbron

Datenquelle

Companies s'appuie sur les registres officiels des entreprises des pays couverts et sur des informations réglementaires publiques : procédures collectives, listes de sanctions internationales, statut des numéros de TVA. Jsonpage rassemble, contrôle, harmonise et enrichit ces informations pour offrir un format unique quel que soit le pays, avec des identifiants vérifiés et des statuts lisibles.

Companies relies on the official company registers of the countries covered and on public regulatory information: insolvency proceedings, international sanctions lists, VAT number status. Jsonpage collects, checks, harmonises and enriches this information to offer one format whatever the country, with verified identifiers and readable statuses.

Companies steunt op de officiële ondernemingsregisters van de gedekte landen en op openbare reglementaire informatie: insolventieprocedures, internationale sanctielijsten, status van btw-nummers. Jsonpage verzamelt, controleert, harmoniseert en verrijkt deze informatie om één formaat te bieden, ongeacht het land, met gecontroleerde nummers en duidelijke statussen.

Companies stützt sich auf die amtlichen Unternehmensregister der abgedeckten Länder und auf öffentliche regulatorische Informationen: Insolvenzverfahren, internationale Sanktionslisten, Status von USt-IdNrn. Jsonpage sammelt, prüft, vereinheitlicht und ergänzt diese Informationen, um unabhängig vom Land ein einheitliches Format mit geprüften Kennungen und verständlichen Status zu bieten.

Chaque réponse indique dans meta.sources la date des données utilisées, et l'état du service est consultable à tout moment.

Every response gives the date of the data used in meta.sources, and the service status can be checked at any time.

Elk antwoord vermeldt in meta.sources de datum van de gebruikte gegevens, en de status van de dienst is altijd te raadplegen.

Jede Antwort nennt in meta.sources das Datum der verwendeten Daten, und der Dienststatus ist jederzeit abrufbar.

Mentions de source : Insee (Sirene) ; Direction de l'information légale et administrative (BODACC) ; SPF Économie, P.M.E., Classes moyennes et Énergie (Banque-Carrefour des Entreprises) ; Office fédéral du registre du commerce (Zefix) ; Companies House. Contains public sector information licensed under the Open Government Licence v3.0.

Source attribution: Insee (Sirene); Direction de l'information légale et administrative (BODACC); FPS Economy, SMEs, Self-employed and Energy (Crossroads Bank for Enterprises); Federal Commercial Registry Office (Zefix); Companies House. Contains public sector information licensed under the Open Government Licence v3.0.

Bronvermelding: Insee (Sirene); Direction de l'information légale et administrative (BODACC); FOD Economie, K.M.O., Middenstand en Energie (Kruispuntbank van Ondernemingen); Eidgenössisches Amt für das Handelsregister (Zefix); Companies House. Contains public sector information licensed under the Open Government Licence v3.0.

Quellenangabe: Insee (Sirene); Direction de l'information légale et administrative (BODACC); FÖD Wirtschaft, KMB, Mittelstand und Energie (Zentrale Datenbank der Unternehmen); Eidgenössisches Amt für das Handelsregister (Zefix); Companies House. Contains public sector information licensed under the Open Government Licence v3.0.

EN SAVOIR PLUS

Une question sur le service ?

La FAQ couvre les données, les limites d'appels et l'utilisation du service.

Lire la FAQ