Python helper to request Sirene Api on api.insee.fr
Project description
`🇫🇷 Français <https://github.com/sne3ks/api_insee/blob/master/README.fr.md>`__
Python helper to request Sirene API
API Sirene give access to French companies and business database. Entities are recorded since the creation of this administrative register in 1973. To use this API you have to create an account on https://api.insee.fr/
The python library api_insee is a help to request the API Sirene in perfect simplicity. You’ll find more information about the API in the official documentation
Installation
From a terminal :
pip install api-insee
To request the API you must create a consummer account on api.insee.fr. Then with your access keys :
from api_insee import ApiInsee
api = ApiInsee(
key = # consummer key,
secret = # secret key
)
Request samples
Fetch data from a siret or sirene number
data = api.siren('005520135').get()
data = api.siret('39860733300059').get()
# Request executed:
# https://api.insee.fr/entreprises/sirene/V3/siren/005520135
# https://api.insee.fr/entreprises/sirene/V3/siret/39860733300059
Set parameters to the request:
data = api.siren('005520135', date='2018-01-01').get()
# Request executed:
# https://api.insee.fr/entreprises/sirene/V3/siren/005520135?date=2018-01-01
Perform an advanced search on given criteria using q= parameter
data = api.siren(q='unitePurgeeUniteLegage:True').get()
# Request executed:
# /?q=unitePurgeeUniteLegage:True
Filter fields in the response
champs = [
'siret',
'denominationUniteLegale',
'nomUsageUniteLegale',
'prenom1UniteLegale',
]
request = api.siret('39860733300059', champs=champs)
# Request executed:
# /39860733300059?champs=siret,denominationUniteLegale,nomUsageUniteLegale,prenom1UniteLegale
Advanced search on criteria
Class in api_insee.criteria let you construct advanced searchs easily. All variables available are described in the official documentation
You can combine several criteria in one request.
from api_insee.criteria import Field
data = api.siren(q=(
Field('codeCommuneEtablissement', 92046),
Field('unitePurgeeUniteLegale', True)
)).get()
# Request executed:
# /?q=codeCommuneEtablissement:92046 AND unitePurgeeUniteLegale:True
Or using a dictionnary
data = api.siren(q={
'codeCommuneEtablissement' : 92046,
'unitePurgeeUniteLegale' : True
}).get()
# Request executed:
# /?q=codeCommuneEtablissement:92046 AND unitePurgeeUniteLegale:True
Use logical operator |, &, - (not) to specify your requests.
data = api.siren(q=(
Field('codeCommuneEtablissement', 92046) | Field('unitePurgeeUniteLegale', True)
)).get()
data = api.siren(q=-Field('codeCommuneEtablissement', 92046)).get()
# Request executed:
# /?q=codeCommuneEtablissement:92046 OR unitePurgeeUniteLegale:True
# /?q=-codeCommuneEtablissement:92046
Special Search
Type |
Description |
Example |
---|---|---|
Field Exact |
Search on an exact value |
FieldExa ct(‘demo nination UniteLeg ale’,’LE TIMBRE’) ) |
Perio dic |
Search on periodic field |
Periodic (Field(’ activite Principa leUniteL egale’,’ 84.23Z’) |
Range |
Search in a range of values |
Range(‘n omUsageU niteLega le’, ‘DUPONT’ , ‘DURANT’ ) |
Pagination
The pages() method return an iterator to let you fetch pages from the api. To specify the number of results per page use the nombre argument. Results are limited by 10000 per pages.
from api_insee import ApiInsee
api = ApiInsee(
key = # consummer key,
secret = # secret key
)
request = api.siren(q={
'categorieEntreprise': 'PME'
})
for (page_index, page_result) in enumerate(request.pages(nombre=1000)):
# process here
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file api_insee-1.6.tar.gz
.
File metadata
- Download URL: api_insee-1.6.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7d5f6324e1ed432c7acd16a10e7abfed908fe41fc64c6d669748e75e35f9487 |
|
MD5 | b6536d7994baf28266d7e82c64062679 |
|
BLAKE2b-256 | 75b25e4e89ad6cdb31440b2a19d2457abcb5b77d19060d36bcc62117de28968a |