Jsonpage · SIREN- und SIRET-API
INTEGRATIONSLEITFADEN

API-Dokumentation

Alles, was Sie brauchen, um die Suche nach Unternehmen und Niederlassungen in Ihr Produkt zu integrieren.

01 / SCHNELLSTART

In 2 Minuten loslegen

Die Basisadresse der API lautet https://api.jsonpage.com/v2. Jeder Aufruf sendet Ihren API-Schlüssel im Header X-API-Key. Auf dieser Seite stehen die Routen mit ihrem vollständigen Pfad ab api.jsonpage.com, zum Beispiel /v2/companies/{id}.

1. Holen Sie Ihren Schlüssel: Meinen Schlüssel erhalten. Das kostenlose Konto ist sofort aktiv, und der Schlüssel erscheint in Ihrem Dashboard.

2. Senden Sie eine Anfrage: Diese Anfrage liest ein echtes Unternehmen, FR-552032534, mit seiner Adresse und seiner geprüften USt-IdNr.

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

3. Lesen Sie die Antwort: die vollständige Antwort, nichts gekürzt. vat.status ist valid, wenn die Nummer durch die europäische Prüfung bestätigt ist; pending bedeutet, dass die Prüfung noch nicht abgeschlossen ist, versuchen Sie es später erneut.

{
  "data": {
    "id": "FR-552032534",
    "country": "FR",
    "registry_id": "552032534",
    "name": "DANONE",
    "status": "active",
    "legal_form": { "code": "5599", "label": "SA à conseil d'administration (s.a.i.)", "scheme": "FR-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": "2026-09-10T11:14:57Z",
    "address": {
      "line": "59 RUE LA FAYETTE",
      "postal_code": "75009",
      "city": "PARIS",
      "country": "FR",
      "formatted": "59 RUE LA FAYETTE, 75009 PARIS"
    },
    "vat": { "number": "FR27552032534", "status": "valid", "checked_at": "2026-10-11T00:14:31Z", "source": "EU VAT check" }
  },
  "meta": {
    "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-09-29" }],
    "includes": { "address": "ok", "vat": "ok" }
  }
}
Postman-CollectionVerfügbar nach kostenloser Registrierung: Laden Sie sie in Ihrem Dashboard herunter. Die Entdeckungs-Collection (ohne Schlüssel, einige Anfragen) laden Sie ohne Konto herunter.
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.
Bevor Sie beginnenBewahren Sie den Schlüssel auf Ihrem Server auf. Fügen Sie ihn nicht in JavaScript-Code ein, der an den Browser gesendet wird.

Node.js (fetch)

// Node.js 18 or later, ES module. The key is read from the environment.
const response = await fetch(
  "https://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat",
  { headers: { "X-API-Key": process.env.JSONPAGE_API_KEY } }
);
if (!response.ok) throw new Error(`Jsonpage 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://api.jsonpage.com/v2/companies/FR-552032534",
    params={"include": "address,vat"},
    headers={"X-API-Key": os.environ["JSONPAGE_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://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat');
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('JSONPAGE_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("Jsonpage 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://api.jsonpage.com/v2/companies/FR-552032534?include=address,vat")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("JSONPAGE_API_KEY")

response = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 10) { |http| http.request(request) }
raise "Jsonpage 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(" ")

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

Autovervollständigung in einem Formular: über Ihren Server

Der Browser ruft einen Endpunkt Ihres Servers auf, der den Schlüssel hinzufügt und /v2/autocomplete aufruft. Beispiel für eine serverseitige Route (Node.js):

import { createServer } from "node:http";

createServer(async (req, res) => {
  const incoming = new URL(req.url, "http://localhost");
  if (incoming.pathname !== "/api/companies/suggest") { res.writeHead(404).end(); return; }
  const q = (incoming.searchParams.get("q") ?? "").trim();
  res.setHeader("Content-Type", "application/json");
  if (q.length < 2) { res.end(JSON.stringify({ data: [] })); return; }

  const url = new URL("https://api.jsonpage.com/v2/autocomplete");
  url.search = new URLSearchParams({ q, limit: "8" });
  const response = await fetch(url, { headers: { "X-API-Key": process.env.JSONPAGE_API_KEY } });
  // Too short, rate limited…: no suggestion.
  res.end(response.ok ? await response.text() : JSON.stringify({ data: [] }));
}).listen(3000);

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);
});

Eingegebene Kennungen validieren

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://api.jsonpage.com/v2/validate?${params}`, {
  headers: { "X-API-Key": process.env.JSONPAGE_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.
}

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

02 / API V2 (MEHRERE LÄNDER)

Ein gemeinsames Format für mehrere Länder

Die API v2 liefert für jedes bediente Land dasselbe Format, mit demselben Schlüssel und demselben Tarif. Frankreich, Belgien, die Schweiz, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan und das Vereinigte Königreich sind verfügbar.

Globale Kennung

Jedes Unternehmen hat eine globale Kennung: den zweibuchstabigen Ländercode nach ISO 3166-1, einen Bindestrich und dann die nationale Registernummer, ohne Leerzeichen oder Satzzeichen. Beispiele: FR-552032534 für eine französische SIREN, GB-00445790 für eine 8-stellige britische Company Number, BE-0417497106 für eine 10-stellige belgische Unternehmensnummer, CH-101374515 für eine 9-stellige Schweizer UID, ohne das Präfix CHE.

Für die anderen Länder: NO-923609016 für eine 9-stellige norwegische Organisationsnummer, FI-01120389 für eine finnische Y-tunnus (die 7 Ziffern und die Prüfziffer, ohne Bindestrich; 0112038-9 wird akzeptiert), LV-40003245752 für eine 11-stellige lettische Registernummer, AU-51824753556 für eine 11-stellige australische Business Number (ABN), SG-196800306E für eine singapurische UEN mit 9 oder 10 Zeichen, JP-1180301018771 für eine 13-stellige japanische Unternehmensnummer, IE-104547 für eine irische Firmennummer mit 1 bis 7 Ziffern, SE-5560427220 für eine 10-stellige schwedische Organisationsnummer, EE-10137025 für einen 8-stelligen estnischen Registercode und LT-110053842 für einen 9-stelligen litauischen Code einer juristischen Person.

Das Land ist Teil der Kennung, da sich nationale Nummern überschneiden: Eine französische SIREN und eine norwegische Organisationsnummer haben beide 9 Ziffern. Übernehmen Sie die Kennung unverändert aus data.id.

Verfügbare Endpunkte

AuthentifizierungBasisadresse: https://jsonpage.com. Senden Sie Ihren API-Schlüssel bei jedem Aufruf im Header X-API-Key; die Beispiele lesen ihn aus der Variablen JSONPAGE_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.

Unternehmen

GET/v2/companies/{id}Den Datensatz eines Unternehmens abrufen

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-552032534, BE-0417497106, CH-101374515, NO-923609016, FI-01120389, LV-40003245752, IE-104547, SE-5560427220, EE-10137025, LT-110053842, AU-51824753556, SG-196800306E, JP-1180301018771, 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.

Beispiel

curl "https://api.jsonpage.com/v2/companies/CH-101374515?include=address" \
  -H "X-API-Key: $JSONPAGE_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": [{ "...": "..." }] }
}

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, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan 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}/establishmentsDie Niederlassungen eines Unternehmens auflisten

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-552032534.

  • 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.

Beispiel

curl "https://api.jsonpage.com/v2/companies/FR-552032534/establishments?limit=2" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": {
    "items": [
      { "registry_id": "55203253400414", "name": "...", "head_office": false, "...": "..." },
      { "registry_id": "...", "...": "..." }
    ],
    "next": "..."
  },
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

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, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan, 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=…Unternehmen nach Namen suchen

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 (dano findet DANONE).

  • countryoptionalin der Query ?… · kommagetrennte Liste

    Länder, in denen gesucht wird, zum Beispiel FR,BE. Standardmäßig alle. Werte: FR, BE, CH, NO, LV, FI, AU, SG, JP, GB, IE, SE, EE, LT.

  • 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.

Beispiel

curl "https://api.jsonpage.com/v2/companies?q=swatch&country=CH&limit=5" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    { "id": "CH-101374515", "name": "The Swatch Group AG", "status": "active", "...": "..." },
    { "id": "CH-...", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Official company register: Switzerland", "country": "CH", "kind": "register", "data_date": "2026-10-01" }] }
}

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=…Ein Unternehmen über seine Nummer finden, ohne das Land zu kennen

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 552032534. Leerzeichen werden ignoriert.

Beispiel

curl "https://api.jsonpage.com/v2/companies?registry_id=552032534" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": [
    { "id": "FR-552032534", "country": "FR", "registry_id": "552032534", "name": "DANONE", "status": "active", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

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/batchBis zu 100 Unternehmen in einem Aufruf abrufen

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-552032534", "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.

Beispiel

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

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.

Formulare

GET/v2/autocomplete?q=…Unternehmen während der Eingabe vorschlagen

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, norwegische Organisationsnummer, finnische Y-tunnus, lettische Nummer, australische ABN, singapurische UEN, japanische Unternehmensnummer, britische Company Number).

  • countryoptionalin der Query ?… · kommagetrennte Liste

    Länder, in denen gesucht wird, zum Beispiel FR. Standardmäßig alle. Werte: FR, BE, CH, NO, LV, FI, AU, SG, JP, GB, IE, SE, EE, LT.

  • 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.

Beispiel

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

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/validateEine Kennung, eine SIRET oder eine USt-IdNr. prüfen

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 200, auch wenn ein Wert ungültig ist: valid sagt, ob alle Prüfungen bestanden sind, checks listet jede einzeln auf. Nur wenn alle Parameter fehlen, folgt 400 invalid_parameter.

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, Schweizer, norwegische, finnische oder lettische USt-IdNr., zum Beispiel FR14652014051. Leerzeichen, Punkte und Bindestriche werden ignoriert.

  • eorioptionalin der Query ?… · Text

    EORI-Nummer, zum Beispiel FR55203253400646: Die Prüfung gilt als bestanden, wenn der offizielle Dienst nicht antwortet (unverifiable), und schlägt fehl, wenn die Nummer ungültig ist. Eine französische EORI ist FR gefolgt von der SIRET.

Beispiel

curl "https://api.jsonpage.com/v2/validate?id=FR-652014051&vat=FR14652014051" \
  -H "X-API-Key: $JSONPAGE_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", "...": "..." }
  }
}

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, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan, Vereinigtes Königreich. siret: Frankreich. vat: Frankreich, Belgien, Schweiz, Norwegen, Finnland, Lettland, Schweden, Estland, Litauen. Liste der Prüfungen: Validierung.

GET/v2/eori/{number}Eine EORI-Nummer prüfen

