API tabulaire data.gouv.fr (beta)

L'API des données tabulaires de data.gouv.fr


Présentation

L'API tabulaire est une API REST permettant de requêter par API l'ensemble des données tabulaires référencées sur la plateforme data.gouv.fr.
Elle permet de récupérer la description générale ainsi que l'ensemble du contenu de la donnée au format JSON ou via un export CSV.

L'API permet uniquement la lecture et seule la méthode GET est supportée.

L'API est aujourd'hui en version beta.

Périmètre

Les fichiers tabulaires aujourd'hui supportés pour la mise à disposition par API tabulaire sont les formats suivants avec les limites de taille associées par défaut :

FormatTaille maximale
csv100 Mo
csv.gz100 Mo
xls50 Mo
xlsx12.5 Mo

A partir du moment où une donnée est référencée sur data.gouv.fr et correspond aux critères de format et de taille, elle est automatiquement intégrée sur l'API tabulaire dans les quelques minutes qui suivent.

Dans le cas d'un ou plusieurs fichiers non accessibles sur API tabulaire, vous pouvez nous contacter pour enquêter.

Il est aussi possible de faire la demande pour l'ajout d'une exception sur la taille de fichiers d'intérêt.

Documentation

💡 Un fichier est aussi appelé ressource sur data.gouv.fr. Un unique jeu de données peut être composé de plusieurs ressources.

L'URL de base de l'API tabulaire est https://tabular-api.data.gouv.fr/api.
Sa documentation technique générale est https://tabular-api.data.gouv.fr/api/doc.

Accéder à une ressource par API tabulaire

Pour requêter une ressource par API tabulaire, il vous faudra trouver son identifiant de ressource rid.
Depuis un navigateur, rendez-vous sur la page du jeu de données d'intérêt sur data.gouv.fr.

L'identifiant de la ressource est indiqué dans l'onglet Métadonnées du détail de la ressource au sein de la page du jeu de données.
Par exemple, la ressource csv des films sortis en salle publiée par le CNC a pour identifiant 1c5075ec-7ce1-49cb-ab89-94f507812daf.

Capture d'écran de l'onglet métadonnées d'une ressource sur data.gouv.fr

A partir de cette ressource, vous pouvez accéder à https://tabular-api.data.gouv.fr/api/resources/<rid>/ qui est le point d'accès à la ressource sur API tabulaire.
Dans le cas des films sortis en salle, vous pouvez :

curl -X GET "https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/"`
{
  "created_at": "2023-08-30T05:29:19.869302+02:00",
  "url": "https://static.data.gouv.fr/resources/liste-des-visas-dexploitations-cinematographiques-delivres-de-1945-a-2020/20220902-104322/liste-des-films-sortis-dans-les-salles-de-cinema-en-france-de-1945-a-2020.csv",
  "links": [
    {
      "href": "https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/profile/",
      "type": "GET",
      "rel": "profile"
    },
    {
      "href": "https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/data/",
      "type": "GET",
      "rel": "data"
    },
    {
      "href": "https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/swagger/",
      "type": "GET",
      "rel": "swagger"
    }
  ]
}

Trois liens sont alors référencés pour chaque ressource :

  • /profile/ : qui retourne la description générale des lignes et colonnes de la donnée tabulaire (générée à partir d'un autre package que nous maintenons)
  • /data/ : qui retourne la donnée en tant que telle, paginée et avec des paramètres de filtres et de tris documentés plus bas
  • /swagger/ : qui retourne la documentation technique de l'accès à la ressource, avec notamment les possibilités de tris et de filtres sur la route /data/
Le profil d'une ressource

Route : /api/resources/<rid>/profile/

curl -X GET "https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/profile/"`
{
  "profile": {
    "header": [
        "id",
        "score",
        "decompte",
        "is_true",
        "birth",
        "liste"
    ]
  },
  "...": "..."
}

Le profil profile d'une ressource contient premièrement la liste des en-têtes du fichier tabulaire (dit header).

On a ensuite la description des colonnes columns de la ressource :

  • le type python python_type (string pour une chaîne de caractères, int pour un entier, ...)
  • le format métier format (siren ou pays par exemple)
  • avec pour chaque un score de confiance sur la détection du format

Pour chaque colonne on retrouve ensuite dans profile les descriptions statistiques suivantes :

  • les tops qui sont les 10 valeurs les plus récurrentes pour la colonne
  • le nb_distinct pour le nombre distinct de valeurs dans la colonne
  • le nb_missing_values pour le nombre de lignes qui n'ont pas de valeur pour cette colonne

