API Sirene donne accĂšs aux informations concernant les entreprises et les Ă©tablissements immatriculĂ©s au rĂ©pertoire interadministratif Sirene depuis sa crĂ©ation en 1973, y compris les unitĂ©s fermĂ©es. La recherche peut ĂȘtre unitaire, multicritĂšre, phonĂ©tique et porter sur les donnĂ©es courantes et historisĂ©es. Les services actuellement disponibles interrogent les unitĂ©s lĂ©gales (Siren) et les Ă©tablissements (Siret).
La bibliothéque python api_insee
est une aide pour d'interroger l'API Sirene en toute simplicité.
Vous trouverez d'avantage d'informations au sujet de l'API Sirene dans la documentation officielle
Depuis un terminal :
pip install api-insee
Pour pouvoir interroger l'api vous devez créer un compte consommateur sur api.insee.fr. Puis récupérer vos clés consommateur et secrÚte.
from api_insee import ApiInsee
api = ApiInsee(
key = # clé consommateur,
secret = # clé secrÚte
)
- Récupérer les informations à partir d'un numéro sirene ou siret
data = api.siren('005520135').get()
data = api.siret('39860733300059').get()
# RequĂȘtes envoyĂ©es:
# https://api.insee.fr/entreprises/sirene/V3/siren/005520135
# https://api.insee.fr/entreprises/sirene/V3/siret/39860733300059
- Passer des paramĂštres Ă la requĂȘte
data = api.siren('005520135', date='2018-01-01').get()
# RequĂȘte envoyĂ©es:
# https://api.insee.fr/entreprises/sirene/V3/siren/005520135?date=2018-01-01
- Faire une recherche avancée sur des critÚres donnés, en utilisant le paramÚtre
q=
data = api.siren(q='unitePurgeeUniteLegage:True').get()
Les classes api_insee.criteria
permettent de construire
les requĂȘtes de recherche avancĂ©es plus facilement. Vous trouverez dans la documentation officielle l'ensemble des variables disponibles.
- Vous pouvez par exemple combiner plusieurs critĂšres sur une seule requĂȘte.
from api_insee.criteria import Field
data = api.siren(q=(
Field('codeCommuneEtablissement', 92046),
Field('unitePurgeeUniteLegale', True)
)).get()
# RequĂȘte envoyĂ©e:
# /?q=codeCommuneEtablissement:92046 AND unitePurgeeUniteLegale:True
- Ou encore en utilisant un dictionnaire
data = api.siren(q={
'codeCommuneEtablissement' : 92046,
'unitePurgeeUniteLegale' : True
}).get()
# RequĂȘte envoyĂ©e:
# /?q=codeCommuneEtablissement:92046 AND unitePurgeeUniteLegale:True
- Utilisez les opérateurs logiques
|
,&
,- (not)
pour prĂ©ciser vos requĂȘtes.
data = api.siren(q=(
Field('codeCommuneEtablissement', 92046) | Field('unitePurgeeUniteLegale', True)
)).get()
data = api.siren(q=-Field('codeCommuneEtablissement', 92046)).get()
# RequĂȘtes envoyĂ©es:
# /?q=codeCommuneEtablissement:92046 OR unitePurgeeUniteLegale:True
# /?q=-codeCommuneEtablissement:92046
- Filtrer les champs retournés par la réponse
champs = [
'siret',
'denominationUniteLegale',
'nomUsageUniteLegale',
'prenom1UniteLegale',
]
request = api.siret('39860733300059', champs=champs)
# Request executed:
# /39860733300059?champs=siret,denominationUniteLegale,nomUsageUniteLegale,prenom1UniteLegale
- Interroger le service des liens de succession. (Uniquement disponible depuis la version 1.5 de api_insee)
request = api.liens_succession(q=Criteria.Field('siretEtablissementPredecesseur', 39860733300042))
# '/liensSuccession?q=siretEtablissementPredecesseur:39860733300042'
request = api.liens_succession(q=(
Criteria.Field('siretEtablissementPredecesseur', '00555008200027') &
Criteria.Field('dateLienSuccession', '2004-04-01')
))
# '/liensSuccession?q=siretEtablissementPredecesseur:00555008200027 AND dateLienSuccession:2004-04-01'
Type | Description | Exemple |
---|---|---|
FieldExact | Recherche la valeur exact | FieldExact('demoninationUniteLegale','LE TIMBRE')) |
Periodic | Recherche sur un champ périodique | Periodic(Field('activitePrincipaleUniteLegale','84.23Z') |
Range | Recherche sur un interval | Range('nomUsageUniteLegale', 'DUPONT', 'DURANT') |
Pour les requĂȘtes retournant beaucoup de rĂ©sultats, il est possible de parcourir les rĂ©sultats grĂące Ă la mĂ©thode pages()
. Le paramĂštre nombre
spécifie le nombre de résultats par pages. La limite définie par l'insee est 1000 résultats par pages.
from api_insee import ApiInsee
api = ApiInsee(
key = # clé consommateur,
secret = # clé secrÚte
)
request = api.siren(q={
'categorieEntreprise': 'PME'
})
for (page_index, page_result) in enumerate(request.pages(nombre=1000)):
# votre code ici ..