Prüft eine EORI-Nummer, die Zollkennung von Unternehmen, die importieren oder exportieren: das Format und dann, ob die Nummer bei den offiziellen Prüfdiensten existiert (Europäische Union und Vereinigtes Königreich). Zählt als eine Anfrage, in jedem Tarif. Die Antwort ist 200 mit dem status valid, invalid, unverifiable (der offizielle Dienst antwortet nicht: das ist nie eine ungültige Nummer, versuchen Sie es später erneut) oder not_applicable (Schweiz und Norwegen, wo die europäische EORI nicht gilt). name und address sind nur enthalten, wenn das Unternehmen der Veröffentlichung zugestimmt hat. Jede Antwort wird 24 Stunden wiederverwendet.

Parameter

  • numbererforderlichim Pfad · Text

    Zweistelliger Ländercode gefolgt von höchstens 15 Zeichen, zum Beispiel FR55203253400646, DE1234567 oder GB123456789000. Leerzeichen, Punkte und Bindestriche werden ignoriert.

Beispiel

curl "https://api.jsonpage.com/v2/eori/DE1234567" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "data": {
    "eori": "DE1234567",
    "country": "DE",
    "status": "valid",
    "valid": true,
    "checked_at": "2026-10-11T12:00:00Z",
    "name": "EXEMPLE GMBH",
    "address": "Hauptstrasse 1, 10115, BERLIN, DE"
  }
}

Mögliche Fehler

  • 400 invalid_eori: kein Ländercode gefolgt von höchstens 15 Zeichen
  • 400 country_not_supported: Land ohne EORI-Prüfung
  • 503 eori_unavailable: EORI-Prüfung ist auf diesem Server nicht aktiviert

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

Überwachung

PUT/v2/monitors/{id}Ein Unternehmen überwachen

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-552032534.

Beispiel

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

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}Die Überwachung eines Unternehmens beenden

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-552032534.

Beispiel

curl -X DELETE "https://api.jsonpage.com/v2/monitors/FR-552032534" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
HTTP/2 204

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/monitorsDie überwachten Unternehmen auflisten

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.

Beispiel

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

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/eventsDie erkannten Änderungen abrufen

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-552032534.

Beispiel

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

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.

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

Dienstzustand

GET/health/livePrüfen, ob der Dienst antwortet

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

Parameter

Keine Parameter.

Beispiel

curl "https://api.jsonpage.com/health/live"
{ "status": "ok" }
GET/health/readyPrüfen, ob die Daten bereit sind

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

Parameter

Keine Parameter.

Beispiel

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

Mögliche Fehler

  • 503: der Dienst ist nicht bereit; später erneut versuchen
GET/health/sourcesDen Zustand der Daten je Land ansehen

Nennt je Land den Zustand der Daten (ok: aktuell, stale: nicht aktualisiert, refreshing: Aktualisierung läuft), wie die Seite Dienststatus. Ohne API-Schlüssel.

Parameter

Keine Parameter.

Beispiel

curl "https://api.jsonpage.com/health/sources"
{
  "status": "ok",
  "checked_at": "...",
  "sources": [
    { "country": "FR", "status": "ok" },
    { "...": "..." }
  ]
}

Basisantwort

Ohne Optionen ist die Antwort etwa 0,5 KB groß und enthält in allen Ländern dieselben Felder: Kennung, Land, Nummer, Name, Status (active, closed oder unknown), Rechtsform, Tätigkeit mit ihrem europäischen NACE-Code sowie Gründungs-, Schließungs- und Aktualisierungsdatum. Ein unbekannter Wert ist null, und ein Basisfeld wird nie weggelassen.

curl "https://api.jsonpage.com/v2/companies/FR-552032534" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552032534",
    "country": "FR",
    "registry_id": "552032534",
    "name": "DANONE",
    "status": "closed",
    "legal_form": { "code": "5699", "label": "SA à directoire (s.a.i.)", "scheme": "FR-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": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }]
  }
}

Blöcke auf Anfrage

Fügen Sie die gewünschten Blöcke mit dem Parameter include hinzu, durch Kommas getrennt. Ein nicht angeforderter Block wird weder gelesen noch berechnet, und jeder Aufruf zählt unabhängig von den Blöcken als eine Anfrage. Ein unbekannter Block löst den Fehler unknown_include aus, statt ignoriert zu werden.

BlockInhaltLänder
addressAdresse des Hauptsitzes: Adresszeile, Postleitzahl, Ort, Land und formatierte Adresse.France, Belgique, Suisse, Norvège, Finlande, Lettonie, Irlande, Suède, Estonie, Australie, Singapour, Japon, Royaume-Uni
establishmentsDie ersten 20 Niederlassungen und der Cursor für die nächste Seite.Frankreich, Belgien, Norwegen
localLänderspezifische Felder des Registers, unverändert übernommen.France, Belgique, Suisse, Norvège, Finlande, Lettonie, Australie, Singapour, Japon, Irlande, Suède, Estonie, Lituanie, Royaume-Uni
vatUmsatzsteuer-Identifikationsnummer (USt-IdNr.) und Ergebnis ihrer Prüfung.Frankreich, Belgien, Schweiz, Norwegen, Finnland, Lettland, Schweden, Estland, Litauen
eoriWahrscheinliche EORI des Hauptsitzes (FR + SIRET) und das Ergebnis ihrer Prüfung, nie als sicher dargestellt.Frankreich
signalsAus dem Register berechnete Signale; leere Liste, wenn keine vorliegen.Frankreich, Belgien, Schweiz, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan, Vereinigtes Königreich
legal_eventsDie letzten 20 rechtlichen Bekanntmachungen, von der neuesten zur ältesten.Frankreich
officersGeschäftsführer und Bevollmächtigte.Noch nicht verfügbar
ownersAktuelle Personen mit maßgeblicher Kontrolle (wirtschaftlich Berechtigte); leere Liste, wenn keine vorliegen.Vereinigtes Königreich
sanctionsAbgleich mit Sanktionslisten.Frankreich, Belgien, Schweiz, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan, Vereinigtes Königreich

Für jeden angeforderten Block meldet meta.includes den Wert ok oder not_available_in_country für einen Block, der in diesem Land noch nicht verfügbar ist; der Block fehlt dann in data. Das betrifft derzeit officers in allen Ländern sowie establishments, vat und legal_events im Vereinigten Königreich, legal_events und owners in Belgien, establishments, legal_events und owners in der Schweiz sowie owners in Frankreich.

Norwegen: legal_events und owners sind nicht verfügbar. Litauen: address, establishments, legal_events und owners sind nicht verfügbar. Finnland, Lettland, Irland, Schweden, Estland, Australien, Singapur und Japan: establishments, legal_events und owners sind nicht verfügbar.

curl "https://api.jsonpage.com/v2/companies/FR-552032534?include=vat,signals,officers" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552032534",
    "...": "...",
    "vat": { "number": "FR27552032534", "status": "valid", "checked_at": "2026-10-11T00:14:31Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }],
    "includes": { "vat": "ok", "signals": "ok", "officers": "not_available_in_country" }
  }
}

Gekürzte Antwort: Die Basisfelder sind hier weggelassen.

vat.status ist valid (Nummer bestätigt), invalid (Nummer abgelehnt), pending (die europäische Prüfung hat noch nicht geantwortet: versuchen Sie es in einigen Sekunden erneut) oder not_verified (keine Prüfung angefragt oder möglich).

Der Parameter fields beschränkt die Basisantwort auf die gewählten Felder, zum Beispiel fields=name,status. Die Kennung id und die angeforderten Blöcke bleiben immer erhalten.

Besonderheiten je Land

Das Format ist in allen 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.

