Documentation

L’API Siren est développée via le langage Rust créé par la fondation Mozilla. Ce langage moderne est un langage compilé. Cela lui permet d’être robuste et une rapidité d’exécution sans pareil. Ce langage évolue régulièrement au travers de mises à jour ce qui lui permet d’être toujours à la pointe en termes de sécurité.

Vue d'ensemble de l'API

L’API adopte une architecture REST. Elle est composée de deux endpoints pour récupérer les établissements et les unités légales qui sont détaillés dans la partie suivante.

Comment utiliser sa clé d'API

Après avoir récupéré votre clé secrète d'API depuis l’espace client, il vous suffit de l'ajouter dans les en-têtes HTTP à chaque requête que vous faites à l’API Siren.

En-tête : X-Client-Secret

Valeur : votre clé d'API.

Route racine de l’API : https://data.siren-api.fr/

GET /v3/unites_legales/{SIREN}

Ce endpoint est destiné à la recherche d'unité légale par numéro de SIREN.

Paramètres de route

Fournir le SIREN dans l’URL (une suite de 9 chiffres).

Modèle retour
200 - OK

Ce endpoint retourne un JSON correspondant au modèle UniteLegaleResponse.

400 - Invalid Data

Le SIREN fourni n’est pas au bon format.

404 - Not found

Unité Légale non trouvé

GET /v3/etablissements/{SIRET}

Ce endpoint est destiné à la recherche d’établissement par numéro de SIRET.

Paramètres de route

Fournir le SIRET dans l’URL (une suite de 14 chiffres).

Modèle retour
200 - OK

Ce endpoint retourne un JSON correspondant au modèle EtablissementResponse.

400 - Invalid Data

Le SIRET fourni n’est pas au bon format.

404 - Not found

Établissement non trouvé

EtablissementResponse

    {
      "etablissement": {
        "siret": String // Ex: "79837235500023"
        "siren": String // Ex: "798372355"
        "nic": String // Ex: "00023"
        "statut_diffusion": String // Ex: "O"
        "date_creation": String // Ex: "2019-07-01"
        "tranche_effectifs": String
        "annee_effectifs": String
        "activite_principale_registre_metiers": String
        "date_dernier_traitement": String // "2019-10-28T03:33:12"
        "etablissement_siege": Bool // true
        "nombre_periodes": Number // Ex: 1
        "complement_adresse": Number // Ex: null
        "numero_voie": String // Ex: "1"
        "indice_repetition": String // Ex: null
        "type_voie": String // Ex: "RUE"
        "libelle_voie": String // Ex: "DE SAVOIE"
        "code_postal": String // Ex: "75006"
        "libelle_commune": String // Ex: "PARIS 6"
        "libelle_commune_etranger": String // Ex: null
        "distribution_speciale": String // Ex: null
        "code_commune": String // Ex: "75106"
        "code_cedex": String // Ex: null
        "libelle_cedex": String // Ex: null
        "code_pays_etranger": String // Ex: null
        "libelle_pays_etranger": String // Ex: null
        "complement_adresse2": String // Ex: null
        "numero_voie_2": String // Ex: null
        "indice_repetition_2": String // Ex: null
        "type_voie_2": String // Ex: null
        "libelle_voie_2": String // Ex: null
        "code_postal_2": String // Ex: null
        "libelle_commune_2": String // Ex: null
        "libelle_commune_etranger_2": String // Ex: null
        "distribution_speciale_2": String // Ex: null
        "code_commune_2": String // Ex: null
        "code_cedex_2": String // Ex: null
        "libelle_cedex_2": String // Ex: null
        "code_pays_etranger_2": String // Ex: null
        "libelle_pays_etranger_2": String // Ex: null
        "date_debut": String // Ex: "2019-07-01"
        "etat_administratif": String // Ex: "A"
        "enseigne_1": String // Ex: "CREATIWITY"
        "enseigne_2": String // Ex: null
        "enseigne_3": String // Ex: null
        "denomination_usuelle": String // Ex: "CREATIWITY"
        "activite_principale": String // Ex: "62.02A"
        "nomenclature_activite_principale": String // Ex: "NAFRev2"
        "caractere_employeur": String // Ex: "O"
        "unite_legale": UniteLegale
      }
    }
  

