apisirene_03_requetes_multicriteres.Rmd
Selon la documentation, une recherche multicritères est :
Il est possible via les deux services d’interrogation sur Siren et Siret d’effectuer une recherche libre permettant de combiner la totalité des variables présentes dans la réponse du service unitaire Siren (respectivement Siret). Cette recherche permet d’obtenir une liste des Siren (respectivement des Siret) qui répondent à des critères passés par un paramètre q (query) prenant la forme d’une requête, éventuellement complétée par les paramètres date, debut, nombre et curseur en fonction des besoins.
Cette recherche multicritères permet donc d’obtenir des listes de Siren (ou Siret) sur la base d’une recherche visant à limiter les résultats selon des modalités choisies.
Il est par exemple possible d’extraire la liste des établissements exerçant une activité de boulangerie pâtisserie (code APE 10.71C) dans une commune ou un arrondissement municipal déterminé.
Il est également possible d’obtenir la liste des unités légales d’une certaine catégorie juridique. Ces exemples sont présentés ci-dessous.
Toutes les variables, yc les indicatrices. Il y a quelques subtilités pour les champs de type date, comme mentionné ici.
Pour obtenir le résultat d’une requête multicritères, il faut
utiliser les fonctions insee_siret_multi_get
et
insee_siret_multi_make
.
Pour cela, il faut passer une chaine de caractères à la fonction
insee_siret_multi_make
précisant les valeurs et les champs
concernés. La structure de la chaine de caractère est de la forme
“VARIABLE:VALEUR”. Il est possible d’utiliser les opérateurs logiques
AND
et OR
(respectivement avec les caractères
& et |).
Les noms des VARIABLES sont fixés :
Les autres variables ne sont pas (encore ?) prises en charge par le package (PR welcome !)
Je souhaite obtenir la liste des boulangeries du 1er arrondissement municipal de Marseille.
library("apisirene")
#> Si c'est votre premiere utilisation du package, il est recommande de lire les vignettes, ou de lancer la commande insee_sirene_aide()
insee_utils_siret_multi_make("DEPCOM:13201 & NAF:10.71C") |>
insee_get_siret_multi()
#> Votre requete concerne 180 entreprises ou etablissements
#> Debut de traitement: 2025-09-21 16:30:59.400741
#> 2025-09-21 16:31:07.527281
#> Fin de traitement : 2025-09-21 16:31:07.5276
#> # A tibble: 180 × 37
#> gSiren gNic gSiret gStatutDiffEtb gDateCreaEtb gTreffEtb gAnneeEffEtb
#> <chr> <chr> <chr> <lgl> <chr> <chr> <chr>
#> 1 057812018 00026 057812018… NA 1992-05-08 NA NA
#> 2 060804051 00013 060804051… NA 1960-01-01 00 2022
#> 3 069802361 00050 069802361… NA 1982-06-01 NA NA
#> 4 073712630 00018 073712630… NA 1965-01-01 NA NA
#> 5 307188946 00015 307188946… NA 1900-01-01 NA NA
#> 6 307188946 00031 307188946… NA 1993-01-01 NA NA
#> 7 318151727 00019 318151727… NA 1980-01-01 NA NA
#> 8 319682563 00055 319682563… NA 1990-02-19 NA NA
#> 9 319682563 00063 319682563… NA 1990-02-19 NA NA
#> 10 322322827 00013 322322827… NA 1980-08-01 NA NA
#> # ℹ 170 more rows
#> # ℹ 30 more variables: gApeRmEtb <chr>, gDateDernTraitEtb <chr>,
#> # gEtbSiege <lgl>, gNbPeriodEtb <int>, ulEtatAdm <chr>, ulDenom <chr>,
#> # ulSigle <chr>, ulDenomUsuelle <chr>, ulCodeAPE <chr>, ulCJ <chr>,
#> # aEtbDEPCOM <chr>, aEtbNumVoie <chr>, aEtbTypeVoie <chr>, aEtbLibVoie <chr>,
#> # aEtbCodePostal <chr>, aEtbLibCom <chr>, aEtbCoordX <chr>, aEtbCoordY <chr>,
#> # pDateFin <lgl>, pDateDeb <chr>, pEtatAdmEtb <chr>, pChgtEtatAdmEtb <lgl>, …
Lorsque l’utilisateur souhaitera filtrer plus finement, il sera alors nécessaire d’utiliser les symboles de priorité.
Si la recherche porte sur les établissements dont la catégorie juridique est entrepreneur individuel (code = 1000) ou SARL (code = 5499) et dont l’activité principale est soit boulangerie (code 10.71B et 10.71C), soit charcuterie (code 10.13B) dans le 1er, 5e et 8e arrondissement municipal de Marseille :
insee_utils_siret_multi_make("(DEPCOM:13201 | DEPCOM:13205 | DEPCOM:13208) & (NAF:10.71B | NAF:10.71C | NAF:10.13B) & (CJ:1000 | CJ:5499)") |>
insee_get_siret_multi() |>
head(n = 15)
#> Votre requete concerne 355 entreprises ou etablissements
#> Debut de traitement: 2025-09-21 16:31:08.308619
#> 2025-09-21 16:31:12.271217
#> Fin de traitement : 2025-09-21 16:31:12.271543
#> # A tibble: 15 × 37
#> gSiren gNic gSiret gStatutDiffEtb gDateCreaEtb gTreffEtb gAnneeEffEtb
#> <chr> <chr> <chr> <lgl> <chr> <chr> <chr>
#> 1 057812018 00026 057812018… NA 1992-05-08 NA NA
#> 2 060804051 00013 060804051… NA 1960-01-01 00 2022
#> 3 064722812 00019 064722812… NA 1900-01-01 NA NA
#> 4 064722812 00027 064722812… NA 1900-01-01 NA NA
#> 5 069802361 00050 069802361… NA 1982-06-01 NA NA
#> 6 073712630 00018 073712630… NA 1965-01-01 NA NA
#> 7 307188946 00015 307188946… NA 1900-01-01 NA NA
#> 8 307188946 00031 307188946… NA 1993-01-01 NA NA
#> 9 307489997 00014 307489997… NA 1964-01-01 NA NA
#> 10 314207507 00026 314207507… NA 1986-07-01 NA NA
#> 11 318151727 00019 318151727… NA 1980-01-01 NA NA
#> 12 318634243 00055 318634243… NA 1996-08-26 NA NA
#> 13 318634243 00063 318634243… NA 1999-08-10 NA NA
#> 14 319682563 00055 319682563… NA 1990-02-19 NA NA
#> 15 319682563 00063 319682563… NA 1990-02-19 NA NA
#> # ℹ 30 more variables: gApeRmEtb <chr>, gDateDernTraitEtb <chr>,
#> # gEtbSiege <lgl>, gNbPeriodEtb <int>, ulEtatAdm <chr>, ulDenom <chr>,
#> # ulSigle <chr>, ulDenomUsuelle <chr>, ulCodeAPE <chr>, ulCJ <chr>,
#> # aEtbDEPCOM <chr>, aEtbNumVoie <chr>, aEtbTypeVoie <chr>, aEtbLibVoie <chr>,
#> # aEtbCodePostal <chr>, aEtbLibCom <chr>, aEtbCoordX <chr>, aEtbCoordY <chr>,
#> # pDateFin <lgl>, pDateDeb <chr>, pEtatAdmEtb <chr>, pChgtEtatAdmEtb <lgl>,
#> # pEns1Etb <chr>, pEns2Etb <chr>, pEns3Etb <chr>, pChgtEnsgEtb <lgl>, …
Le nombre d’établissements retournés par la requête peut-être relativement élevé. Si vous chercher tous les établissements dont l’activité est boulangerie patisserie en France, vous aurez des difficultés à obtenir une réponse, compte tenu des limites de l’API (30 appels par minutes).
Il est possible de connaitre le nombre d’échos d’une requête mutlicritères ainsi (celle de l’exemple ci-dessus) :
insee_utils_siret_multi_make("NAF:10.71C") |>
insee_utils_howmany_echos()
#> [1] 113033