Frankreich (FR)Belgien (BE)Schweiz (CH)Norwegen (NO)Finnland (FI)Lettland (LV)Irland (IE)Schweden (SE)Estland (EE)Litauen (LT)Australien (AU)Singapur (SG)Japan (JP)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.Norwegisches Register der Rechtseinheiten: rund 1,2 Millionen aktive Einheiten, davon rund 465.000 Einzelunternehmen, und rund 870.000 Niederlassungen.Finnisches Unternehmensregister: rund 463.000 Einheiten (Gesellschaften, Wohnungsgesellschaften, Vereine, Stiftungen…).Lettisches Unternehmensregister: rund 218.000 aktive Einheiten (Gesellschaften, Vereine, Stiftungen, landwirtschaftliche Betriebe, Zweigniederlassungen…) und rund 237.000 gelöschte Einheiten.Irisches Gesellschaftsregister: rund 345.000 aktive Gesellschaften (private Gesellschaften mit Aktien, Gesellschaften mit bestimmter Tätigkeit, Garantiegesellschaften, Aktiengesellschaften, ausländische Gesellschaften…) und rund 480.000 aufgelöste oder gelöschte Gesellschaften.Schwedische Unternehmensregister: rund 1,18 Millionen aktive Organisationen (Aktiengesellschaften, Personengesellschaften, Wohnungsgenossenschaften, Genossenschaften, Vereine, Stiftungen, öffentliche Stellen…) und rund 1,03 Millionen gelöschte Organisationen. Einzelunternehmer werden nicht bedient.Estnisches Unternehmensregister: rund 355.000 eingetragene Rechtsträger (Gesellschaften mit beschränkter Haftung, Wohnungseigentümergemeinschaften, Vereine, Kommanditgesellschaften, Aktiengesellschaften, Stiftungen, Genossenschaften, Kommunen…), tätig, in Liquidation oder im Konkurs. Einzelunternehmer werden nicht bedient.Litauisches Register der juristischen Personen: rund 233.000 aktive juristische Personen (Gesellschaften mit beschränkter Haftung, kleine Gesellschaften, Einzelunternehmen, Vereine, öffentliche Einrichtungen, Genossenschaften, Kommunen…) und rund 315.000 gelöschte juristische Personen.Australisches Register der Unternehmensnummern: rund 6,1 Millionen aktive ABN (Gesellschaften, Trusts, Personengesellschaften, Pensionsfonds, Einzelunternehmer unter ihrem Handelsnamen…) und rund 6,7 Millionen gelöschte ABN.Singapurisches Register der Gesellschaften und Unternehmen: rund 635.000 aktive Einheiten (lokale Gesellschaften, Einzelunternehmen, Personengesellschaften, Zweigniederlassungen ausländischer Gesellschaften) und rund 1,5 Millionen gelöschte, aufgelöste oder eingestellte Einheiten.Japanisches Register der Unternehmensnummern: rund 5,1 Millionen aktive Gesellschaften und Organisationen (Aktiengesellschaften, Gesellschaften mit beschränkter Haftung, Gebietskörperschaften, Vereine, ausländische Gesellschaften…) und rund 780.000 geschlossene. Einzelunternehmer haben keine Nummer und sind nicht enthalten.Britisches Gesellschaftsregister: etwa 5,7 Millionen aktive Gesellschaften und ihre wirtschaftlich Berechtigten (Personen mit maßgeblicher Kontrolle).
NummerSIREN, 9 Ziffern: FR-552032534.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 USt., IVA) werden akzeptiert.Organisationsnummer, 9 Ziffern, deren letzte eine Prüfziffer nach Modulo 11 ist: NO-923609016. Die Formen 923 609 016, NO923609016 und NO923609016MVA werden nach dem Präfix NO- akzeptiert, oder allein für die USt-IdNr.Y-tunnus, 7 Ziffern, ein Bindestrich und eine Prüfziffer nach Modulo 11: FI-01120389 für 0112038-9. Die Formen 0112038-9, 01120389, FI01120389 und 112038-9 werden akzeptiert.Registernummer, 11 Ziffern, ohne veröffentlichte Prüfziffer: LV-40003245752. LV40003245752 wird akzeptiert.Firmennummer mit 1 bis 7 Ziffern, ohne veröffentlichte Prüfziffer: IE-104547. Führende Nullen werden ignoriert, IE104547 wird akzeptiert.Organisationsnummer mit 10 Ziffern, deren letzte eine Luhn-Prüfziffer ist: SE-5560427220. Die Schreibweisen 556042-7220, SE5560427220 und die USt-IdNr. SE556042722001 werden akzeptiert.Registercode mit 8 Ziffern, deren letzte eine Prüfziffer ist: EE-10137025. Die Schreibweisen 10137025, EE10137025 und die USt-IdNr. EE100210460 werden akzeptiert.Code der juristischen Person mit 9 Ziffern, deren letzte eine Prüfziffer ist: LT-110053842. Die Schreibweisen 110053842 und LT110053842 (die USt-IdNr.) werden akzeptiert.ABN, 11 Ziffern, deren erste zwei eine Modulo-89-Prüfung bilden: AU-51824753556. Die Formen 51 824 753 556, ABN 51824753556 und AU51824753556 werden akzeptiert.UEN: 8 Ziffern und ein Buchstabe (Unternehmen), 9 Ziffern und ein Buchstabe (lokale Gesellschaften) oder T, S oder R, 2 Ziffern, 2 Buchstaben, 4 Ziffern und ein Buchstabe (andere Einheiten), wobei der letzte Buchstabe ein Prüfbuchstabe ist: SG-196800306E. Kleinbuchstaben, Leerzeichen und das Präfix UEN werden akzeptiert.Unternehmensnummer, 13 Ziffern, deren erste eine Prüfziffer ist: JP-1180301018771. Ziffern in voller Breite und Leerzeichen 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 für eine Einheit, die aus dem Register verschwunden ist; closed_on bleibt null, da das Datum nicht angegeben wird. Eine Einheit in Konkurs oder Liquidation bleibt active.closed für eine Einheit, deren Enddatum verstrichen ist oder die aus den Daten verschwunden ist (closed_on ist dann null, wenn das Datum fehlt). Eine Einheit in Konkurs oder Liquidation bleibt active.closed für eine gelöschte Einheit; closed_on ist das Datum der Löschung. Eine Einheit in Liquidation bleibt active.closed für eine aufgelöste, gelöschte, eingestellte oder aus dem Register entfernte Gesellschaft; closed_on ist das Auflösungsdatum. Eine Gesellschaft in Liquidation, unter Verwaltung oder mit vorgeschlagener Löschung bleibt active.closed für eine gelöschte Organisation; closed_on ist das Löschungsdatum. Eine Organisation in Liquidation, im Konkurs oder in Umstrukturierung bleibt active.closed für eine Einheit, die aus den Daten verschwunden ist; closed_on ist dann null, da das Datum nicht angegeben wird. Eine Einheit in Liquidation oder im Konkurs bleibt active (ursprünglicher Status in local.status).closed für eine gelöschte juristische Person; closed_on ist das Löschungsdatum. Eine juristische Person in Liquidation oder im Konkurs bleibt active (ursprünglicher Status in local.legal_status).closed für eine gelöschte ABN; closed_on ist das Löschdatum.closed für jeden anderen Status als „Live“ (gelöscht, aufgelöst, eingestellt, umgewandelt…); closed_on bleibt null, da das Datum nicht angegeben wird. Eine Einheit „Gazetted To Be Struck Off“ oder in Liquidation bleibt active.closed, wenn ein Schließungsdatum angegeben ist (closed_on, Grund in local.closure). incorporated_on ist null: Das Datum der Vergabe der Nummer steht in local.number_assigned_on.closed, wenn die Gesellschaft aufgelöst ist; eine Gesellschaft in Liquidation oder unter Insolvenzverwaltung bleibt active.
legal_formRechtskategorie (FR-CJ).Belgische Rechtsform (BE-JURIDICAL-FORM), Bezeichnung auf Französisch.Rechtsform nach eCH-0097 (CH-LEGAL-FORM), Bezeichnung auf Französisch.Organisationsform (NO-ORG-FORM), Bezeichnung auf Französisch für die wichtigsten, sonst auf Norwegisch.Unternehmensform (FI-COMPANY-FORM), Bezeichnung auf Französisch für die wichtigsten, sonst auf Englisch.Rechtsform des Registers (LV-LEGAL-FORM), Bezeichnung auf Französisch für die wichtigsten, sonst auf Lettisch.Gesellschaftstyp des Registers (IE-COMPANY-TYPE), Bezeichnung auf Französisch für die wichtigsten, sonst auf Englisch.Organisationsform des Registers (SE-ORG-FORM), Bezeichnung auf Französisch; für Organisationen, die nur das Statistikregister kennt, eine zweistellige Rechtsform (SE-LEGAL-FORM).Rechtsform des Registers (EE-LEGAL-FORM), Bezeichnung auf Französisch für die wichtigsten, sonst auf Estnisch.Rechtsform des Registers (LT-LEGAL-FORM), dreistelliger Code, Bezeichnung auf Französisch für die wichtigsten, sonst auf Englisch; litauische Bezeichnung in local.Entitätstyp (AU-ENTITY-TYPE), Bezeichnung auf Französisch für die wichtigsten, sonst auf Englisch.Gesellschafts- oder Unternehmensform (SG-LEGAL-FORM: EPC, PC, PCS, SOLE, PART…), Bezeichnung auf Französisch; der Einheitstyp steht in local.entity_type.Art der Gesellschaft (JP-LEGAL-FORM: 301 Aktiengesellschaft, 302, 305…), Bezeichnung auf Französisch; die japanische Bezeichnung steht in local.legal_form_label_ja.Kategorie der britischen Gesellschaft (GB-COMPANY-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).5-stelliger SN2025-Code (NO-SN2025), Bezeichnung auf Norwegisch; nace ist null (Nomenklatur an NACE Rev. 2.1 angelehnt).5-stelliger TOL-2025-Code (FI-TOL2025), Bezeichnung auf Englisch; nace ist null (Nomenklatur an NACE Rev. 2.1 angelehnt); die wenigen TOL-2008-Codes (FI-TOL2008) liefern die NACE-Rev.-2-Klasse.null: Das Register veröffentlicht keinen Tätigkeitscode.NACE-Klasse (Rev. 2) des Registers (IE-NACE-REV2), wenn angegeben; Bezeichnung auf Französisch für die meisten Klassen.Fünfstelliger SNI-2025-Code (SE-SNI2025), ohne Bezeichnung; nace ist null (Klassifikation an NACE Rev. 2.1 angelehnt). Die anderen Codes stehen in local.Angegebene Haupttätigkeit, fünfstelliger EMTAK-Code (EE-EMTAK2025 oder EE-EMTAK2008), Bezeichnung auf Estnisch; die NACE-Klasse (Rev. 2) wird für EMTAK 2008 angegeben, nace ist null für EMTAK 2025 (an NACE Rev. 2.1 angelehnt).null: Das Register veröffentlicht keinen Tätigkeitscode.null: Das Register veröffentlicht keinen Tätigkeitscode.Primärer SSIC-Code (SG-SSIC); nace ist null.null: Das Register veröffentlicht keinen Tätigkeitscode.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. incorporated_on ist das Gründungsdatum, sonst das Datum des Registereintrags.null; das Datum der Daten steht in meta.sources. incorporated_on ist das Eintragungsdatum.null; das Datum der Daten steht in meta.sources. incorporated_on ist das Eintragungsdatum.updated_at ist das Datum der letzten Aktualisierung des Eintrags. incorporated_on ist der Tag, an dem die ABN aktiv wurde (bei einer gelöschten ABN unbekannt).null; incorporated_on ist das Eintragungsdatum.updated_at ist das Datum der Aktualisierung des Eintrags.null; das Datum der Daten steht in meta.sources. incorporated_on ist das Datum der ersten Eintragung.null; das Datum der Daten steht in meta.sources. incorporated_on ist das Eintragungsdatum.null; das Datum der Daten steht in meta.sources. incorporated_on ist das Eintragungsdatum.null; das Datum der Daten steht in meta.sources. incorporated_on ist das 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 (Geschäftsadresse), establishments (Unterheiten), local (Form, Sektor, Beschäftigte, Kapital, Daten), vat (Status im Mehrwertsteuerregister), signals, sanctions.address, local (parallele und Hilfsnamen, Handelsregister, USt-IdNr., Situation), vat, signals, sanctions.address, local (Register, Löschungsgrund), vat, signals, sanctions.address, local (ursprünglicher Typ und Status, Grafschaft, Eircode, Daten der Jahresmeldung und der Abschlüsse), signals, sanctions.address (Postanschrift), local (formatierte Nummer, laufendes Verfahren, Löschungsgrund, weitere Tätigkeitscodes, weitere Namen), vat, signals, sanctions.address, local (ursprünglicher Status, Bezeichnung der Form, Untertyp, Gemeinden), vat (wenn das Register eine USt-IdNr. angibt), signals, sanctions.local (Code, litauische Bezeichnung der Form, Rechtsstatus und sein Datum), vat, signals, sanctions.address (nur Bundesstaat und Postleitzahl), local (ACN, Bundesstaat, Handelsnamen, GST-Status), signals, sanctions.address (vollständige Adresse mit Block, Straße, Stockwerk, Einheit und Postleitzahl), local (Einheitstyp, Registerstatus, Fälligkeiten von Abschluss und Jahresmeldung, Nebentätigkeit, frühere Namen), signals, sanctions.address (auf Japanisch: Präfektur, Gemeinde, Straße, Postleitzahl), local (Lesung des Namens in Katakana, englischer Name und Adresse, falls vorhanden, Codes von Präfektur und Gemeinde, Schließungsgrund, Nummer des Nachfolgers), 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).legal_events, owners (nicht veröffentlicht).establishments, legal_events, owners (nicht veröffentlicht).address, establishments, legal_events, owners (nicht veröffentlicht).establishments, legal_events, owners (nicht veröffentlicht).establishments, legal_events, owners (nicht veröffentlicht).vat (die irische USt-IdNr. lässt sich nicht aus der Firmennummer ableiten), establishments, legal_events, owners (nicht veröffentlicht).establishments, legal_events, owners (nicht veröffentlicht).establishments, legal_events, owners (nicht veröffentlicht); vat (die USt-IdNr. wird für Australien nicht geprüft: Der GST-Status steht in local).establishments, legal_events, owners (nicht veröffentlicht); vat (die USt-IdNr. wird für Singapur nicht geprüft).establishments, legal_events, owners (nicht veröffentlicht); vat (die USt-IdNr. wird für Japan nicht geprüft).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.

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