Etablissement

    {
      "siret": String // Ex: "79837235500023"
      "siren": String // Ex: "798372355"
      "nic": String // Ex: "00023"
      "statut_diffusion": String // Ex: "O"
      "date_creation": String // Ex: "2019-07-01"
      "tranche_effectifs": String // Ex: null
      "annee_effectifs": String // Ex: null
      "activite_principale_registre_metiers": String // Ex: null
      "date_dernier_traitement": String // Ex: "2019-10-28T03:33:12"
      "etablissement_siege": Bool // Ex: true
      "nombre_periodes": Number // Ex: 1
      "complement_adresse": String // Ex: null
      "numero_voie": String // Ex: "1"
      "indice_repetition": String // Ex: null
      "type_voie": String // Ex: "RUE"
      "libelle_voie": String // Ex: "DE SAVOIE"
      "code_postal": String // Ex: "75006"
      "libelle_commune": String // Ex: "PARIS 6"
      "libelle_commune_etranger": String // Ex: null
      "distribution_speciale": String // Ex: null
      "code_commune": String // Ex: "75106"
      "code_cedex": String // Ex: null
      "libelle_cedex": String // Ex: null
      "code_pays_etranger": String // Ex: null
      "libelle_pays_etranger": String // Ex: null
      "complement_adresse2": String // Ex: null
      "numero_voie_2": String // Ex: null
      "indice_repetition_2": String // Ex: null
      "type_voie_2": String // Ex: null
      "libelle_voie_2": String // Ex: null
      "code_postal_2": String // Ex: null
      "libelle_commune_2": String // Ex: null
      "libelle_commune_etranger_2": String // Ex: null
      "distribution_speciale_2": String // Ex: null
      "code_commune_2": String // Ex: null
      "code_cedex_2": String // Ex: null
      "libelle_cedex_2": String // Ex: null
      "code_pays_etranger_2": String // Ex: null
      "libelle_pays_etranger_2": String // Ex: null
      "date_debut": String // Ex: "2019-07-01"
      "etat_administratif": String // Ex: "A"
      "enseigne_1": String // Ex: "CREATIWITY"
      "enseigne_2": String // Ex: null
      "enseigne_3": String // Ex: null
      "denomination_usuelle": String // Ex: "CREATIWITY"
      "activite_principale": String // Ex: "62.02A"
      "nomenclature_activite_principale": String // Ex: "NAFRev2"
      "caractere_employeur": String // Ex: "O"
    }
  

UniteLegaleResponse

    {
      "unite_legale": {
        "siren": String // Ex: "798372355"
        "statut_diffusion": String // Ex: "O"
        "unite_purgee": String // Ex: null
        "date_creation": String // Ex: "2013-10-30"
        "sigle": String // Ex: null
        "sexe": String // Ex: null
        "prenom_1": String // Ex: null
        "prenom_2": String // Ex: null
        "prenom_3": String // Ex: null
        "prenom_4": String // Ex: null
        "prenom_usuel": String // Ex: null
        "pseudonyme": String // Ex: null
        "identifiant_association": String // Ex: null
        "tranche_effectifs": String // Ex: "02"
        "annee_effectifs": Number // Ex: 2018
        "date_dernier_traitement": String // Ex: "2020-08-25T11:07:37"
        "nombre_periodes": Number // Ex: 3
        "categorie_entreprise": String // Ex: "PME"
        "annee_categorie_entreprise": Number // Ex: 2018
        "date_debut": String // Ex: "2019-07-01"
        "etat_administratif": String // Ex: "A"
        "nom": String // Ex: null
        "nom_usage": String // Ex: null
        "denomination": String // Ex: "CREATIWITY"
        "denomination_usuelle_1": String // Ex: null
        "denomination_usuelle_2": String // Ex: null
        "denomination_usuelle_3": String // Ex: null
        "categorie_juridique": String // Ex: "5710"
        "activite_principale": String // Ex: "62.02A"
        "nomenclature_activite_principale": String // Ex: "NAFRev2"
        "nic_siege": String // Ex: "00023"
        "economie_sociale_solidaire": String // Ex: "N"
        "caractere_employeur": String // Ex: "O"
        "etablissements": [Etablissement]
        "etablissement_siege": Etablissement
      }
    }
  

