Attention : ces API sont encore incomplêtes et leur format n'est pas définitif.
API REST

L'API REST donne accès en lecture seule aux données au format JSON.

Les points d'entrée vers les listes d'objets sont décrits ci-dessous. Les objets JSON renvoyés par l'API comprennent des hyperliens vers d'autres sections de l'API. En particulier, les items de liste comportent toujours un lien vers une version plus détaillée et les versions détaillées comportent la plupart du temps des liens vers les entités liées.

Filtrage

Les résultats peuvent être filtrés par une recherche multicritère en utilisant n'importe lequel des champs des entités, par exemple /rest/an/acteurs/?prenom=Jean&pays_naissance=France. Lorsque plusieurs critères sont présents ils sont combinés avec un ET logique.

Suivant les champs utilisés, différents types de valeurs sont requis :

  • Pour les champs de type texte, n'importe quelle chaine de caractère peut être utilisée
  • Pour les champs numériques, seuls des chiffres peuvent être utilisés
  • Pour les champs de type date, la date doit être dans l'un des formats aaaa-mm-jj, aaaa-mm-jjThh:mm ou aaaa-mm-jjThh:mm:ss
  • Pour les champs de type booléen, les valeurs true, yes, 1 sont considérées comme vraies, toutes les autres comme fausses

Il est possible de spécifier un opérateur de comparaison sous la forme champ__operateur=valeur. Les opérateurs suivants sont disponibles :

  • eq : égal (comme l'absence d'opérateur)
  • ne : différent
  • gt, gte: supérieur, supérieur ou égal
  • lt, lte: inférieur, inférieur ou égal
  • isnull: permet de filtrer les valeurs vierges. La valeur associée doit être un booléen.
  • in, nin: valeur parmi une liste ou absente d'une liste (les valeurs doivent alors être séparées par des virgules)
  • like, ilike: comparaison de chaine avec jokers ; ilike est insensible à la casse (par exemple prenom__ilike=jean% cherche tous les prénoms commençant par "Jean")

La requête suivante permet par exemple de lister les acteurs décédés, dont le prénom contient "Jean", et nés après le 1er janvier 1945 à midi : /rest/an/acteurs/?prenom__ilike=%jean%&date_deces__isnull=false&date_naissance__gt=1945-01-01T12:00

Un champ nommé _last_modified (de type date) est disponible sur toutes les entités et peut être utilisé pour le filtrage. Il indique la dernière date à laquelle un des champs de l'entité a changé de valeur et peut ainsi permettre d'obtenir des listes incrémentales d'objets.

Recherche full-text

Il est possible de filtrer les résultats par une recherche textuelle, par exemple /rest/an/organes/?search=commission des lois. La recherche textuelle porte sur tous les champs textuels présents dans les entités.

Par défaut les résultats incluent les éléments comportant tous les termes recherchés mais il est possible d'écrire les requêtes différemment :

Pagination

Les listes d'objets sont paginées à raison de 10 objets par page, par défaut. Chaque page indique le nombre total d'objets de la collection et des liens vers les pages précédentes et suivantes, le cas échéant.

La taille des pages peut être modifiée (ex: /rest/an/acteurs/?page_size=20).

Relations et personnalisation des détails

Dans la version détaillée d'une entité, des liens permettent d'accéder à une version de l'entité dans laquelle les entités liées sont incluses.

Par exemple, le « projet de loi pour une République Numérique » (/rest/an/dossiers/DLR5L14N34516) comporte un lien vers les acteurs à l'origine de ce projet de loi (/rest/an/dossiers/DLR5L14N34516/acteurs).

La dernière partie de cette URL constitue en réalité une indication des informations souhaitées sur le dossier DLR5L14N34516, en l'occurrence le champ acteurs. Il est possible de la personnaliser en indiquant plusieurs champs séparés par des virgules ; par exemple /rest/an/dossiers/DLR5L14N34516/acteurs,titre,senat_chemin inclut aussi le titre du dossier et un lien vers le site du Sénat.

Lorsqu'un champ de relation est utilisé, il est aussi possible de préciser des chemins à inclure, en séparant les parties de chaque chemin avec des points. Par exemple, /rest/an/dossiers/DLR5L14N34516/acteurs.acteur.nom,acteurs.acteur.prenom,titre,senat_chemin aura le même résultat que le lien précédent, mais inclura en plus le nom et le prénom de chaque acteur.

Source Description Taille Point d'entrée API
Assemblée nationale Actes législatifs 34799 /rest/an/actes
Assemblée nationale Acteurs (ministres, parlementaires...) 2229 /rest/an/acteurs
Assemblée nationale Amendements 167425 /rest/an/amendements
Assemblée nationale Documents législatifs 9924 /rest/an/documents
Assemblée nationale Dossiers législatifs 3559 /rest/an/dossiers
Assemblée nationale Législatures 4 /rest/an/legislatures
Assemblée nationale Acteurs (ministres, parlementaires...) 56354 /rest/an/mandats
Assemblée nationale Organes (ministères, commissions, organismes...) 1740 /rest/an/organes
Assemblée nationale Régimes politiques 3 /rest/an/regimes
Assemblée nationale Réunions 39683 /rest/an/reunions
Assemblée nationale Scrutins 1354 /rest/an/scrutins
Assemblée nationale Thèmes 57 /rest/an/themes
ParlAPI Travaux d'import de données 6 /rest/parlapi/jobs
Sources de données

Le tableau ci-dessous montre les travaux d'import des données et le résultat de leur dernière exécution.

Source Dernière exécution (durée) Objets État Fichier source
AN: scrutins il y a 3 heures (3 minutes) 1354 OK Scrutins_XIV.json.zip (modifié il y a un jour)
AN: dossiers législatifs il y a 3 heures (37 minutes) 15193 OK Dossiers_Legislatifs_XIV.json.zip (modifié il y a un jour)
AN: députés-sénateurs-ministres il y a 6 jours (8 minutes) 638 OK AMO20_dep_sen_min_tous_mandats_et_organes_XIV.json.zip (modifié il y a 7 jours)
AN: amendements il y a un jour (18 heures) 160994 OK Amendements_XIV.json.zip (modifié il y a 3 jours)
AN: députés (historique) il y a 6 jours (12 minutes) 633 OK AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json.zip (modifié il y a 7 jours)
AN: réunions il y a 19 heures (7 heures) 39623 error:parse-json Agenda_XIV.json.zip (modifié il y a 6 jours)
API GraphQL

Cette API donne accès au schéma de données via des requêtes GraphQL.

Lorsqu'il est utilisé depuis un navigateur web, le point d'entrée ci-dessous présente une interface de requétage avec auto-complétion et une documentation auto-générée du modèle.

Cliquez ici pour ouvrir l'interface avec un exemple de requête permettant de lister les 10 premiers acteurs et leur 1er mandat, avec seulement certains champs renvoyés.

Description Point d'entrée API
Point d'entrée GraphQL /graphql/