curl "https://api.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": "Official company register: United Kingdom", "country": "GB", "kind": "register", "data_date": "2026-10-01" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "not_available_in_country" }
  }
}

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

Belgien

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://api.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-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": "valid", "checked_at": "2026-10-11T00:14:31Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Belgium", "country": "BE", "kind": "register", "data_date": "2026-10-02" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

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.

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-JURIDICAL-SITUATION" },
  "type_of_enterprise": "2",
  "juridical_form": { "code": "014", "label": "Société anonyme", "scheme": "BE-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" },
    "..."
  ]
}
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-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.

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.

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" }
}

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.

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.

Schweiz

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 USt. 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://api.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-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": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Switzerland", "country": "CH", "kind": "register", "data_date": "2026-10-03" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Die Schweizer MWST-Nummer ist die UID gefolgt von MWST (USt. 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.

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://api.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
}
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.

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.

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.

Norwegen

Die norwegischen Einheiten stammen aus dem norwegischen Register der Rechtseinheiten: rund 1,2 Millionen aktive Einheiten aller Formen (Aktiengesellschaften, Vereine, Eigentümergemeinschaften, Einzelunternehmen…) und ihre Niederlassungen. Die globale Kennung ist NO- gefolgt von den 9 Ziffern der Organisationsnummer: NO-923609016. Die letzte Ziffer ist eine Prüfziffer nach Modulo 11: Eine Nummer mit falscher Prüfziffer führt zum Fehler 400 invalid_identifier. Einzelunternehmen werden unter ihrem Geschäftsnamen geliefert; es werden weder Geschäftsführer noch Kontaktdaten bereitgestellt. Eine einzelne 9-stellige Organisationsnummer wird in einer Anreicherungsdatei als SIREN gelesen: Schreiben Sie sie NO-923609016 oder mit ihrer USt-IdNr.

curl "https://api.jsonpage.com/v2/companies/NO-923609016?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "NO-923609016",
    "country": "NO",
    "registry_id": "923609016",
    "name": "EQUINOR ASA",
    "status": "active",
    "legal_form": { "code": "ASA", "label": "Société anonyme publique", "scheme": "NO-ORG-FORM" },
    "activity": { "nace": null, "code": "06.100", "label": "Utvinning av råolje", "scheme": "NO-SN2025" },
    "incorporated_on": "1972-09-18",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Forusbeen 50", "postal_code": "4035", "city": "STAVANGER", "country": "NO", "formatted": "Forusbeen 50, 4035 STAVANGER" },
    "vat": { "number": "NO923609016MVA", "status": "valid", "checked_at": "2026-10-10T00:00:00Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Norway", "country": "NO", "kind": "register", "data_date": "2026-10-10" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Die norwegische USt-IdNr. ist NO, die Organisationsnummer und MVA (NO923609016MVA); sie wird ohne Wartezeit im amtlichen Mehrwertsteuerregister gelesen: valid, wenn die Einheit dort eingetragen ist, sonst invalid. Die Niederlassungen sind die Unterheiten des Registers: /v2/companies/NO-923609016/establishments oder include=establishments. Der Block local enthält den Registerdatensatz:

curl "https://api.jsonpage.com/v2/companies/NO-923609016?include=local" \
  -H "X-API-Key: VOTRE_CLE"
"local": {
  "organisation_number": "923 609 016",
  "legal_form": { "code": "ASA", "label": "Société anonyme publique", "scheme": "NO-ORG-FORM" },
  "legal_form_label_no": "Allmennaksjeselskap",
  "registered_on": "1995-03-12",
  "founded_on": "1972-09-18",
  "in_business_enterprise_register": true,
  "vat_registered": true,
  "vat_registered_on": "1989-07-01",
  "institutional_sector": { "code": "1120", "label": "Statlig eide aksjeselskaper mv.", "scheme": "NO-SECTOR" },
  "employees": 21272,
  "capital": { "amount": 5976872600, "currency": "NOK", "type": "Aksjekapital" },
  "municipality": "STAVANGER",
  "last_listed_on": null
}

Signale in Norwegen: insolvency_proceedings bei einem Konkurs oder einem Restrukturierungsverfahren (since nennt das Eröffnungsdatum), liquidation bei einer laufenden Auflösung oder Liquidation, auch von Amts wegen, und closed für eine Einheit, die aus dem Register verschwunden ist. Suche nach Namen: GET /v2/companies?q=equinor&country=NO; Einzelunternehmen haben bei der Autovervollständigung die kind person.

Finnland

Die finnischen Einheiten stammen aus dem finnischen Unternehmensregister: rund 463.000 Einheiten (Gesellschaften, Wohnungsgesellschaften, Vereine, Stiftungen…). Die globale Kennung ist FI- gefolgt von den 8 Zeichen der Y-tunnus, ohne Bindestrich: FI-01120389 für 0112038-9. Die API akzeptiert auch FI-0112038-9 und die Nummer ohne führende Nullen und gibt in data.id immer die 8-stellige Form zurück; die Suche nach Nummer, die Autovervollständigung, die Validierung und die Anreicherung akzeptieren die Y-tunnus unverändert (0112038-9). Die letzte Ziffer ist eine Prüfziffer nach Modulo 11: Eine Nummer mit falscher Prüfziffer führt zum Fehler 400 invalid_identifier. Es werden keine personenbezogenen Daten bereitgestellt.

curl "https://api.jsonpage.com/v2/companies/FI-0112038-9?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FI-01120389",
    "country": "FI",
    "registry_id": "01120389",
    "name": "Nokia Oyj",
    "status": "active",
    "legal_form": { "code": "17", "label": "Société anonyme publique (Oyj)", "scheme": "FI-COMPANY-FORM" },
    "activity": { "nace": null, "code": "70100", "label": "Activities of head offices", "scheme": "FI-TOL2025" },
    "incorporated_on": "1896-12-19",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Karakaari 7", "postal_code": "02610", "city": "ESPOO", "country": "FI", "formatted": "Karakaari 7, 02610 ESPOO" },
    "vat": { "number": "FI01120389", "status": "valid", "checked_at": "2026-10-10T20:59:03Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Finland", "country": "FI", "kind": "register", "data_date": "2026-10-10" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Die finnische USt-IdNr. ist FI gefolgt von den 8 Ziffern der Y-tunnus; sie wird auf dieselbe Weise geprüft wie in Frankreich und Belgien, mit denselben Status. Signale in Finnland: insolvency_proceedings bei einem Konkurs oder einer Unternehmenssanierung, liquidation bei einer laufenden Liquidation (since nennt das Datum der Situation) und closed für eine Einheit, deren Enddatum verstrichen ist oder die aus den Daten verschwunden ist. Der Block local nennt die Form und ihre Bezeichnung, den Status im Handelsregister, die USt-Registrierung und ihr Datum, die Situation, den Gemeindecode sowie die parallelen und Hilfsnamen (other_names). Niederlassungen, amtliche Bekanntmachungen und wirtschaftlich Berechtigte sind nicht verfügbar.

Lettland

Die lettischen Einheiten stammen aus dem lettischen Unternehmensregister: rund 218.000 aktive Einheiten aller Formen (Gesellschaften mit beschränkter Haftung, Aktiengesellschaften, Einzelkaufleute, Vereine, Stiftungen, landwirtschaftliche Betriebe, Zweigniederlassungen…) und rund 237.000 gelöschte Einheiten, mit dem Datum der Löschung in closed_on. Die globale Kennung ist LV- gefolgt von den 11 Ziffern der Registernummer: LV-40003245752. Diese Nummer hat keine veröffentlichte Prüfziffer: Nur ihr Format wird geprüft, und eine korrekt aufgebaute, aber unbekannte Nummer liefert 404 not_found. Die Adresse ist die des Registers, die Stadt wird daraus abgeleitet. Das Register veröffentlicht weder einen Tätigkeitscode noch Niederlassungen: activity ist null.

curl "https://api.jsonpage.com/v2/companies/LV-40003245752?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "LV-40003245752",
    "country": "LV",
    "registry_id": "40003245752",
    "name": "Air Baltic Corporation AS",
    "status": "active",
    "legal_form": { "code": "AS", "label": "Société anonyme", "scheme": "LV-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": "1995-02-08",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Mārupes nov., Mārupes pag., Lidosta \"Rīga\", Tehnikas iela 3", "postal_code": "LV-1053", "city": "Mārupes", "country": "LV", "formatted": "Mārupes nov., Mārupes pag., Lidosta \"Rīga\", Tehnikas iela 3, LV-1053" },
    "vat": { "number": "LV40003245752", "status": "valid", "checked_at": "2026-10-10T20:59:02Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Latvia", "country": "LV", "kind": "register", "data_date": "2026-10-10" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Die lettische USt-IdNr. ist LV gefolgt von der Registernummer; sie wird auf dieselbe Weise geprüft wie in Frankreich und Belgien, mit denselben Status. Signale in Lettland: closed mit dem Löschungsdatum in since und liquidation, wenn der eingetragene Name den Liquidationszusatz trägt („Likvidējamā“). Der Block local nennt das Eintragungsregister (register) und bei einer gelöschten Einheit den Grund (termination: liquidiert oder umstrukturiert).

Irland

Die irischen Gesellschaften stammen aus dem irischen Gesellschaftsregister: rund 345.000 aktive Gesellschaften aller Formen (private Gesellschaften mit Aktien, Gesellschaften mit bestimmter Tätigkeit, Garantiegesellschaften, Aktiengesellschaften, in Irland eingetragene ausländische Gesellschaften…) und rund 480.000 aufgelöste oder gelöschte Gesellschaften, mit ihrem Auflösungsdatum in closed_on. Die globale Kennung ist IE- gefolgt von der Firmennummer mit 1 bis 7 Ziffern, ohne führende Nullen: IE-104547. Diese Nummer hat keine veröffentlichte Prüfziffer: Nur ihr Format wird geprüft, und eine korrekt aufgebaute, aber unbekannte Nummer liefert 404 not_found. Die Tätigkeit ist die NACE-Klasse (Rev. 2) des Registers, wenn sie angegeben ist. Das Register veröffentlicht keine Niederlassungen.

curl "https://api.jsonpage.com/v2/companies/IE-231235?include=address,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "IE-231235",
    "country": "IE",
    "registry_id": "231235",
    "name": "BROWN BROTHERS HARRIMAN TRUSTEE SERVICES (IRELAND) LIMITED",
    "status": "active",
    "legal_form": { "code": "1153", "label": "Société privée par actions (LTD)", "scheme": "IE-COMPANY-TYPE" },
    "activity": { "nace": "64.99", "code": "64.99", "label": "Autres activités des services financiers, hors assurance et caisses de retraite, n.c.a.", "scheme": "IE-NACE-REV2" },
    "incorporated_on": "1995-03-29",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "30 HERBERT STREET, DUBLIN 2", "postal_code": "D02 W329", "city": "DUBLIN 2", "country": "IE", "formatted": "30 HERBERT STREET, DUBLIN 2, D02 W329" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Ireland", "country": "IE", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "signals": "ok" }
  }
}

Die irische USt-IdNr. lässt sich nicht aus der Firmennummer ableiten: Der Block vat ist in Irland nicht verfügbar und wird als not_available_in_country gemeldet. Signale in Irland: closed mit dem Auflösungsdatum in since, liquidation für eine Gesellschaft in Liquidation, insolvency_proceedings für ein Examinership oder eine Verwaltung, strike_off_proposed, wenn die Löschung vorgeschlagen ist, und confirmation_statement_overdue, wenn die Jahresmeldung überfällig ist. Der Block local liefert den Gesellschaftstyp und den ursprünglichen Status mit ihrem Code, die Grafschaft, den Eircode und die Daten der letzten Jahresmeldung, der nächsten Fälligkeit und der letzten Abschlüsse.

Schweden

Die schwedischen Organisationen stammen aus den amtlichen schwedischen Unternehmensregistern: rund 1,18 Millionen aktive Organisationen aller Formen (Aktiengesellschaften, Handels- und Kommanditgesellschaften, Wohnungsgenossenschaften, Genossenschaften, Vereine, Stiftungen, öffentliche Stellen, ausländische Einheiten…) und rund 1,03 Millionen gelöschte Organisationen, mit ihrem Löschungsdatum in closed_on. Die globale Kennung ist SE- gefolgt von den 10 Ziffern der Organisationsnummer: SE-5560427220. Die letzte Ziffer ist eine Luhn-Prüfziffer, die geprüft wird; eine korrekt aufgebaute, aber unbekannte Nummer liefert 404 not_found. Einzelunternehmer und Nachlässe, die über eine Personennummer identifiziert werden, werden nicht bedient, und der c/o-Teil der Adresse wird nicht übernommen. Die Tätigkeit ist der erste SNI-2025-Code, ohne Bezeichnung; die weiteren Codes stehen in local.other_activities.

curl "https://api.jsonpage.com/v2/companies/SE-5560427220?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "SE-5560427220",
    "country": "SE",
    "registry_id": "5560427220",
    "name": "H & M Hennes & Mauritz AB",
    "status": "active",
    "legal_form": { "code": "AB", "label": "Société anonyme (aktiebolag)", "scheme": "SE-ORG-FORM" },
    "activity": { "nace": null, "code": "70100", "label": null, "scheme": "SE-SNI2025" },
    "incorporated_on": "1943-08-07",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "Mäster Samuelsgatan 46 A", "postal_code": "106 38", "city": "STOCKHOLM", "country": "SE", "formatted": "Mäster Samuelsgatan 46 A, 106 38 STOCKHOLM" },
    "vat": { "number": "SE556042722001", "status": "valid", "checked_at": "2026-10-11T08:12:40Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Sweden", "country": "SE", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Die schwedische USt-IdNr. ist SE, die Organisationsnummer und 01; sie wird auf dieselbe Weise geprüft wie in Frankreich und Belgien, mit denselben Status. Signale in Schweden: closed mit dem Löschungsdatum in since, liquidation für eine laufende Liquidation und insolvency_proceedings für einen Konkurs, eine Unternehmensumstrukturierung, Vergleichsverhandlungen oder eine Abwicklung (since nennt das Datum der Situation). Der Block local liefert die formatierte Organisationsnummer (556042-7220), das laufende Verfahren, den Löschungsgrund, business_active (registriert für USt, F-Steuer oder als Arbeitgeber), die weiteren Tätigkeitscodes, die weiteren Namen (besondere Firmennamen, Namen in anderen Sprachen) und marketing_restriction, wenn die Organisation Werbung abgelehnt hat.

Estland

Die estnischen Einheiten stammen aus dem estnischen Unternehmensregister: rund 355.000 eingetragene Rechtsträger aller Formen (Gesellschaften mit beschränkter Haftung, Aktiengesellschaften, Kommandit- und Personengesellschaften, Vereine, Wohnungseigentümergemeinschaften, Stiftungen, Genossenschaften, Zweigniederlassungen, Kommunen…), tätig, in Liquidation oder im Konkurs. Die globale Kennung ist EE- gefolgt von den 8 Ziffern des Registercodes: EE-10137025. Die letzte Ziffer ist eine Prüfziffer, die geprüft wird; ein korrekt aufgebauter, aber unbekannter Code liefert 404 not_found. Auch die USt-IdNr. (EE100210460) wird anstelle des Codes akzeptiert. Einzelunternehmer, deren Name der einer Person ist, werden nicht bedient. Eine Einheit, die das Register verlässt, bleibt als closed erhalten, ohne Enddatum. Die Tätigkeit ist die angegebene Haupttätigkeit (EMTAK-Code, Bezeichnung auf Estnisch).

curl "https://api.jsonpage.com/v2/companies/EE-10137025?include=address,vat,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "EE-10137025",
    "country": "EE",
    "registry_id": "10137025",
    "name": "Tieto Estonia AS",
    "status": "active",
    "legal_form": { "code": "AS", "label": "Société anonyme (aktsiaselts)", "scheme": "EE-LEGAL-FORM" },
    "activity": { "nace": null, "code": "62101", "label": "Programmeerimine", "scheme": "EE-EMTAK2025" },
    "incorporated_on": "1996-12-27",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "A. H. Tammsaare tee 47", "postal_code": "11316", "city": "Tallinn", "country": "EE", "formatted": "A. H. Tammsaare tee 47, Kristiine linnaosa, Tallinn, Harju maakond, 11316" },
    "vat": { "number": "EE100210460", "status": "valid", "checked_at": "2026-10-11T08:12:40Z", "source": "EU VAT check" },
    "signals": []
  },
  "meta": {
    "sources": [{ "name": "Official company register: Estonia", "country": "EE", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "signals": "ok", "vat": "ok" }
  }
}