UniteLegale

    {
      "siren": String // Ex: "798372355"
      "statut_diffusion": String // Ex: "O"
      "unite_purgee": String // Ex: null
      "date_creation": String // Ex: "2013-10-30"
      "sigle": String // Ex: null
      "sexe": String // Ex: null
      "prenom_1": String // Ex: null
      "prenom_2": String // Ex: null
      "prenom_3": String // Ex: null
      "prenom_4": String // Ex: null
      "prenom_usuel": String // Ex: null
      "pseudonyme": String // Ex: null
      "identifiant_association": String // Ex: null
      "tranche_effectifs": String // Ex: "02"
      "annee_effectifs": Number // Ex: 2018
      "date_dernier_traitement": String // Ex: "2020-08-25T11:07:37"
      "nombre_periodes": Number // Ex: 3
      "categorie_entreprise": String // Ex: "PME"
      "annee_categorie_entreprise": Number // Ex: 2018
      "date_debut": String // Ex: "2019-07-01"
      "etat_administratif": String // Ex: "A"
      "nom": String // Ex: null
      "nom_usage": String // Ex: null
      "denomination": String // Ex: "CREATIWITY"
      "denomination_usuelle_1": String // Ex: null
      "denomination_usuelle_2": String // Ex: null
      "denomination_usuelle_3": String // Ex: null
      "categorie_juridique": String // Ex: "5710"
      "activite_principale": String // Ex: "62.02A"
      "nomenclature_activite_principale": String // Ex: "NAFRev2"
      "nic_siege": String // Ex: "00023"
      "economie_sociale_solidaire": String // Ex: "N"
      "caractere_employeur": String // Ex: "O"
      "etablissement_siege": Etablissement
    }
  

L’API Siren se met à jour de deux façons différentes :

Chaque début de mois

L’intégralité de la base de données est alors rechargée depuis l'INSEE, ce qui assure l'intégrité des données.

Quotidiennement

Une mise à jour quotidienne est effectuée depuis l’INSEE. Il s’agit d’une mise à jour incrémentale où seules les modifications de la veille sont récupérées.

Ce double système de mise à jour est transparent pour vous. Il s’effectue en arrière plan et lorsque la mise à jour est achevée, vous disposerez immédiatement des données à jour dans les résultats de vos appels API.

Des tests de charge ont été effectués sur l’API : que ce soit sur le endpoint Etablissements ou Unites_Legales, l’API met moins de 100 ms en moyenne pour retourner une réponse.

Cependant, des variations dans le temps de réponse peuvent apparaitre en fonction de la connexion internet de l’utilisateur.

Licences

La plateforme API Siren s’appuie sur une brique logicielle Open Source développée par Creatiwity et disponible sur GitHub : https://github.com/Creatiwity/siren

La brique “Siren” développée en langage Rust est distribuée sous licence MIT.

En accord avec le RGPD, les entreprises ne souhaitant plus figurer au sein de la banque de données doivent contacter l’INSEE pour se retirer des listes.

Notre système de mise à jour quotidienne retirera automatiquement l’entreprise des résultats.

La géolocalisation des établissements d’entreprise n’est pas immédiatement mise à disposition au sein des fichiers OpenData.

Il est cependant possible d’appliquer une recherche géolocalisée sur la base des adresses en utilisant l’API officielle Adresse.

N’hésitez pas à nous contacter pour obtenir plus d’informations sur ce point.

Mise à jour de l’API

Fréquence

Méthode de mise à jour

Installation

Automatisée