Foire aux questions sur l'utilisation de l’API Légifrance
Cette page est en construction et sera mise à jour progressivement pour prendre en compte de nouvelles problématiques et questions récurrentes des utilisateurs de l'API Légifrance.
Sommaire
1. Comment se connecter via la connexion OAuth ?
1.1. Comment obtenir un jeton OAuth2.0 avec PISTE ?
1.2. Comment consommer l’API ?
1.3 Quels sont les problèmes fréquents qui empêchent de consommer l'API ?
1.3.1 Je n'ai pas validé les CGU de l'API Légifrance
1.3.3 J'essaie de consommer l'API de production avec un token obtenu en sandbox
1.4 Comment consommer l'API en production ?
2. Comment récupérer un article en vigueur à une date donnée, d'un code dont on connaît l'id ?
2.1. Étape 1 : Récupérer l’identifiant de l’article avec la méthode POST /search
2.2. Étape 2 : Récupérer le contenu de l’article avec la méthode POST /consult/getArticle
3. Comment récupérer un article en vigueur à une date donnée, d'un texte numéroté ?
3.1. Étape 1 : Trouver l’ordonnance avec la méthode POST /search
3.2. Étape 2 : trouver l’article de l’ordonnance avec la méthode POST /search
3.3. Étape 3 : Récupérer le contenu de l’article avec la méthode POST /consult/getArticle
4. Comment récupérer le texte complet d'une loi promulguée dont on connaît le n° ?
4.1. Étape 1 : Trouver l’identifiant de la loi avec la méthode POST /search
4.2. Étape 2 : Récupérer le contenu de la loi avec la méthode POST /consult/legiPart
5.1. Étape 1 : Trouver l’identifiant de la loi avec la méthode POST /search
6.1. Étape 1 : Trouver l’identifiant de l’article avec la méthode POST /search
6.2. Étape 2 : Récupérer le contenu de l’article avec la méthode POST /consult/getArticle
7. Comment faire une recherche simple sur un mot dans un code juridique ?
7.1. Exemple de requête par état juridique dans le fonds CODE
7.2. Exemple de requête par date de version dans le fonds CODE
8. Comment rechercher une expression dans un code juridique ?
9. Comment rechercher de manière croisée des mots dans les textes consolidés ?
10. Comment rechercher dans la jurisprudence administrative ?
11. Comment rechercher dans la jurisprudence judiciaire ?
11.1. Pour chercher tous les arrêts du mois de janvier 2025
11.2. Pour chercher par numéro d’affaire
12. Comment rechercher dans les Journaux officiels ?
13. Comment rechercher dans les conventions collectives ?
14. Comment récupérer du contenu en masse ?
15. Qu'est-ce qu'un contenu consolidé et comment le récupérer ?
1. Comment se connecter via la connexion OAuth ?
L’obtention d’un jeton OAuth par une application se fait via le protocole OAuth2.0 avec le flux Client Credentials (https://tools.ietf.org/html/rfc6749#section-4.4).
Des exemples supplémentaires de connexion OAuth (Python, Java, JavaScript) sont disponibles sur le Gitlab de PISTE, après inscription à Gitlab.
1.1 Comment obtenir un jeton OAuth2.0 avec PISTE ?
La requête à effectuer est la suivante :
|
La réponse obtenue est la suivante :
|
La propriété "access_token" contient le jeton qui doit être envoyé à chaque requête API.
La propriété "expires_in" correspond au délai d’expiration du jeton en seconde.
1.2 Comment consommer l’API ?
Pour consommer l’API, il suffit d’ajouter l’entête 'Authorization: Bearer ' à chaque requête.
Par exemple : curl -is -H 'Authorization: Bearer ojECscMjYOh215MN6dUvAI3SOmhOa0nbg5R4tYvDWhZu5HB5ejMG74' -X GET https://sandbox-api.piste.gouv.fr/dila/legifrance/lf-engine-app/list/ping'
Pour les requêtes de type POST, il faut ajouter également les entêtes ‘accept: application/json’ et ‘Content-Type: application/json’.
1.3 Quels sont les problèmes fréquents qui empêchent de consommer l'API ?
En cas de difficultés à consommer l'API Légifrance, il faut vérifier les points ci-dessous dans l'ordre, car si vous ne réalisez pas l’ensemble de ces étapes, vous aurez des erreurs 500, 400, 401 ou 403 lorsque vous essayerez de récupérer un token ou de consommer l’API Légifrance.
1.3.1 Je n'ai pas validé les CGU de l'API Légifrance
Le problème le plus courant est l'absence de validation des conditions générales d'utilisation de l'API Légifrance sur le site de PISTE.
Pour résoudre ce souci, vous allez devoir accepter les CGU des environnements de Sandbox et Production de l’API Légifrance sur le site de PISTE en allant dans API > Consentement CGU API.
Si vous n’acceptez pas d’abord les CGU de l'API Légifrance et que vous essayez de consommer l’API, vous aurez des erreurs HTTP « 403 Access denied ».
1.3.2 J'ai oublié de cocher dans mon application de sandbox ou de production que je souhaitais consommer l'API légifrance
Pour résoudre ce souci, il faudra modifier votre application de Sandbox et / ou les applications que vous avez créées en Production sur PISTE pour ajouter la consommation de l’API Légifrance sur ces applications.
Pour ce faire, accédez au menu "Applications", sélectionnez votre application, cliquez sur le bouton "Modifier l'application", puis dans la rubrique "Sélectionner les API", cochez l'API Légifrance.
En revenant dans votre application de sandbox ou de production, vous pourrez accéder également à votre Client_Id et Client_Secret, sous « APPLICATIONS » > « API soucrites » > « Identifiants Oauth ».
1.3.3 J'essaie de consommer l'API de production avec un token obtenu en sandbox
Veuillez noter que les deux environnements proposés par PISTE sont totalement distincts.
Il existe un environnement de sandbox (tests) et un environnement de production qui ont chacun leur propre application, url de base, url de récupération d’un token, et leurs propres identifiants (Client_id et Client_secret)
Informations sur l'environnement de SANDBOX:
| Url de base | https://sandbox-api.piste.gouv.fr/dila/legifrance/lf-engine-app |
| Url de récupération d’un token | https://sandbox-oauth.piste.gouv.fr/api/oauth/token |
| Application | Une application en sandbox est créée automatiquement par PISTE lors de la création d’un compte, et permet d’utiliser les urls de sandbox. |
Informations sur l'environnement de PRODUCTION:
| Url de base | https://api.piste.gouv.fr/dila/legifrance/lf-engine-app |
| Url de récupération d’un token | https://oauth.piste.gouv.fr/api/oauth/token |
| Application | Une application en production doit être créée manuellement par l’utilisateur en allant dans l’onglet application, puis en cliquant sur « créer une application », et permet d’utiliser les urls de production. |
| Fraicheur des données | Les données mises à disposition sur cet environnement correspondent aux données de production de Légifrance disponibles sur le site internet https://www.legifrance.gouv.fr |
Cela implique :
1. qu’un token obtenu dans l’environnement de sandbox ne sera pas valide pour s’authentifier dans l’environnement de production.
2. qu’il faut utiliser les Client_id et Client_secret correspondant à l’environnement que vous souhaitez requêter.
1.4 Comment consommer l'API en production ?
Pour consommer l'API en environnement de production, vous devez créer manuellement une application de production en allant dans l’onglet application, puis en cliquant sur « créer une application ».
Afin de pouvoir consommer l'API légifrance, vous devez également avoir suivi les étapes de validation des CGU (1.3.1) et indiquer dans votre application de production que vous souhaitez consommer l'API légifrance (1.3.2).
Cela vous permet notamment d’utiliser les urls de production et de bénéficier de quotas plus élevés.
2. Comment récupérer un article en vigueur à une date donnée, d'un code dont on connaît l'id ?
Étape 1 : Récupérer l’identifiant de l’article avec la méthode POST /search
Exemple de body :
|
Étape 2 : Récupérer le contenu de l’article avec la méthode POST /consult/getArticle
Exemple de body :
|
3. Comment récupérer un article en vigueur à une date donnée, d'un texte numéroté ?
Exemples :
- l’article 6 nonies au 1er janvier 2018 de l’ordonnance n°58-1100.
- l’article 3-1 au 1er janvier 2018 de la loi n° 86-1067
Étape 1 : Trouver l’ordonnance avec la méthode POST /search
|
Étape 2 : trouver l’article de l’ordonnance avec la méthode POST /search
|
Étape 3 : Récupérer le contenu de l’article avec la méthode POST /consult/getArticle
|
4. Comment récupérer le texte complet d'une loi promulguée dont on connaît le numéro ?
Exemple :
- la loi n°2019-290 en vigueur à la date d'aujourd'hui
Étape 1 : Trouver l’identifiant de la loi avec la méthode POST /search
|
Étape 2 : Récupérer le contenu de la loi avec la méthode POST /consult/legiPart
|
5. Récupérer un article en vigueur à une date donnée, d'une loi identifiée par sa date de signature ?
Exemple :
- article 57 de la loi du 17 juillet 1978 en vigueur aujourd'hui
Etape 1 : Trouver l’identifiant de la loi avec la méthode POST /search
|
Étape 2 : Une fois l’identifiant LEGIARTI récupéré, on l’utilise avec la méthode /consult/getArticle
|
6. Récupérer un article en vigueur à une date donnée de la Constitution ou à défaut le texte complet de la Constitution
Exemple :
- article 54 de la Constitution
Étape 1 : Trouver l’identifiant de l’article avec la méthode POST /search
|
Étape 2 : Récupérer le contenu de l’article avec la méthode POST /consult/getArticle
|
7. Recherche simple sur un mot dans un code
Pour rechercher dans les codes, vous avez deux fonds disponibles selon les besoins :
- CODE_ETAT : recherche dans les codes par état juridique
- CODE_DATE : recherche dans les codes par date de version
7.1 Exemple de requête par état juridique dans le fonds CODE
|
7.2 Exemple de requête par date de version dans le fonds CODE
|
8. Recherche d’une expression dans un code
La documentation Swagger précise les valeurs possibles pour "typeRecherche" :
[ UN_DES_MOTS, EXACTE, TOUS_LES_MOTS_DANS_UN_CHAMP, AUCUN_DES_MOTS, AUCUNE_CORRESPONDANCE_A_CETTE_EXPRESSION ]
Si vous recherchez une expression, vous pouvez indiquer "UN_DES_MOTS" et préciser la proximité, c'est-à-dire la distance maximale, en mots, entre les termes recherchés.
Vous pouvez également sélectionner le type de recherche EXACTE.
Voici un exemple de requête complète par état juridique dans le fonds CODE :
|
9. Recherche croisée de mots dans les textes consolidés
Pour effectuer une recherche croisée, il suffit de définir plusieurs critères de recherche dans votre requête.
Voici un exemple de requête dans le fonds LODA_DATE :
|
10. Recherche dans la jurisprudence administrative
Pour chercher tous les arrêts comprenant le mot-clé « CESEDA » (acronyme du "Code de l'entrée et du séjour des étrangers et du droit d'asile") sur une période donnée :
|
11. Recherche dans la jurisprudence judiciaire
11.1 Pour chercher tous les arrêts du mois de janvier 2025
|
11.2 Pour chercher par numéro d’affaire
|
12. Recherche dans les Journaux officiels
Pour récupérer le contenu d’un Journal officiel, vous pouvez procéder de la façon suivante :
Etape 1 :
Récupérer le JORFCONT (identifiant du conteneur d’un Journal officiel) d’une publication d’un JO avec le point d’entrée /consult/lastNJo en passant le nombre de JO que vous voulez récupérer :
|
=> Ce chiffre doit être inférieur à 2500, sinon vous aurez des erreurs
Etape 2 :
Vous pouvez utiliser le point d’entrée /consult/jorfCont pour récupérer les JORFTEXT (identifiant de chaque texte publié au JO) :
|
=> Via ce point d’entrée vous pouvez aussi passer une période pour récupérer tous les JORFCONT pour une période donnée (cf. la documentation de l’API - swagger).
Etape 3 :
Vous pourrez appeler le point d’entrée /consult/jorf avec les JORFTEXT récupérés à l’étape 2. Cela sera plus pertinent que d’utiliser le point d’entrée getJoWithNor car tous les textes n’ont pas de NOR.
|
A noter, les JO anciens ne comportent pas de version HTML des textes. Vous ne pourrez donc pas les récupérer via l’API (avant juin 2004).
13. Recherche dans les conventions collectives
Pour rechercher des mots-clés dans le titre des conventions collectives :
|
Pour recherche sur le numéro IDCC
|
14. Récupération de contenu en masse
Alternativement à l’API, vous pouvez aussi utiliser l’open data de Légifrance qui est proposé ici avec toutes nos ressources au format XML :
https://echanges.dila.gouv.fr/OPENDATA/
Les différents freemium de chaque fonds permettent de récupérer l’état du fonds à la date indiquée. Il faut ensuite récupérer les archives suivantes dans l’ordre de la plus ancienne à la plus récente.
Les fonds de Légifrance sont : ACCO / BOCC / CAPP / CASS / CIRCULAIRES / CNIL / CONSTIT / DOLE / Debats / INCA / JADE / KALI / LEGI / Questions-Reponses.
Vous aurez à chaque fois un document appelé « présentation » expliquant les données que vous pouvez trouver sous chaque fonds. La DTD_LEGIFRANCE vous permettra également de mieux comprendre la structuration des données.