Die estnische USt-IdNr. (EE gefolgt von 9 Ziffern) wird im Register gelesen: Sie lässt sich nicht aus dem Code ableiten. Sie wird auf dieselbe Weise geprüft wie in Frankreich und Belgien, mit denselben Status; der Block vat fehlt, wenn die Einheit keine USt-IdNr. hat. Signale in Estland: liquidation für eine Einheit in Liquidation, insolvency_proceedings für eine Einheit im Konkurs und closed für eine Einheit, die aus den Daten verschwunden ist. Der Block local liefert den ursprünglichen Status, die estnische Bezeichnung der Form und ihren Untertyp sowie die Gemeindehierarchie der Adresse.

Litauen

Die litauischen juristischen Personen stammen aus dem litauischen Register der juristischen Personen: rund 233.000 aktive juristische Personen aller Formen (Gesellschaften mit beschränkter Haftung, Aktiengesellschaften, kleine Gesellschaften, Einzelunternehmen, Vereine, öffentliche Einrichtungen, Stiftungen, Genossenschaften, Zweigniederlassungen, Kommunen…) und rund 315.000 gelöschte juristische Personen, mit ihrem Löschungsdatum in closed_on. Die globale Kennung ist LT- gefolgt von den 9 Ziffern des Codes der juristischen Person: LT-110053842. Die letzte Ziffer ist eine Prüfziffer, die geprüft wird; ein korrekt aufgebauter, aber unbekannter Code liefert 404 not_found. Das Register veröffentlicht weder Adresse noch Tätigkeitscode noch Niederlassungen: address wird als not_available_in_country gemeldet und activity ist null. Der Name eines Einzelunternehmens wird vom Register selbst anonymisiert.

curl "https://api.jsonpage.com/v2/companies/LT-110053842?include=vat,signals,local" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "LT-110053842",
    "country": "LT",
    "registry_id": "110053842",
    "name": "Akcinė bendrovė \"Lietuvos geležinkeliai\"",
    "status": "active",
    "legal_form": { "code": "320", "label": "Société anonyme (AB)", "scheme": "LT-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": "1991-12-24",
    "closed_on": null,
    "updated_at": null,
    "vat": { "number": "LT110053842", "status": "valid", "checked_at": "2026-10-11T08:12:40Z", "source": "EU VAT check" },
    "signals": [],
    "local": { "legal_entity_code": "110053842", "legal_form_label_lt": "Akcinė bendrovė", "legal_status": { "code": "0", "label": "No legal proceedings", "scheme": "LT-LEGAL-STATUS" }, "legal_status_label_lt": "Teisinis statusas neįregistruotas", "legal_status_since": "2021-12-16" }
  },
  "meta": {
    "sources": [{ "name": "Official company register: Lithuania", "country": "LT", "kind": "register", "data_date": "2026-10-12" }],
    "includes": { "vat": "ok", "signals": "ok", "local": "ok" }
  }
}

Die litauische USt-IdNr. ist LT gefolgt vom Code der juristischen Person; sie wird auf dieselbe Weise geprüft wie in Frankreich und Belgien, mit denselben Status. Signale in Litauen: closed mit dem Löschungsdatum in since, liquidation für eine laufende Liquidation und insolvency_proceedings für einen Konkurs oder eine Restrukturierung (since nennt das Datum des Status). Der Block local liefert den Code der juristischen Person, die litauische Bezeichnung der Form und den ursprünglichen Rechtsstatus mit Code und Datum.

Australien

Die australischen Einheiten stammen aus dem australischen Register der Unternehmensnummern: rund 6,1 Millionen aktive ABN (Gesellschaften, Trusts, Personengesellschaften, Pensionsfonds, Einzelunternehmer…) und rund 6,7 Millionen gelöschte ABN, mit dem Löschdatum in closed_on. Der Name einer Person wird nie gespeichert: Ein Einzelunternehmer wird unter seinem Handelsnamen geliefert, ein Einzelunternehmer ohne Handelsnamen wird nicht geliefert. Die globale Kennung ist AU- gefolgt von den 11 Ziffern der ABN: AU-51824753556. Die Prüfziffern (Modulo 89) werden geprüft, und eine korrekt aufgebaute, aber unbekannte Nummer liefert 404 not_found. Das Register veröffentlicht weder Straße noch Tätigkeitscode: Die Adresse beschränkt sich auf Bundesstaat und Postleitzahl (formatted ist „VIC 3000“), und activity ist null. Die ACN der Gesellschaften steht im Block local.

