Jsonpage · SIREN- en SIRET-API
SIREN- EN SIRET-API

SIREN- en SIRET-API: zoeken, autocomplete, controle

De Jsonpage-API geeft in JSON het profiel van een bedrijf terug op basis van het SIREN-nummer (9 cijfers) of het SIRET-nummer (14 cijfers), vindt het bedrijf via de naam en doet bedrijfssuggesties tijdens het typen. Ze controleert ook het formaat en het controlecijfer van ingevoerde nummers. Het Kennismaking-abonnement (gratis) geeft toegang tot alle routes, zonder creditcard; de betaalde abonnementen hebben een vaste prijs, zonder tegoeden.

Bijgewerkt op 11 oktober 2026

Het formaat van het SIREN- en SIRET-nummer

Het SIREN-nummer identificeert een bedrijf (de juridische eenheid) met 9 cijfers. Het SIRET-nummer identificeert een van de vestigingen met 14 cijfers: het SIREN-nummer gevolgd door een intern nummer van 5 cijfers (NIC). Beide eindigen op een controlecijfer dat met het Luhn-algoritme wordt berekend, zodat een typefout te herkennen is zonder een database te raadplegen.

NummerLengteBetreftVoorbeeld
SIREN9 cijfersHet bedrijf (juridische eenheid)552032534
SIRET14 cijfersEen vestiging: SIREN + NIC (5 cijfers)55203253400646

De API accepteert nummers zoals uw gebruikers ze invoeren, met spaties, punten of streepjes. In de antwoorden heeft elk bedrijf een globale identificatie: de landcode, een streepje en dan het nationale nummer (FR-552032534). Voor meer details over het formaat, zie het verschil tussen SIREN en SIRET en het SIREN-nummer.

Het profiel van een bedrijf opvragen via het SIREN-nummer

Een verzoek GET /v2/companies/FR-{siren} geeft het bedrijfsprofiel terug. Extra blokken (adres, btw, signalen, wettelijke aankondigingen, vestigingen) vraagt u op met de parameter include, zodat u alleen responstijd besteedt aan wat u leest.

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

Verkort antwoord: de nomenclatuuridentificaties (scheme) van de blokken legal_form en activity zijn hier weggelaten.

Voor vestigingen toont GET /v2/companies/FR-{siren}/establishments de vestigingen van het bedrijf, pagina voor pagina. Alle routes zijn beschreven in de documentatie en in de OpenAPI-specificatie.

Zoeken op naam en een formulier aanvullen

GET /v2/companies?q=danone zoekt bedrijven op naam, en GET /v2/companies?registry_id=552032534 vindt een bedrijf via alleen het nationale nummer. Voor een formulierveld geeft GET /v2/autocomplete tijdens het typen beknopte suggesties terug (naam, plaats, postcode); roep de route aan vanaf uw server, zodat de sleutel geheim blijft.

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

Een ingevoerd SIREN- of SIRET-nummer controleren

GET /v2/validate controleert de nummers uit een formulier in één aanroep: formaat, controlecijfer, bestaan, actief bedrijf, en overeenstemming tussen het SIREN-nummer, het SIRET-nummer en het btw-nummer. Het antwoord is 200, ook als een waarde ongeldig is: valid geeft aan of alle controles zijn geslaagd, checks toont elke controle afzonderlijk.

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

Een onjuist opgebouwde identificatie geeft de fout 400 invalid_identifier, een onbekende identificatie 404 not_found. Om een btw-nummer te controleren, zie de pagina API voor controle van intracommunautaire btw-nummers.

Voorbeelden in uw programmeertaal

De sleutel wordt uit de omgeving gelezen en blijft op uw 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"]}"

Limieten en prijzen

De abonnementen hebben een vaste prijs: Kennismaking à € 0, Standard à € 19 excl. btw per maand en Pro à € 129 excl. btw per maand. De doorvoer is 100, 1.000 en 10.000 verzoeken per minuut, zonder maandelijks quotum; het Kennismaking-abonnement (gratis) heeft daarnaast een plafond van 1.000 verzoeken per dag. Vaste prijs, geen credits, geen extra kosten bij overschrijding. De details staan op de pagina Tarieven.

Veelgestelde vragen

Wat is het verschil tussen een SIREN- en een SIRET-nummer?+

Het SIREN-nummer heeft 9 cijfers en identificeert het bedrijf. Het SIRET-nummer heeft 14 cijfers en identificeert een van de vestigingen: het is het SIREN-nummer gevolgd door een intern nummer van 5 cijfers.

Accepteert de API een SIREN-nummer met spaties?+

Ja. Spaties, punten en streepjes in het SIREN- en SIRET-nummer worden genegeerd; een onjuist opgebouwd nummer geeft de fout invalid_identifier.

Hoe vind ik een SIREN-nummer aan de hand van een bedrijfsnaam?+

Met zoeken op naam, GET /v2/companies?q=, of met autocomplete, GET /v2/autocomplete, bedoeld voor formuliervelden.

Meldt de API dat een bedrijf gesloten is?+

Ja. Elk profiel vermeldt zijn status (active of closed) en, indien van toepassing, de sluitingsdatum. De validatieroute geeft bovendien aan of het bedrijf actief is.

Is er een maandelijks quotum aan verzoeken?+

Nee. De limieten gelden voor de doorvoer per minuut: 100 verzoeken met het abonnement Kennismaking, 1.000 met Standard en 10.000 met Pro. Vaste prijs, geen credits, geen extra kosten bij overschrijding. Alleen het Kennismaking-abonnement (gratis) heeft daarnaast een plafond van 1.000 verzoeken per dag, dat om middernacht UTC wordt gereset.

Verder lezen

DE API PROBEREN

Uw sleutel in 2 minuten, zonder creditcard

Het gratis account geeft toegang tot alle routes, met 100 verzoeken per minuut en 1.000 verzoeken per dag.