Jsonpage · SIREN- und SIRET-API
SIREN- UND SIRET-API

SIREN- und SIRET-API: Suche, Autovervollständigung, Prüfung

Die Jsonpage-API liefert als JSON den Datensatz eines Unternehmens anhand seiner SIREN (9 Ziffern) oder SIRET (14 Ziffern), findet es über seinen Namen und schlägt schon bei der Eingabe passende Unternehmen vor. Sie prüft außerdem Format und Prüfziffer eingegebener Nummern. Der Entdecken-Tarif (kostenlos) gibt Zugriff auf alle Endpunkte, ohne Kreditkarte; die kostenpflichtigen Tarife haben Festpreise, ohne Credits.

Aktualisiert am 11. Oktober 2026

Das Format von SIREN und SIRET

Die SIREN identifiziert ein Unternehmen (die Rechtseinheit) mit 9 Ziffern. Die SIRET identifiziert eine seiner Niederlassungen mit 14 Ziffern: die SIREN, gefolgt von einer internen Nummer mit 5 Ziffern (NIC). Beide enden mit einer Prüfziffer, die nach dem Luhn-Algorithmus berechnet wird. So lässt sich ein Tippfehler erkennen, ohne eine Datenbank abzufragen.

NummerLängeBezeichnetBeispiel
SIREN9 ZiffernDas Unternehmen (Rechtseinheit)552032534
SIRET14 ZiffernEine Niederlassung: SIREN + NIC (5 Ziffern)55203253400646

Die API akzeptiert die Nummern so, wie Ihre Nutzer sie eingeben, mit Leerzeichen, Punkten oder Bindestrichen. In den Antworten trägt jedes Unternehmen eine globale Kennung: den Ländercode, einen Bindestrich und dann die nationale Nummer (FR-552032534). Details zum Format finden Sie unter Unterschied zwischen SIREN und SIRET und Die SIREN-Nummer.

Den Datensatz eines Unternehmens über seine SIREN abrufen

Eine Anfrage GET /v2/companies/FR-{siren} liefert den Datensatz. Zusätzliche Blöcke (Adresse, USt-IdNr., Signale, rechtliche Bekanntmachungen, Niederlassungen) fordern Sie mit dem Parameter include an, sodass Sie nur für das, was Sie lesen, Antwortzeit aufwenden.

curl "https://api.jsonpage.com/v2/companies/FR-552032534?include=address" \
  -H "X-API-Key: $JSONPAGE_API_KEY"
{
  "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.)" },
    "activity": { "nace": "70.10", "code": "70.10Z", "label": "Activités des sièges sociaux" },
    "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"
    }
  },
  "meta": {
    "sources": [{ "name": "Official company register: France", "country": "FR", "kind": "register", "data_date": "2026-09-29" }],
    "includes": { "address": "ok" }
  }
}

Gekürzte Antwort: Die Kennungen der Nomenklatur (scheme) der Blöcke legal_form und activity sind hier weggelassen.

Für eine Niederlassung listet GET /v2/companies/FR-{siren}/establishments die Niederlassungen des Unternehmens seitenweise auf. Alle Endpunkte sind in der Dokumentation und in der OpenAPI-Spezifikation beschrieben.

Nach Namen suchen und ein Formular ausfüllen

GET /v2/companies?q=danone sucht Unternehmen nach Namen, und GET /v2/companies?registry_id=552032534 findet ein Unternehmen allein anhand seiner nationalen Nummer. Für ein Formularfeld liefert GET /v2/autocomplete während der Eingabe schlanke Vorschläge (Name, Ort, Postleitzahl); rufen Sie sie von Ihrem Server aus auf, damit der Schlüssel geheim bleibt.

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

Eine eingegebene SIREN oder SIRET prüfen

GET /v2/validate prüft die Nummern eines Formulars in einem Aufruf: Format, Prüfziffer, Existenz, aktives Unternehmen und Übereinstimmung zwischen SIREN, SIRET und USt-IdNr. Die Antwort lautet 200, auch wenn ein Wert ungültig ist: valid zeigt an, ob alle Prüfungen bestanden sind, checks führt jede einzeln auf.

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": "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", "name": "CARREFOUR", "status": "active", "...": "..." }
  }
}