curl "https://api.jsonpage.com/v2/companies/AU-33051775556?include=address,local,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "AU-33051775556",
    "country": "AU",
    "registry_id": "33051775556",
    "name": "TELSTRA CORPORATION LIMITED",
    "status": "active",
    "legal_form": { "code": "PUB", "label": "Société cotée australienne", "scheme": "AU-ENTITY-TYPE" },
    "activity": null,
    "incorporated_on": "1999-11-01",
    "closed_on": null,
    "updated_at": "2024-02-15",
    "address": { "line": null, "postal_code": "3000", "city": null, "country": "AU", "formatted": "VIC 3000" },
    "signals": [],
    "local": {
      "abn": "33 051 775 556",
      "acn": "051 775 556",
      "state": "VIC",
      "entity_type_label": "Australian Public Company",
      "gst": { "registered": true, "status": "ACT", "since": "2000-07-01" },
      "other_names": [{ "type": "trading", "value": "TELSTRA" }]
    }
  },
  "meta": {
    "sources": [{ "name": "Official business register: Australia", "country": "AU", "kind": "register", "data_date": "2026-10-07" }],
    "includes": { "address": "ok", "local": "ok", "signals": "ok" }
  }
}

Die USt-IdNr. wird für Australien nicht geprüft: Der Block vat ist dort nicht verfügbar. Die Registrierung für die Waren- und Dienstleistungssteuer (GST), das australische Gegenstück zur Mehrwertsteuer, wird wie veröffentlicht im Block local geliefert (gst.registered, gst.status und gst.since), ohne Prüfung. Signale in Australien: closed mit dem Löschdatum in since und recently_created. Der Block local enthält außerdem die ACN, den Bundesstaat und die Handelsnamen (other_names).

Singapur

Die singapurischen Einheiten stammen aus dem singapurischen Register der Gesellschaften und Unternehmen: rund 635.000 aktive Einheiten (lokale Gesellschaften, Einzelunternehmen, Personengesellschaften, Zweigniederlassungen ausländischer Gesellschaften) und rund 1,5 Millionen gelöschte, aufgelöste oder eingestellte Einheiten, die abrufbar bleiben. Die globale Kennung ist SG- gefolgt von der UEN: SG-196800306E für eine lokale Gesellschaft (9 Ziffern und ein Buchstabe), SG-T05LL0003J für eine andere Einheit (zum Beispiel eine Partnerschaft mit beschränkter Haftung); eine Unternehmensnummer hat 8 Ziffern und einen Buchstaben. Der Prüfbuchstabe wird geprüft, und eine korrekt aufgebaute, aber unbekannte Nummer liefert 404 not_found. Die Tätigkeit ist der primäre SSIC-Code (SG-SSIC), ohne NACE-Entsprechung. Das Register nennt kein Enddatum: closed_on bleibt bei einer geschlossenen Einheit null. Einzelunternehmen (Form SOLE) werden unter ihrem Handelsnamen geliefert.

curl "https://api.jsonpage.com/v2/companies/SG-196800306E?include=address,local,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "SG-196800306E",
    "country": "SG",
    "registry_id": "196800306E",
    "name": "DBS BANK LTD.",
    "status": "active",
    "legal_form": { "code": "PCS", "label": "Société publique par actions", "scheme": "SG-LEGAL-FORM" },
    "activity": { "nace": null, "code": "64120", "label": null, "scheme": "SG-SSIC" },
    "incorporated_on": "1968-07-16",
    "closed_on": null,
    "updated_at": null,
    "address": { "line": "12 MARINA BOULEVARD, MARINA BAY FINANCIAL CENTRE", "postal_code": "018982", "city": "Singapore", "country": "SG", "formatted": "12 MARINA BOULEVARD, MARINA BAY FINANCIAL CENTRE, Singapore 018982" },
    "signals": [],
    "local": {
      "uen": "196800306E",
      "entity_type": { "code": "LC", "label": "Société locale", "scheme": "SG-ENTITY-TYPE" },
      "register_status": "Live Company",
      "uen_issued_on": "1968-07-16",
      "accounts_due_on": "2027-07-31",
      "annual_return_on": "2026-06-03",
      "secondary_activity": null,
      "former_names": ["THE DEVELOPMENT BANK OF SINGAPORE"],
      "sole_proprietor": false
    }
  },
  "meta": {
    "sources": [{ "name": "Official business register: Singapore", "country": "SG", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "local": "ok", "signals": "ok" }
  }
}

Die USt-IdNr. wird für Singapur nicht geprüft: Der Block vat ist dort nicht verfügbar, und das Register enthält nicht die Registrierung für die Waren- und Dienstleistungssteuer (GST). Signale in Singapur: closed (ohne Datum), recently_created, strike_off_proposed für eine Einheit „Gazetted To Be Struck Off“, liquidation für eine freiwillige Abwicklung und insolvency_proceedings für eine zwangsweise Abwicklung oder gerichtliche Verwaltung, mit dem Registerstatus in detail. Der Block local enthält den Einheitstyp, den Registerstatus wie veröffentlicht, die Fälligkeiten von Abschluss und Jahresmeldung, die Nebentätigkeit und die früheren Namen (former_names).

Japan

Die japanischen Rechtspersonen stammen aus dem japanischen Register der Unternehmensnummern: rund 5,1 Millionen aktive Gesellschaften und Organisationen (Aktiengesellschaften, Gesellschaften mit beschränkter Haftung, Gebietskörperschaften, Vereine, ausländische Gesellschaften mit einer Niederlassung in Japan…) und rund 780.000 geschlossene, mit ihrem Schließungsdatum in closed_on. Einzelunternehmer haben keine Nummer und werden nicht geliefert. Die globale Kennung ist JP- gefolgt von den 13 Ziffern der Unternehmensnummer: JP-1180301018771. Die erste Ziffer ist eine Prüfziffer, die geprüft wird; eine korrekt aufgebaute, aber unbekannte Nummer liefert 404 not_found. Name und Adresse sind auf Japanisch: die Lesung des Namens in Katakana sowie englischer Name und Adresse (wenn die Rechtsperson sie angegeben hat) stehen im Block local. Das Register veröffentlicht weder Tätigkeitscode noch Gründungsdatum: activity und incorporated_on sind null, und das Datum der Vergabe der Nummer steht in local.number_assigned_on. Die Namenssuche findet einen Text von mindestens 2 Zeichen an beliebiger Stelle im japanischen Namen, in der Katakana-Lesung oder im englischen Namen.

curl "https://api.jsonpage.com/v2/companies/JP-1180301018771?include=address,local,signals" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "JP-1180301018771",
    "country": "JP",
    "registry_id": "1180301018771",
    "name": "トヨタ自動車株式会社",
    "status": "active",
    "legal_form": { "code": "301", "label": "Société par actions (kabushiki kaisha)", "scheme": "JP-LEGAL-FORM" },
    "activity": null,
    "incorporated_on": null,
    "closed_on": null,
    "updated_at": "2019-04-23",
    "address": { "line": "トヨタ町1番地", "postal_code": "471-0826", "city": "豊田市", "country": "JP", "formatted": "〒471-0826 愛知県豊田市トヨタ町1番地" },
    "signals": [],
    "local": {
      "corporate_number": "1180301018771",
      "name_kana": "トヨタジドウシャ",
      "name_en": null,
      "address_en": null,
      "prefecture": "愛知県",
      "prefecture_code": "23",
      "municipality_code": "23211",
      "number_assigned_on": "2015-10-05",
      "last_change_on": "2019-04-10",
      "closure": null,
      "legal_form_label_ja": "株式会社"
    }
  },
  "meta": {
    "sources": [{ "name": "Official corporate register: Japan", "country": "JP", "kind": "register", "data_date": "2026-10-11" }],
    "includes": { "address": "ok", "local": "ok", "signals": "ok" }
  }
}

Die USt-IdNr. wird für Japan nicht geprüft: Der Block vat ist dort nicht verfügbar. Signale in Japan: closed mit dem Schließungsdatum in since. Der Block local enthält außerdem den Schließungsgrund (closure: Liquidation abgeschlossen, durch Fusion aufgelöst, vom Registergericht geschlossen) und die Nummer der Rechtsperson, die nach einer Fusion übernommen hat (successor_number).

USt.

In Frankreich wird die Umsatzsteuer-Identifikationsnummer aus der SIREN berechnet; Jsonpage prüft anschließend ihre Gültigkeit. Keine Anfrage wartet auf diese Prüfung: Sie erfolgt im Hintergrund, und ihr Datum steht in checked_at.

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

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.

In Finnland, Lettland und Schweden ist die USt-IdNr. FI, LV oder SE gefolgt von der Registernummer (FI01120389, LV40003245752) oder von der Organisationsnummer und 01 (SE556042722001); sie wird auf dieselbe Weise geprüft, mit denselben Status. In Norwegen wird die Nummer NO923609016MVA im amtlichen Mehrwertsteuerregister gelesen: Der Status ist valid oder invalid, nie pending.

Für Australien, Singapur und Japan wird keine USt-IdNr. geprüft: Der Block vat ist dort nicht verfügbar, und der Parameter vat von GET /v2/validate akzeptiert deren Nummern nicht.

StatusBedeutung
pendingNummer berechnet, Prüfung geplant: Fragen Sie den Datensatz einige Sekunden später erneut ab.
validDie Nummer ist bestätigt.
invalidDie Nummer wird nicht erkannt.
not_verifiedNummer berechnet, aber von diesem Server nicht geprüft.
unavailableNur Schweiz: Die Prüfung konnte nicht abgeschlossen werden; sie wird später wiederholt.

EORI

Die EORI-Nummer ist die Zollkennung eines Unternehmens, das importiert oder exportiert. Ein französisches Unternehmen hat in der Regel FR gefolgt von der SIRET seines Hauptsitzes als EORI. Zwei Möglichkeiten: GET /v2/eori/{number} prüft jede Nummer (Europäische Union, Vereinigtes Königreich; die Schweiz und Norwegen antworten not_applicable), und der Block eori eines französischen Eintrags (?include=eori) testet die EORI des Hauptsitzes.

Die Nummer im Block eori wird aus der SIRET abgeleitet und nicht aus einem Register gelesen: Sie wird immer als wahrscheinlich dargestellt (probable: true, basis: "head_office_siret"). status: "valid" besagt, dass diese Nummer beim Zoll existiert, nicht dass das Unternehmen sie verwendet. Ein offizieller Dienst, der nicht antwortet, liefert unverifiable mit valid: null, nie invalid: Versuchen Sie es später erneut.

name_match vergleicht den Namen, den der Zoll für die EORI-Nummer führt, mit dem Namen des Unternehmens: true, wenn beide dasselbe Unternehmen bezeichnen (Groß- und Kleinschreibung, Akzente, Satzzeichen und Rechtsformen werden ignoriert), sonst false, etwa bei einer EORI auf eine Tochtergesellschaft. Bei einer französischen EORI stammt der Firmenname aus dem Register; bei anderen Nummern übergeben Sie ihn im Parameter company_name. Das Feld fehlt, wenn einer der beiden Namen unbekannt ist.

Antworten werden 24 Stunden pro Nummer wiederverwendet, und die Aufrufe an die offiziellen Dienste werden gestaffelt: Eine Datei mit mehreren tausend Partnern verarbeiten Sie besser mit der Dateianreicherung im Kundenbereich (Spalten eori_number und eori_valid), die in der Kennungsspalte auch EORI-Nummern akzeptiert. GET /v2/validate akzeptiert den Parameter eori.