On a en plus des informations de description du fichier tabulaire original :

  • pour les csv : encoding pour l'encodage utilisé, separator pour le séparateur des colonnes (ex : ";")
  • pour les fichiers excel : engine pour le type de fichier reconnu (xls, xlsx), sheet_name pour la page dont sont extraites les données
  • ...
La donnée par API

Route : /api/resources/<rid>/data/

curl -X GET "https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/data/"`
{
  "data": [
    {
      "__id": 1,
      "Titre de l'œuvre": "À bout de nerfs",
      "Réalisateur": "Pierre Seguin",
      "Producteur": "Gem Productions",
      "Nationalité": "France",
      "Date de sortieau cinéma": "1988",
      "Format": "Court-métrage",
      "N° de visa d'exploitation": "67623",
      "Localisation du dossier de visa d'exploitation": "Archives nationales"
    },
    ...
  ],
  "links": {
      "profile": "http://localhost:8005/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/profile/",
      "swagger": "http://localhost:8005/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/swagger/",
      "next": "http://localhost:8005/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/data/?page=2&page_size=20",
      "prev": null
  },
  "meta": {
      "page": 1,
      "page_size": 20,
      "total": 87110
  }
}

On peut ensuite accéder à la donnée par API de manière paginée avec des fonctionnalités de filtres et de tri.
Pour récupérer la première page dans l'ordre du fichier original, il suffit de se rendre sur /data/.
Le retour contient 3 clés :

  • data : la donnée brute sous la forme d'une liste de lignes. Chaque ligne est un dictionnaire avec nom_de_la_colonne : valeur.
  • links : les liens utiles relatifs à cette donnée. Les liens prev et next permettent de paginer rapidement sur la page précédente ou suivante.
  • meta : les valeurs générales que sont page (le numéro de la pge en cours, 1 par défaut), page_size (le nombre d'éléments par page, 20 par défaut) et total (le nombre total de lignes dans la ressource).

La pagination de la donnée est possible avec les paramètres page et page_size qui permet de récupérer une page donnée avec un nombre d'éléments spécifique.
Les liens next et prev présentés dans la section links facilitent cette pagination.

Cette route peut être requêtée avec les opérateurs suivants en paramètre de la requête filtrer et trier le résultat (remplacer column_name par le nom de la colonne, en respectant la casse):

# trier par colonne (ascendant ou descendant)
column_name__sort=asc
column_name__sort=desc

# valeur exact
column_name__exact=value

# diffère
column_name__differs=value

# contient (pour les chaînes de caractère)
column_name__contains=value

# dans (valeur dans une liste)
column_name__in=value1,value2,value3

# inférieur à
column_name__less=value

# supérieur à
column_name__greater=value

# strictement inférieur à
column_name__strictly_less=value

# strictement supérieur à
column_name__strictly_greater=value

Sur le fichier des films sortis en salle, on a par exemple la possibilité de filtrer par producteur avec le paramètre Producteur__exact=.
On peut aussi trier les résultats, par exemple via Date de sortieau cinéma__sort=.
En combinant ces paramètres, on peut ainsi récupérer les derniers films de 20th Century Fox avec la requête suivante :
https://tabular-api.data.gouv.fr/api/resources/1c5075ec-7ce1-49cb-ab89-94f507812daf/data/?Producteur__exact=20th%20Century%20Fox&Date%20de%20sortieau%20cin%C3%A9ma__sort=desc.

La documentation de l'API pour la ressource

Pour chaque ressource, une documentation technique est disponible sur la route /api/resources/<rid>/swagger/.
Elle précise les différents filtres et tris possibles propre à la ressource selon les colonnes. Il est possible de visualiser le swagger de manière plus lisible en passant par un interpréteur (par exemple https://editor.swagger.io/).

Limites d'utilisation

Si vous pensez avoir un usage massif d'API tabulaire, nous vous invitons à tenir compte du rate-limiting via le header.
Il est aujourd'hui limité à 100 appels par seconde.

Contact

N'hésitez pas à utiliser l'espace discussion en bas de cette page ou à nous contacter via le formulaire de contact.

Producteur
Contact
Dernière mise à jour
17 juillet 2025
Limite d'appels
100 req / seconde
Taux de disponibilité
Non communiqué
Accès
Ouvert

Vues

Votre question porte sur autre chose que cette api ? Visiter notre forum

7 discussions dont 2 clotûrées

Récupération des défibrillateurs GeoDAE

Posté le 3 décembre 2025
Bonjour, la ressource dont l'identifiant est edb6a9e1-2f16-4bbf-99e7-c3eb6b90794c semble ne plus fonctionner depuis un mois (fonctionnait auparavant). La fiche de la ressource est : https://www.data.gouv.fr/datasets/geodae-base-nationale-des-defibrillateurs/ Le message d'erreur : Resource edb6a9e1-2f16-4bbf-99e7-c3eb6b90794c has been permanently deleted on 2025-11-07T18:36:43.11027+01:00 by its producer. Contact the resource producer to get more information. (exemple d'URL testée : https://tabular-api.data.gouv.fr/api/resources/edb6a9e1-2f16-4bbf-99e7-c3eb6b90794c/data/csv/?c_com_insee__exact=34023 La ressource semble pourtant téléchargeable, n'y a-t-il pas un problème avec l'API tabulaire ? Dans l'attente de votre retour, merci.
Posté le 4 décembre 2025
Producteur
Bonjour, certaines modifications apportées lors d'une montée de version ont conduit à ne plus pouvoir gérer cette ressource dans son état actuel. Une nouvelle version en cours de développement devrait résoudre ce problème et permettre de réexposer cette ressource via l'API tabulaire. Cela n'impacte cependant pas la disponibilité des données brutes sous-jacentes. Nos excuses pour la gêne occasionnée.

Base Nationale des Commerces Ouverte BANCO

Posté le 28 novembre 2025
Discussion close par data.gouv.fr le 28 novembre 2025

Référentiel RID

Posté le 1 août 2025
Discussion close par Thierry PAGES le 7 août 2025

Filtre __strictly_greater inopérant sur la colonne « Date de la dernière MAJ » (ressource RNIC)

Posté le 11 juillet 2025
Bonjour, Je rencontre un comportement inattendu sur l’API : Ressource concernée : - Jeu : « Registre national d’immatriculation des copropriétés » - Resource ID : 3ea8e2c3-0038-464a-b17e-cd5c91f65ce2 Lorsque j'envois une requête sur cet endpoint : https://tabular-api.data.gouv.fr/api/resources/3ea8e2c3-0038-464a-b17e-cd5c91f65ce2/data/?page_size=200&Date de la dernière MAJ__strictly_greater=05-04-2025 La réponse contient plusieurs enregistrements dont la valeur de « Date de la dernière MAJ » est antérieure au 05-04-2025. Normalement aucune ligne dont « Date de la dernière MAJ » ≤ 2025-04-05 ne devrait être renvoyée lorsque l’on utilise l’opérateur __strictly_greater J'ai testé ces formats de date, mais toujours le meme résultat : - 05/04/2025 - 2025-04-05T00:00:00Z Merci d’avance pour votre aide
Posté le 11 juillet 2025
Producteur
Bonjour, Vous pouvez voir dans le profile de la ressource https://tabular-api.data.gouv.fr/api/resources/3ea8e2c3-0038-464a-b17e-cd5c91f65ce2/profile/ que notre outil de détection des types des colonnes n'a pas détecté la colonne comme une date mais comme une simple chaîne de caractères : "Date de la dernière MAJ": { "score": 1, "format": "string", "python_type": "string" }, Cela implique donc que l'ordre qui s'applique est alphabétique, et vu que la donnée source utilise un format de date qui n'est pas compatible avec cet ordre (JJ/MM/AAAA, par opposition à AAAA/MM/JJ), les résultats sont contre-intuitifs mais justes : "05/05/2017" > "05/04/2025". Plusieurs solutions sont possibles : - contacter le producteur des données (via une discussion sous le jeu de données en question) pour suggérer une modification du format - le dernier passage de notre script date d'avril, et nous l'avons amélioré depuis. Je vais le faire repasser sur la ressource pour voir s'il détecte bien les dates maintenant. Le cas échéant nous regardons pour l'améliorer sur ce point.
Posté le 11 juillet 2025
Bonjour, Merci pour votre retour, je comprends mieux la problématique. Je vais contacter le producteur des données afin de savoir si il peut modifier le format en AAAA/MM/JJ comme vous le suggérez. Est ce que je pourrais svp être tenu au courant si de votre côté la conversion en date est prise en compte ? Même si la solution 1 fonctionne avant la votre on serait ok, mais savoir si l'on peut traiter ca sous format date de notre côté serait un peu mieux souhaitable. Encore merci pour votre réactivité. Cordialement,
Posté le 16 juillet 2025
Producteur
Bonjour, Un second problème se pose : les noms de certaines colonnes sont très longs et dépassent pour certains la limite imposée par notre base de données, qui les tronque lors de l'insertion. Cela crée des problèmes de références qui empêchent la mise en base, nous allons voir pour pouvoir mieux gérer ces cas. Bien à vous.
Posté le 6 octobre 2025
Bonjour, Nous rencontrons actuellement une erreur 404: Not Found sur ce dataset. Il fonctionnait correctement auparavant, mais ne semble plus accessible du tout à présent. Url API: https://tabular-api.data.gouv.fr/api/resources/3ea8e2c3-0038-464a-b17e-cd5c91f65ce2/data/ Pouvez-vous vérifier si cela est normal ou si un correctif est nécessaire ? Merci d’avance pour votre aide. Cordialement,
Posté le 6 octobre 2025
Producteur
Bonjour, comme indiqué précédemment, les noms de certaines colonnes dépassent la limite maximale autorisée pour la mise en base de données Postgres. Nous sommes en discussions avec le producteur pour qu'ils adaptent la structure des fichiers afin de pouvoir de nouveau exposer les données via l'API tabulaire.
Posté le 6 octobre 2025
Bonjour, Merci pour votre retour et pour ces précisions.

Selection d'un sheet

Posté le 22 avril 2025
Bonjour, L'API est très pratique! Cependant il pourrait être intéressant d'ajouter la possibilité de choisir un sheet dans le cas d'un excel qui en contient plusieurs.
Posté le 22 avril 2025
Bonjour, dans le cas d'un fichier excel qui contient plusieurs pages, notre script n'analyse que la page la plus "grosse" (la métrique est "nb_lignes x nb_colonnes"), c'est donc celle-ci qui est APIfiée (et visible dans explore.data.gouv). Si vous souhaiteriez avoir une autre page, le plus simple est de contacter le producteur des données pour lui demander de publier chaque page séparément en csv. Chaque fichier aura alors sa propre API.
Posté le 22 avril 2025
Merci pour votre réponse! C'est noté, je vais faire cela alors!
Posté le 22 avril 2025
Par curiosité, quel est le jeu de données en question ?
Posté le 22 avril 2025
Il s'agit de celui ci : https://www.data.gouv.fr/fr/datasets/une-liste-evolutive-des-formacodes-lies-a-la-transition-ecologique/

Est-ce que le rate-limiting est basé sur l'IP de l'appelant ?

Posté le 29 mars 2025
Concrètement, est-ce que un service backend dans un cloud mutualisé (OVH pour ma part) serait limité par le cumul des appels d'autres usagers du cloud qui partagent la même IP ?

Excellente idée, mais...

Posté le 12 janvier 2025
Merci pour cette très bonne idée qui évite d'avoir à traduire en API chaque tableau. Néanmoins, si tout fonctionne correctement pour l'instant pour moi, j'ai eu toutes les peines du monde à trouver les identifiants. Ceux qui apparaissent dans les métadonnées ne sont pas les bons, il faut aller dans le code source pour les trouver. Il faudrait une mention particulière "identifiant pour l'API tabulaire". Et excellente année 2025!
Posté le 13 janvier 2025
Bonjour, merci de votre retour. Si vous parlez des identifiants au sens `/api/resources/{identifiant}/`, il s'agit des identifiants des ressources, pas des jeux de données (NB : un jeu de données peut contenir plusieurs ressources, qui pourraient chacune être APIfiées). Cependant l'API est liée au jeu de données de la ressource, ce qui peut être confusant. Pour trouver l'API sur la ressource que cherchez, vous devez : - cliquer sur le jeu de données en question - y chercher la ressource qui vous intéresse - cliquer sur l'onglet métadonnées de la ressources NB : toutes les ressources ne sont pas APIfiées
Posté le 13 janvier 2025
Vu, merci pour votre réactivité, effectivement ce n'est pas intuitif mais maintenant je sais où se trouve le bon identifiant. Bonne journée à vous,
Posté le 7 mars 2025
Bonjour, Si une ressource n'est pas APIfiée, est-il possible d'en demander sa mise en place ? En l'occurence, j'aimerais pouvoir accéder à la ressource 2ce43ade-8d2c-4d1d-81da-ca06c82abc68 (https://www.data.gouv.fr/fr/datasets/finess-extraction-du-fichier-des-etablissements/#/resources/2ce43ade-8d2c-4d1d-81da-ca06c82abc68). Cela m'éviterait de passer par le fichier csv, et à priori de récupérer les mises à jour plus facilement. Merci d'avance pour votre retour.
Posté le 7 mars 2025
Bonjour, l'absence d'APIfication d'une ressource tabulaire est le plus souvent due soit à sa taille supérieure à la taille maximale que nous avons fixée (auquel cas une demande comme la vôtre suffit pour que nous la passions en exception), soit à un défaut dans le fichier. Dans le cas présent, la ressource a des soucis de structure qui empêchent notre script de l'exposer dans l'API tabulaire. Nous mettons à disposition des versions retravaillées des fichiers Finess ici : https://www.data.gouv.fr/fr/datasets/finess-extraction-du-fichier-des-etablissements/#/community-resources (notamment au format parquet, qui est requêtable similairement à une API).
Posté le 7 mars 2025
Merci beaucoup pour votre réponse rapide. Très bonne journée.