Jsonpage · API SIREN et SIRET
API SIREN ET SIRET

API SIREN et SIRET : recherche, autocomplétion, vérification

L'API Jsonpage renvoie en JSON la fiche d'une entreprise à partir de son SIREN (9 chiffres) ou de son SIRET (14 chiffres), la retrouve par son nom et suggère des entreprises pendant la saisie. Elle contrôle aussi le format et la clé de numéros saisis. Le forfait Découverte (gratuit) donne accès à toutes les routes, sans carte bancaire ; les forfaits payants sont à prix fixe, sans crédits.

Mis à jour le 11 octobre 2026

Le format du SIREN et du SIRET

Le SIREN identifie une entreprise (l'unité légale) avec 9 chiffres. Le SIRET identifie un de ses établissements avec 14 chiffres : le SIREN suivi d'un numéro interne de 5 chiffres (NIC). Les deux se terminent par une clé de contrôle calculée avec l'algorithme de Luhn, ce qui permet de repérer une faute de frappe sans interroger de base.

NuméroLongueurDésigneExemple
SIREN9 chiffresL'entreprise (unité légale)552032534
SIRET14 chiffresUn établissement : SIREN + NIC (5 chiffres)55203253400646

L'API accepte les numéros tels que vos utilisateurs les saisissent, avec espaces, points ou tirets. Dans les réponses, chaque entreprise porte un identifiant global : le code pays, un tiret, puis le numéro national (FR-552032534). Pour le détail du format, voir la différence entre SIREN et SIRET et le numéro SIREN.

Lire la fiche d'une entreprise par son SIREN

Une requête GET /v2/companies/FR-{siren} renvoie la fiche. Les blocs supplémentaires (adresse, TVA, signaux, annonces légales, établissements) se demandent avec le paramètre include, pour ne payer en temps de réponse que ce que vous lisez.

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

Réponse abrégée : les identifiants de nomenclature (scheme) des blocs legal_form et activity sont omis ici.

Pour un établissement, GET /v2/companies/FR-{siren}/establishments liste ceux de l'entreprise, page par page . Toutes les routes sont décrites dans la documentation et dans la spécification OpenAPI.

Rechercher par nom et compléter un formulaire

GET /v2/companies?q=danone recherche les entreprises par nom, et GET /v2/companies?registry_id=552032534 retrouve une entreprise à partir de son seul numéro national. Pour un champ de formulaire, GET /v2/autocomplete renvoie des suggestions légères (nom, ville, code postal) pendant la frappe ; appelez-la depuis votre serveur pour garder la clé secrète.

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

Vérifier un SIREN ou un SIRET saisi

GET /v2/validate contrôle en un appel les numéros d'un formulaire : format, clé de contrôle, existence, entreprise active, et concordance entre le SIREN, le SIRET et le numéro de TVA. La réponse est 200 même quand une valeur est invalide : valid indique si tous les contrôles sont réussis, checks détaille chacun.

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

Un identifiant mal formé renvoie l'erreur 400 invalid_identifier, un identifiant inconnu 404 not_found. Pour vérifier un numéro de TVA, voir la page API de vérification de TVA intracommunautaire.

Exemples dans votre langage

La clé est lue dans l'environnement ; elle reste sur votre serveur.

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

Limites et prix

Les forfaits sont à prix fixe : Découverte à 0 €, Standard à 19 € HT par mois et Pro à 129 € HT par mois. Le débit est de 100, 1 000 et 10 000 requêtes par minute, sans quota mensuel ; le forfait Découverte (gratuit) est en plus plafonné à 1 000 requêtes par jour. Prix fixe, pas de crédits, pas de dépassement facturé. Le détail est sur la page Tarifs.

Questions fréquentes

Quelle est la différence entre un SIREN et un SIRET ?+

Le SIREN a 9 chiffres et identifie l'entreprise. Le SIRET a 14 chiffres et identifie un de ses établissements : c'est le SIREN suivi d'un numéro interne de 5 chiffres.

L'API accepte-t-elle un SIREN saisi avec des espaces ?+

Oui. Les espaces, points et tirets du SIREN et du SIRET sont ignorés ; un numéro mal formé renvoie l'erreur invalid_identifier.

Comment retrouver un SIREN à partir d'un nom d'entreprise ?+

Avec la recherche par nom, GET /v2/companies?q=, ou avec l'autocomplétion, GET /v2/autocomplete, pensée pour les champs de formulaire.

L'API signale-t-elle une entreprise fermée ?+

Oui. Chaque fiche porte son statut (active ou closed) et sa date de fermeture lorsqu'elle existe, et la route de validation indique si l'entreprise est active.

Y a-t-il un quota mensuel de requêtes ?+

Non. Les limites portent sur le débit par minute : 100 requêtes avec le forfait Découverte (gratuit), 1 000 avec Standard et 10 000 avec Pro. Prix fixe, pas de crédits, pas de dépassement facturé. Seul le forfait Découverte (gratuit) est en plus plafonné à 1 000 requêtes par jour, réinitialisées à minuit UTC.

Pour aller plus loin

ESSAYER L'API

Votre clé en 2 minutes, sans carte

Le compte gratuit donne accès à toutes les routes, avec 100 requêtes par minute et 1 000 requêtes par jour.