Signale

Die Signale werden aus dem Registerdatensatz berechnet, mit denselben Codes in allen Ländern. Jedes Signal enthält code, since (Beginn der Situation, sofern das Register ihn angibt) und detail. Ein geschlossenes Unternehmen erhält nur closed.

SignalBedeutungLänder
closedUnternehmen geschlossen oder aufgelöst.Frankreich, Belgien, Schweiz, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan, Vereinigtes Königreich
recently_createdVor weniger als 12 Monaten gegründet.France, Belgique, Norvège, Finlande, Lettonie, Irlande, Suède, Estonie, Lituanie, Australie, Singapour, Royaume-Uni
insolvency_proceedingsLaufendes Insolvenzverfahren; das Detail nennt das letzte Urteil in Frankreich, die rechtliche Situation in Belgien, die Art des Verfahrens in Norwegen und Finnland, den Registerstatus in Irland, das laufende Verfahren in Schweden, den Registerstatus in Estland, den Rechtsstatus in Litauen.France, Belgique, Norvège, Finlande, Irlande, Suède, Estonie, Lituanie, Singapour, Royaume-Uni
strike_off_proposedLöschung von Amts wegen vorgeschlagen.Irlande, Singapour, Royaume-Uni
liquidationLaufende Auflösung oder Liquidation außerhalb eines Konkurses; das Detail nennt die rechtliche Situation in Belgien, den Zusatz im Namen in der Schweiz und Lettland, die Situation in Norwegen und Finnland, den Registerstatus in Irland, das laufende Verfahren in Schweden, den Registerstatus in Estland, den Rechtsstatus in Litauen.Belgique, Suisse, Norvège, Finlande, Lettonie, Irlande, Suède, Estonie, Lituanie, Singapour
accounts_overdueJahresabschluss überfällig.Vereinigtes Königreich
confirmation_statement_overdueJahresmeldung (Confirmation Statement) überfällig.Irland, Vereinigtes Königreich
dormantRuhende Gesellschaft.Vereinigtes Königreich

Bekanntmachungen

Der Block legal_events enthält die amtlichen rechtlichen Bekanntmachungen seit 2008: Insolvenzverfahren, Schlichtungsverfahren, berufliche Entschuldungsverfahren (rétablissement professionnel), Löschungen, Verkäufe, Eintragungen und sonstige Bekanntmachungen. Namen natürlicher Personen und der Freitext der Urteile werden nie gespeichert; der Link url führt zur vollständigen amtlichen Bekanntmachung.

{
  "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": "Legal notices: France",
  "url": "..."
}
FeldInhalt
idKennung der Bekanntmachung.
published_onVeröffentlichungsdatum.
familyinsolvency, conciliation, professional_recovery, deregistration, sale, registration oder other.
typeinitial, correction (Berichtigung) oder cancellation (Aufhebung).
judgmentFamilie, Art und Datum des Urteils; null bei einer Bekanntmachung ohne Urteil.
courtGericht oder Registergericht, von dem die Bekanntmachung stammt.
source, urlHerkunft der Bekanntmachung und Link zu ihrer amtlichen Fassung.

Das Signal insolvency_proceedings wertet diese Urteile vom neuesten zum ältesten aus: Ein Abschluss beendet das Verfahren; eine Eröffnung, eine Umwandlung in eine Liquidation oder ein Plan hält es offen. Eine aufgehobene Bekanntmachung wird ignoriert.

Wirtschaftlich Berechtigte

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.

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://api.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": "Official company register: United Kingdom", "country": "GB", "kind": "register", "data_date": "2026-10-01" },
      { "name": "Beneficial ownership register: United Kingdom", "country": "GB", "kind": "ownership", "data_date": "2026-09-30" }
    ],
    "includes": { "owners": "ok", "sanctions": "ok" }
  }
}

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

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.

Sanktionen

Der Block sanctions, verfügbar für Frankreich, Belgien, die Schweiz, Norwegen, Finnland, Lettland, Irland, Schweden, Estland, Litauen, Australien, Singapur, Japan 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://api.jsonpage.com/v2/companies/FR-552032534?include=sanctions" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": {
    "id": "FR-552032534",
    "...": "...",
    "sanctions": {
      "status": "no_match",
      "matches": [],
      "lists": [
        { "list": "EU", "name": "Sanctions list: European Union", "published_at": "2026-09-22", "entities": 1776 },
        { "list": "UN", "name": "Sanctions list: United Nations", "published_at": "2026-10-01", "entities": 275 },
        { "list": "FR", "name": "Sanctions list: France", "published_at": "2026-10-02", "entities": 1924 },
        { "list": "United Kingdom", "name": "Sanctions list: United Kingdom", "published_at": "2026-10-02", "entities": 1645 },
        { "list": "US", "name": "Sanctions list: United States", "published_at": "2026-10-02", "entities": 10037 }
      ]
    }
  },
  "meta": { "sources": [{ "...": "..." }], "includes": { "sanctions": "ok" } }
}

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

StatusBedeutung
matchDie Nummer des Unternehmens (SIREN, belgische Unternehmensnummer, Schweizer UID, norwegische, finnische oder lettische Nummer 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.

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.

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.

Niederlassungen

Der Endpunkt /v2/companies/{id}/establishments liefert die Niederlassungen seitenweise. Der Parameter limit reicht von 1 bis 100 (Standard: 20). Jede Seite enthält items und next. Übergeben Sie den Wert von next an den Parameter after für die nächste Seite. Auf der letzten Seite hat next den Wert null.

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

Jede Niederlassung enthält registry_id (die SIRET in Frankreich, die Nummer der Niederlassungseinheit in Belgien, die Nummer der Unterheit in Norwegen), name, head_office, status, activity, opened_on und address.

Suche nach Namen

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 („dano“ findet DANONE). Groß- und Kleinschreibung, Akzente und Satzzeichen werden ignoriert.

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

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

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

curl "https://api.jsonpage.com/v2/companies?q=swatch&country=CH" \
  -H "X-API-Key: VOTRE_CLE"
{
  "data": [
    { "id": "FR-552032534", "country": "FR", "registry_id": "552032534", "name": "DANONE", "status": "active", "...": "..." },
    { "id": "FR-...", "...": "..." }
  ],
  "meta": { "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-10-01" }] }
}

Gekürzte, beispielhafte Antwort.

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

Reihenfolge der Ergebnisse: zuerst exakte Namen (Rechtsformen wie SA, SAS, SARL, LTD oder PLC werden beim Vergleich ignoriert, „danone“ findet also zuerst DANONE), 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.

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.

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).

Suche nach Nummer

Wenn Sie nur die nationale Nummer kennen, listet GET /v2/companies?registry_id=552032534 die Unternehmen aller bedienten Länder auf, die diese Nummer tragen, meist nur eines. Die Antwort ist eine leere Liste, wenn keines passt.

Sammelanfragen

Der Endpunkt POST /v2/companies/batch akzeptiert bis zu 100 Kennungen und die gewünschten Blöcke. Jedes Unternehmen im Paket zählt als eine Anfrage im Rahmen des Tarif-Limits. Die Antwort behält die angefragte Reihenfolge bei; jedes Element enthält data oder error für ein nicht gefundenes Unternehmen oder eine ungültige Kennung.

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

Cache und ETag

Die Antworten der GET v2-Endpunkte enthalten einen Header ETag. Senden Sie seinen Wert im Header If-None-Match der nächsten Anfrage zurück. Wenn sich der Datensatz nicht geändert hat, antwortet die API mit 304 ohne Body.

curl -i "https://api.jsonpage.com/v2/companies/FR-552032534" \
  -H "X-API-Key: VOTRE_CLE" \
  -H 'If-None-Match: "3f9a0c1d2b4e5f6a7b8c9d0e"'
03 / FEHLER UND LIMITS

Antworten verarbeiten

Alle v2-Fehler haben dasselbe Format, mit einem stabilen Code, einer Meldung auf Englisch und einem Link zu dieser Dokumentation.

{
  "error": {
    "code": "invalid_identifier",
    "message": "A French registry number is a 9-digit SIREN.",
    "docs": "https://jsonpage.com/docs#erreurs"
  }
}
HTTP-StatusFehlercodeBedeutung
400invalid_identifierGlobale Kennung fehlerhaft oder Nummer im falschen Format für dieses Land.
400unknown_includeUnbekannter Block in include.
400invalid_parameter, invalid_jsonParameter außerhalb des zulässigen Bereichs oder ungültiger Body der Sammelanfrage.
400query_too_shortNamenssuche ohne ein Wort mit mindestens 2 Zeichen.
401invalid_api_keySchlüssel fehlt oder ist ungültig.
403ip_not_allowedAnfrage von einer IP-Adresse, die nicht in der Liste zulässiger Adressen des Kontos steht (Pro).
403product_not_enabledProdukt für das Konto nicht aktiviert; aktivieren Sie es im Dashboard.
403monitor_limit_reachedDie Höchstzahl überwachter Unternehmen für Ihren Tarif ist erreicht.
404not_foundKein Unternehmen mit dieser Kennung.
404country_not_supportedLand noch nicht bedient oder ohne Namenssuche.
404not_available_in_countryIm Register dieses Landes gibt es keine Niederlassungen.
404not_monitoredUnternehmen nicht in Ihrer Überwachungsliste.
429rate_limit_exceededAnfragerate des Tarifs überschritten; der Header Retry-After gibt die Wartezeit an.
429daily_limit_reachedTageslimit des Entdecken-Tarif (kostenlos)s (kostenlos) erreicht (1.000 Anfragen, zurückgesetzt um Mitternacht UTC). Wechseln Sie zum Tarif Standard, um das Limit aufzuheben.
500data_unavailableDaten vorübergehend nicht lesbar; erneut versuchen.
503server_busyDienst vorübergehend ausgelastet; mit Wartezeit (Backoff) erneut versuchen.
503search_unavailableNamenssuche auf diesem Server noch nicht verfügbar.
503monitoring_unavailableÜberwachung auf diesem Server noch nicht verfügbar.

Anfrageraten: Entdecken 100/min, Standard 1.000/min, Pro ohne tarifbedingte Obergrenze. Es gibt kein monatliches Kontingent. Zum Schutz der Verfügbarkeit hat Pro eine Fair-Use-Obergrenze von 10.000 Anfragen/Min. pro Konto.

Die Limits für Anfragen und Überwachung gelten pro Produkt. Schlüssel, Aufbewahrung des Protokolls, die Liste zulässiger IP-Adressen, das SLA und der Support folgen dem besten Tarif des Kontos.

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. Der Entdecken-Tarif (kostenlos) hat zusätzlich ein Limit von 1.000 Anfragen pro Tag, das um Mitternacht UTC zurückgesetzt wird: darüber antwortet die API mit 429 daily_limit_reached (Felder message, message_en und upgrade_url) und Retry-After bis Mitternacht UTC. Die Header X-Daily-Limit und X-Daily-Remaining nennen das Limit und den Rest. Bezahlte Tarife haben kein Tageslimit.