Eine fehlerhaft aufgebaute Kennung liefert den Fehler 400 invalid_identifier, eine unbekannte Kennung 404 not_found. Zur Prüfung einer USt-IdNr. siehe die Seite API zur Prüfung der innergemeinschaftlichen USt-IdNr..

Beispiele in Ihrer Sprache

Der Schlüssel wird aus der Umgebung gelesen und bleibt auf Ihrem Server.

JavaScript

const res = await fetch("https://api.jsonpage.com/v2/companies/FR-552032534", {
  headers: { "X-API-Key": process.env.JSONPAGE_API_KEY },
});
const { data } = await res.json();
console.log(data.name, data.status);

Python

import os, requests

res = requests.get(
    "https://api.jsonpage.com/v2/companies/FR-552032534",
    headers={"X-API-Key": os.environ["JSONPAGE_API_KEY"]},
)
data = res.json()["data"]
print(data["name"], data["status"])

PHP

<?php
$ch = curl_init("https://api.jsonpage.com/v2/companies/FR-552032534");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("JSONPAGE_API_KEY")],
]);
$data = json_decode(curl_exec($ch), true)["data"];
echo $data["name"], " ", $data["status"];

Ruby

require "net/http"
require "json"

uri = URI("https://api.jsonpage.com/v2/companies/FR-552032534")
req = Net::HTTP::Get.new(uri, "X-API-Key" => ENV["JSONPAGE_API_KEY"])
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)["data"]
puts "#{data["name"]} #{data["status"]}"

Limits und Preise

Die Tarife haben feste Preise: Entdecken für 0 €, Standard für 19 € netto pro Monat und Pro für 129 € netto pro Monat. Die Rate beträgt 100, 1.000 und 10.000 Anfragen pro Minute, ohne Monatskontingent; der Entdecken-Tarif (kostenlos) ist zusätzlich auf 1.000 Anfragen pro Tag begrenzt. Fester Preis, keine Credits, keine Mehrkosten bei Überschreitung. Die Details finden Sie auf der Seite Tarife.

Häufige Fragen

Was ist der Unterschied zwischen SIREN und SIRET?+

Die SIREN hat 9 Ziffern und identifiziert das Unternehmen. Die SIRET hat 14 Ziffern und identifiziert eine seiner Niederlassungen: Sie besteht aus der SIREN, gefolgt von einer internen Nummer mit 5 Ziffern.

Akzeptiert die API eine SIREN, die mit Leerzeichen eingegeben wurde?+

Ja. Leerzeichen, Punkte und Bindestriche in SIREN und SIRET werden ignoriert; eine fehlerhaft aufgebaute Nummer liefert den Fehler invalid_identifier.

Wie finde ich die SIREN anhand eines Firmennamens?+

Mit der Namenssuche, GET /v2/companies?q=, oder mit der Autovervollständigung, GET /v2/autocomplete, die für Formularfelder gedacht ist.

Meldet die API ein geschlossenes Unternehmen?+

Ja. Jeder Datensatz trägt seinen Status (active oder closed) und, falls vorhanden, sein Schließungsdatum, und der Validierungs-Endpunkt zeigt an, ob das Unternehmen aktiv ist.

Gibt es ein monatliches Anfragekontingent?+

Nein. Die Limits betreffen die Rate pro Minute: 100 Anfragen im Tarif Entdecken, 1.000 im Tarif Standard und 10.000 im Tarif Pro. Fester Preis, keine Credits, keine Mehrkosten bei Überschreitung. Nur der Entdecken-Tarif (kostenlos) ist zusätzlich auf 1.000 Anfragen pro Tag begrenzt, zurückgesetzt um Mitternacht UTC.

Weiterführende Informationen

API TESTEN

Ihr Schlüssel in 2 Minuten, ohne Karte

Das kostenlose Konto gibt Zugriff auf alle Endpunkte, mit 100 Anfragen pro Minute und 1.000 Anfragen pro Tag.