Limit-Header und Wiederholungen

Zwei Header beschreiben den Stand Ihres Kontingents: X-RateLimit-Remaining, bei jeder erfolgreichen Antwort vorhanden, nennt die Zahl der noch verfügbaren Anfragen in der gleitenden Minute Ihres Tarifs; Retry-After, gesendet mit 429 rate_limit_exceeded und 503 server_busy, nennt die Wartezeit in Sekunden. Es gibt keine Header X-RateLimit-Limit oder X-RateLimit-Reset: Das Limit Ihres Tarifs steht im Dashboard und auf der Preisseite.

Empfohlene Wiederholungsstrategie: Wiederholen Sie nur bei 429, 503 und Netzwerkfehlern, nie bei einem anderen 4xx-Fehler (die Anfrage muss korrigiert werden, ein erneutes Senden ändert nichts). Warten Sie den Wert von Retry-After ab, falls vorhanden, sonst eine exponentielle Wartezeit (1 s, 2 s, 4 s, 8 s…) mit Jitter, damit nicht alle Ihre Clients gleichzeitig neu starten, und geben Sie nach 5 Versuchen auf.

Node.js

async function getWithRetry(url, attempts = 5) {
  for (let attempt = 0; attempt < attempts; attempt++) {
    let response;
    try {
      response = await fetch(url, { headers: { "X-API-Key": process.env.JSONPAGE_API_KEY } });
    } catch {
      response = null; // network error: retry
    }
    if (response && response.status !== 429 && response.status !== 503) return response; // success or 4xx: no retry
    const wait = Number(response?.headers.get("Retry-After")) * 1000 || 2 ** attempt * 1000;
    await new Promise((resolve) => setTimeout(resolve, wait + Math.random() * 500)); // jitter
  }
  throw new Error("Jsonpage API: still unavailable after retries");
}
04 / ÜBERWACHUNG UND WEBHOOKS

Über Änderungen benachrichtigt werden

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.

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

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

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.

Limits je Tarif

TarifÜberwachte Unternehmen
Entdecken2
Standard1.000
Pro10.000

Webhooks sind in allen Tarifen enthalten. Oberhalb des Limits gibt PUT den Fehler 403 monitor_limit_reached zurück: Tariflimit erreicht, wechseln Sie in einen höheren Tarif, um mehr Unternehmen zu überwachen. Sie werden bei 80 % und 100 % des Limits per E-Mail benachrichtigt. Bereits überwachte Unternehmen funktionieren weiter, und sie erneut hinzuzufügen gibt weiterhin 200 zurück. Ein CSV-Import im Dashboard fügt Unternehmen bis zum Limit hinzu und meldet, wie viele übersprungen wurden.

Ereignisse abrufen

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://api.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-552032534",
      "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"
}

Beispielhafte Antwort.

Ereignistypen

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

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"] }]
  }
}

Fiktives Ereignis.

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

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 signierten Testereignisses test. Dieses Testereignis erscheint nicht in GET /v2/events; die Schaltfläche "Testereignis senden" zeigt den HTTP-Status, die Dauer und einen eventuellen Fehler an, und das Senden ist auf 10 pro Stunde begrenzt.

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

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

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

Die Signatur prüfen

Jede Anfrage wird mit dem Geheimnis whsec_… Ihres Webhooks signiert. Verarbeiten Sie ein Ereignis erst, nachdem die Signatur geprüft wurde. Das Header-Format lautet Jsonpage-Signature: t=<Unix-Sekunden>,v1=<hex>; der Algorithmus ist HMAC-SHA256, mit Ihrem Geheimnis über die Zeichenkette <t>.<Roh-Body> berechnet (die Zeit t, ein Punkt, dann die Bytes genau wie empfangen) und hexadezimal kodiert.

Schritte: Lesen Sie den Roh-Body vor jeder JSON-Dekodierung, extrahieren Sie t und v1, berechnen Sie den HMAC neu, vergleichen Sie ihn in konstanter Zeit mit v1 und lehnen Sie die Anfrage ab, wenn t mehr als 5 Minuten (300 Sekunden) von Ihrer Uhr abweicht, um Wiederholungen zu blockieren. Antworten Sie mit 400, wenn die Signatur ungültig ist.

Node.js

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

// rawBody: the request body as received (Buffer or string), header: the Jsonpage-Signature value.
export function verify(rawBody, header = "", secret = process.env.JSONPAGE_WEBHOOK_SECRET) {
  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));
}

Python

import hashlib
import hmac
import os
import time

SECRET = os.environ["JSONPAGE_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", ""))

PHP

<?php
function verify(string $rawBody, string $header, string $secret): bool {
    $parts = [];
    foreach (explode(',', $header) as $part) {
        [$key, $value] = array_pad(explode('=', $part, 2), 2, '');
        $parts[$key] = $value;
    }
    $t = (int) ($parts['t'] ?? 0);
    if ($t === 0 || empty($parts['v1']) || abs(time() - $t) > 300) {
        return false;
    }
    $expected = hash_hmac('sha256', $t . '.' . $rawBody, $secret);
    return hash_equals($expected, $parts['v1']);
}

// $rawBody = file_get_contents('php://input');
// $header = $_SERVER['HTTP_JSONPAGE_SIGNATURE'] ?? '';

Ruby

require "openssl"

# raw_body: the request body as received, header: the Jsonpage-Signature value.
def verify(raw_body, header, secret)
  parts = header.to_s.split(",").map { |part| part.split("=", 2) }.to_h
  t = parts["t"].to_i
  return false if t.zero? || parts["v1"].nil? || (Time.now.to_i - t).abs > 300

  expected = OpenSSL::HMAC.hexdigest("SHA256", secret, "#{t}.#{raw_body}")
  expected.bytesize == parts["v1"].bytesize && OpenSSL.fixed_length_secure_compare(expected, parts["v1"])
end

Zustellungen und Wiederholungsversuche

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 Jsonpage-Event-Id) und antworten Sie schnell; verarbeiten Sie das Ereignis bei Bedarf erst nach der Antwort.

Fehler der Überwachung

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 / FORMULARE: AUTOVERVOLLSTÄNDIGUNG UND VALIDIERUNG

Eingaben vervollständigen und prüfen

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.

Ohne Programmieren: Die Plugins für WooCommerce, WordPress, Shopify und PrestaShop nutzen diese beiden Endpunkte und ergänzen Ihren Shop um die Unternehmenssuche und eine geprüfte USt-IdNr.

Autovervollständigung

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, norwegische Organisationsnummer, finnische Y-tunnus, lettische Registernummer oder Jsonpage-House-Nummer), wird das entsprechende Unternehmen direkt zurückgegeben; eine SIRET liefert ihr Unternehmen.

curl "https://api.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-...", "...": "..." }
  ]
}

Gekürzte, beispielhafte Antwort.

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

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.

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.

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 Beispiel der serverseitigen Route im Schnellstart.

Validierung

GET /v2/validate akzeptiert id (globale Kennung, zum Beispiel FR-552032534), 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://api.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": "EU VAT check" }
    }
  }
}

Gekürzte Antwort: Die Basisfelder sind hier ausgelassen.

PrüfungPrüft
id_formatDie globale Kennung ist für ein abgedecktes Land korrekt formatiert; in der Schweiz, in Norwegen und in Finnland wird die Prüfziffer nach Modulo 11 der UID, der Organisationsnummer oder der Y-tunnus geprüft. In Australien wird auch die Modulo-89-Prüfung der ABN geprüft. In Singapur wird auch der Prüfbuchstabe der UEN geprüft. In Japan wird auch die Prüfziffer der Unternehmensnummer 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, USt. oder IVA; in Norwegen NO, eine Organisationsnummer mit korrekter Prüfziffer und MVA; in Finnland FI gefolgt von den 8 Zeichen einer Y-tunnus mit korrekter Prüfziffer; in Lettland LV gefolgt von 11 Ziffern; in Schweden SE, eine Organisationsnummer mit korrekter Prüfziffer und 01; in Estland EE gefolgt von 9 Ziffern; in Litauen LT gefolgt von den 9 Ziffern des Codes.
vat_country_supportedDas Land der USt-IdNr. wird unterstützt (Frankreich, Belgien, Schweiz, Norwegen, Finnland, Lettland, Schweden, Estland oder Litauen); 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 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).

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://api.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": "EU VAT check" }
    }
  }
}

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

curl "https://api.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": "EU VAT check" }
    }
  }
}

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.

Beispiel in Norwegen, Finnland, Lettland, Schweden, Estland oder Litauen: Auch eine USt-IdNr. genügt, NO923609016MVA (mit oder ohne Leerzeichen), FI01120389 oder LV40003245752. Bei einer norwegischen Nummer ist vat_registered valid, wenn die Einheit für die Mehrwertsteuer registriert ist, sonst schlägt die Prüfung fehl.

curl "https://api.jsonpage.com/v2/validate?vat=NO923609016MVA" \
  -H "X-API-Key: VOTRE_CLE"
curl "https://api.jsonpage.com/v2/validate?id=FR-652014051&siret=55203253400414" \
  -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": "55203253400414" },
      { "code": "siret_key", "ok": true, "value": "55203253400414" },
      { "code": "identifiers_match", "ok": false, "value": "FR-552032534" }
    ],
    "company": null
  }
}

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

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 / KUNDENBEREICH: SCHLÜSSEL, ANREICHERUNG, LISTEN, EXPORTE

Ihr Konto im Dashboard verwalten

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.

API-Schlüssel

Je nach Tarif (Entdecken (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.

Zulässige IP-Adressen (Pro)

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.

Anfrageprotokoll

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

Eine Datei anreichern

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 bis zu 10.000 Zeilen im Standard-Tarif und 100.000 im Pro-Tarif; der Tarif Entdecken erlaubt 100 angereicherte Zeilen pro Monat. Jede Zeile zählt als eine Anfrage. Pro Konto wird jeweils eine Datei verarbeitet; das Ergebnis kann 7 Tage lang heruntergeladen werden.

Unternehmenslisten (Standard und Pro)

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).

Export Ihrer Daten (Standard und Pro)

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

07 / BEST PRACTICES

Eine zuverlässige Integration

  • Speichern Sie die globale Kennung aus data.id (FR-552032534, BE-0417497106, CH-101374515, NO-923609016, FI-01120389, LV-40003245752, IE-104547, SE-5560427220, EE-10137025, LT-110053842, AU-51824753556, SG-196800306E, JP-1180301018771, 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.

Siehe auch die SLA-Seite zur Verfügbarkeitszusage des Pro-Tarifs.

08 / DATENQUELLE

Datenquelle

Jsonpage 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.

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

MEHR ERFAHREN

Eine Frage zum Dienst?

Die FAQ behandelt die Daten, die Aufruflimits und die Nutzung des Dienstes.

FAQ lesen