Cette page uniquementToutes les pages
Propulsé par GitBook
Impossible de générer le PDF pour 172 pages, arrêté à 100.
Ajouter 50 pages supplémentaires
1 sur 100

Guides de data.gouv.fr

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Documentation de data.gouv.fr

Cette documentation a pour vocation de vous accompagner dans l'utilisation de la plateforme data.gouv.fr.

Qu'est-ce que data.gouv.fr ? data.gouv.fr est la plateforme ouverte et communautaire qui vise à centraliser et structurer les données ouvertes en France. Elle vise à favoriser la transparence et l’efficacité de l’action publique tout en facilitant la création de nouveaux services. data.gouv.fr est une plateforme communautaire qui s’adresse :

  • À ceux qui produisent des données (producteurs de données) et qui souhaitent ouvrir leurs données ;

  • À ceux qui exploitent des données (réutilisateurs de données) et qui veulent télécharger des données et partager leurs réalisations ;

  • À tout citoyen qui souhaite découvrir des données ou trouver une information.

Tout le monde a la possibilité de publier sur data.gouv.fr !

Bienvenue

Ces guides sont conçus par l'équipe de data.gouv.fr pour vous accompagner dans votre démarche d'ouverture et de réutilisation de données.


Utilisation de data.gouv.fr


Certifier une organisation

Si l’organisation que vous administrez exerce une mission de service public, vous pouvez demander à la faire certifier par notre équipe. Une organisation certifiée obtient un badge « service public certifié ».

Pour demander la certification d’une organisation dont vous êtes administrateur : envoyez une demande de certification, en expliquant :

  • pourquoi vous souhaitez certifier votre organisation ;

  • une preuve de votre rôle dans celle-ci ;

  • l’URL vers votre organisation.

Notre équipe examinera votre demande et prendra une décision sous quelques jours.

Réutiliser des données

Documentation technique


Guides

Vous ne trouvez pas ce que vous cherchez ?

Jetez un oeil à notre foire aux questions.

Compte

Comment et pourquoi créer un compte

Organisation

Créer et gérer son organisation

Jeux de données

Publier et gérer ses jeux de données

Réutilisation

Publier et gérer ses réutilisations

Statistiques

Suivre l'activité sur ses données

Foire aux questions

Des questions auxquelles nous ne sommes pas à même de répondre nous sont souvent adressées. Pour essayer de vous aider néanmoins nous listons ici les questions plus fréquentes.

Question sur le Répertoire National des Associations (RNA)

Si vous êtes une association et recherchez votre numéro RNA, vous pouvez consulter le moteur de recherche des associations du (dont nous ne sommes pas responsables). Pour plus d'informations, vous pouvez consulter le site .

Question sur le fichier des personnes décédées

Moissonnage

Qu'est-ce que le moissonnage sur data.gouv.fr ? Le moissonnage est un mécanisme permettant de collecter les métadonnées sur un catalogue distant et de les stocker sur une autre plateforme afin de proposer un second point d’accès aux données.

Le service de moissonnage mis à votre disposition permet de référencer sur data.gouv.fr les jeux de données publiés sur d’autres catalogues de données en ligne. De cette manière, vous n’avez pas besoin d’importer à la main sur data.gouv.fr les jeux de données que vous avez déjà importés sur votre propre plateforme.

Ressource communautaire

Vous avez retravaillé un jeu de données ou vous avez fait un croisement de données qui vous semble intéressant de partager ?

Vous avez la possibilité d’associer à un jeu de donnée une ressource communautaire.

Ces ressources sont publiées par la communauté et ne sont pas sous la responsabilité du producteur des données.

topics

Topics related operations

avatars

Avatar

Explorer un jeu de donnée

Sur les jeux de données au format tabulaires vous pouvez utiliser notre explorateur de données pour avoir un aperçu des données, d’en savoir plus sur les différentes colonnes, mais aussi par exemple de réaliser des filtres et des tris.

Les principales fonctionnalités de l'outil sont présentées .

spatial

Spatial references

Publier une API

Ce guide vous aiguille pour ajouter une API dans data.gouv.fr.

Au moment de l'ajout d'une API, data.gouv.fr vous aide pas à pas pour chacun des contenus demandés.

🎉 L'ajout des API dans data.gouv.fr est une nouvelle fonctionnalité depuis novembre 2024 ! Cette fonctionnalité est accessible dans votre espace .

Vous êtes une administration ? une collectivité ? un opérateur d'État ? et vous souhaitez exposer votre API dans le catalogue data.gouv.fr ? Le pôle circulation de la donnée de la DINUM est là pour vous accompagner. ➡️

Extraire un jeu de données d'un système d'information

Si les données que vous souhaitez faire circuler ne sont pas structurées sous la forme d'un jeu de données, il est nécessaire de réaliser une extraction des données depuis le système d'information où elles sont stockées. L'extraction permet d'obtenir un jeu de données structuré, qui ordonne les données selon différentes caractéristiques.

Lorsque vous cherchez à extraire des données d'un système d'information, plusieurs situations peuvent se présenter :

  1. Un outil permet d'exporter l'ensemble des données depuis le système d'information --> il est nécessaire de sélectionner les données éligibles à la circulation en aval de l'export ;

  2. Un outil permet d'exporter l'ensemble des données ou de sélectionner un sous ensemble des données à exporter depuis le système d'information

posts

Posts related operations

;
  • Le système d'information ne prévoit pas d'outil d'exportation des données --> il est nécessaire de réaliser une opération technique pour exporter ces données et cette opération est directement liée aux spécificités du système d'information utilisé.

  • Quel que soit le mode d'export, il est recommandé d'automatiser l'opération afin de faciliter la mise à jour des données publiées. Cette automatisation instaure un processus sur le long terme et fait gagner du temps à l'organisation.

    Traitement et analyse de données

    Connaître les éléments essentiels pour exploiter des données

    API Base Adresse Nationale

    Comment utiliser l'API BAN

    API découpage administratif

    Comment utiliser l'API découpage administratif

    Tuiles vectorielles

    Comment utiliser les tuiles vectorielles

    Données du cadastre

    Comment utiliser les données cadastrales

    API Adresse

    Prendre en main l'API Adresse de l'IGN

    Moissonnage

    Comprendre et mettre en place un moissonneur

    API de data.gouv.fr

    Comment utiliser l'API de data.gouv.fr

    Guide qualité

    Comment améliorer la qualité de ses données ?

    Guide juridique

    Quelles données doivent être publiées en open data ?

    "⚙️Administration"
    Suivez le guide !
    Exemple de ressources communautaires publiées sur la base Sirene.

    Comprendre les limites du moissonnage

    Le moissonnage n’a aucune connaissance de l’usage que vous faites du modèle de données. Il s’appuie uniquement sur les spécifications de chaque protocole ou plateforme pour récupérer les informations. Il y a donc certaines limitations techniques liées aux spécificités de chaque plateforme. Certaines limitations sont communes et détaillées ci-dessous.

    Correspondances des métadonnées

    Certains champs du modèle de data.gouv.fr possèdent un équivalent qui peut être sous spécifié dans certains protocoles ou sur certaines plateformes, ou bien alors être spécifié différemment, sur plusieurs champs. Dans ce cas, la valeur du champ est récupérée en “best effort’, c’est-à-dire qu’elle va être devinée en fonction des éléments à disposition. Se référer à la page de chaque moissonneur pour savoir lesquels sont dans ce cas pour chaque implémentation.

    Suppression à la source et archivage

    Lors d'une suppression à la source (un ou plusieurs jeux de données qui ne sont plus présents sur la plateforme moissonnée), data.gouv.fr conserve les jeux de données sur sa plateforme. Le but est d'éviter les suppressions en masse par erreur, ce qui entraînerait une perte des statistiques, des discussions et des ressources communautaires de chaque jeu de données.

    Au bout d'une période de 2 jours, ils sont marqués comme archivés. L'archivage des jeux de données implique qu'ils ne soient plus indexés ou visibles dans les statistiques des producteurs, mais bien accessibles par lien direct pour les utilisateurs qui souhaiteraient continuer à y accéder.

    Dans le cas d’une suppression ponctuelle, nous vous invitons à supprimer manuellement le jeu de données moissonné qui a perdu sa source.

    Dans le cas d’une suppression massive de jeu de données, veuillez nous contacter afin de trouver une solution satisfaisante.

    Changement d’identifiant

    Les moissonneurs utilisent les identifiants de jeu de données distants pour retrouver leurs données entre deux moissonnages. Il est donc important de veiller à ce qu’un jeu de données conserve son identifiant au fil du temps et des modification successives. Dans le cas contraire, cela donnera lieu à la création d’un doublon.

    Il faut donc aussi veiller à ne pas supprimer puis recréer un jeu de données ou une ressource pour faire sa mise à jour.

    Qui est concerné ?

    Différents acteurs sont soumis aux obligations de diffusion de leurs documents administratifs, et donc d'ouverture de leurs données. Vous êtes concerné par la diffusion des documents administratifs, et donc la publication de vos données en open data, si vous êtes :

    • une administration centrale de plus de 50 agents ;

    • une personne morale de droit privé chargée d'une mission de service public qui emploie plus de 50 agents à temps plein ;

    • une collectivité territoriale de plus de 3 500 habitants et de plus de 50 agents.

    Guide juridique

    Ce guide a pour vocation de vous présenter le cadre légal de l'ouverture et de la réutilisation des données publiques et de vous aider à l'appliquer facilement.

    La première partie de ce guide s'adresse notamment aux organismes publics et privés en charge d'une mission de service public. La seconde partie de ce guide s'adresse aux réutilisateurs de données.

    Ce guide n'a pas vocation à traiter des obligations prévues par des législations spéciales. Il a une visée avant tout pratique et opérationnelle. Pour obtenir des informations juridiques plus détaillées, nous vous invitons à consulter le guide de publication en ligne et réutilisation des données publiques proposé par la CNIL et la CADA.

    Mettre en place une stratégie organisationnelle

    Pour être en capacité d'améliorer la qualité des données en continu, il convient d'adapter sa stratégie organisationnelle. Il est notamment conseillé de :

    • Identifier une personne coordinatrice de la démarche d'ouverture des données : elle a pour mission de publier les jeux de données, de s'assurer que leurs mises à jour sont effectuées et d'animer la vie des jeux de données sur la plateforme (répondre aux commentaires, etc.). La personne coordinatrice travaille en lien direct avec les équipes métiers afin de comprendre les problématiques techniques.

    • Elaborer un processus de rétroaction : lors de l'exploitation des jeux de données, les réutilisateurs peuvent identifier des anomalies ou des problèmes de qualité ou encore proposer des améliorations. Il est nécessaire d'instaurer un canal de rétroaction afin d'intégrer ces remarques dans les processus métiers et ainsi améliorer la qualité des jeux de données.

    Produire des données en conformité avec un schéma

    --> La marché à suivre est détaillée ici.

    Réutilisateurs de données

    Grâce à cette section, les réutilisateurs de données pourront répondre aux interrogations suivantes :

    • Qu'est-ce que l'open data ?

    • Quelles sont les conditions de réutilisation des données ouvertes ?

    Les fichiers des personnes décédées disponibles sur data.gouv.fr sont recueillis par l'INSEE à partir des informations reçues des communes. Pour faire une recherche dans ces fichiers vous pouvez utilisez le service suivant Match_Id (dont nous ne sommes pas responsable). Pour plus d'informations, vous pouvez consulter cette page.

    Question sur un jeu de données en particulier

    Notre équipe n'est pas en charge de la production des données publiées sur la plateforme. Adressez vous directement au producteur dans l'espace de discussion en bas de page du jeu de donnée. Voir un exemple.

    Question sur le cadastre

    Si vous avez une question sur le cadastre (rechercher un propriétaire, remonter une erreur dans les données de valeur foncière, s’informer sur la mitoyenneté, etc.), nous vous invitons à consulter notre « Foire aux questions sur le cadastre ». Pour toute question sur l’utilisation et la manipulation des données du cadastre, vous pouvez consulter le guide dédié.

    Question sur une procédure administrative

    Notre support n'est pas en mesure de vous aider sur ces sujets. Vous pouvez vous référer au site Service-Public.fr.

    Question sur un organisme de formation ou une certification Qualiopi

    Notre équipe n'est pas en mesure de vous aider sur ces questions. Si vous ne trouvez pas réponse à votre question ici vous pouvez contacter le Ministère du Travail. .

    Vous ne trouvez pas votre organismes de formation dans la liste ? Retrouvez toutes les informations utiles pour déclarer votre organisme ou transmettre votre Bilan Pédagogique et Financier sur le site du Ministère du travail: les formalités de création et de fonctionnement des organismes de formation .

    Vous souhaitez modifier certaines informations ? Les informations sont issues des déclarations annuelles effectuées par l'organisme de formation auprès du services régional de contrôle de sa DREETS, mais vous pouvez demander à tout moment la modification de certaines informations en contactant votre DREETS ou en accédant à votre espace personnel sur l'application Mon Activité Formation.

    Les informations concernant votre certification QUALIOPI vous semblent erronées ? Contactez votre organisme certificateur afin qu'il transmette votre certification. Attention de bien lui fournir votre nouveau NDA si celui-ci a changé récemment.

    Question sur la base SIRENE et les données d’entreprises

    Si vous rechercher votre numéro SIRET ou SIREN vous pouvez vous rendre sur le site Annuaire des Entreprises. Si vous souhaitez rendre privées les données de votre entreprise, vous devez en faire la demande auprès de l'INSEE qui publie ces données dans le répertoire SIRENE.

    Question sur la base de demandes de valeurs foncières (DVF)

    Vous pouvez consulter la foire aux questions dédiée .

    Question sur la base adresse nationale

    Vous pouvez consulter la foire aux questions dédiée.

    Question sur l’API découpage administrative

    Quelles sont les limitations en vigueur sur les APIs ?

    • 10 requêtes par seconde et par IP pour l’API Découpage administratif ;

    • 50 requêtes par seconde et par IP pour le géocodage simple via l’API Adresse ;

    • 2 requêtes simultanées par IP pour le géocodage de masse (maximum 50 Mo par envoi de fichier pour le géocodage direct, 6 Mo pour le géocodage inversé).

    Est-il possible de faire lever les limites de l’API ? Oui, mais uniquement si vous êtes un service public ou chargé d’une mission de service public. Dans le cas contraire, vous pouvez aussi héberger notre API de géocodage chez vous, en suivant.

    Question sur des données relatives au COVID-19
    • Pour toute information sur la COVID-19 vous pouvez consulter le site gouvernement.fr.

    • Pour trouver un rendez vous, vous pouvez consulter sante.fr.

    • Pour récupérer votre attestation, vous pouvez consulter votre appli TousAntiCovid ou votre espace .

    Question sur le répertoire national des infrastructures de recharge pour véhicules électriques (IRVE)

    Nous vous invitons à consulter la documentation dédiée concernant la création et la publication des données de ces données.

    Question relative à des données personnelles

    L'organisme en mesure de vous aider est la Commission nationale de l'informatique et des libertés (CNIL).

    Question sur un titre de séjour

    Le site data.gouv.fr ne permet pas aux particuliers de remplir des formalités administratives et notre support n'est pas en mesure de vous aider sur ces sujets. Vous pouvez vous référer à l'administration compétente ou consulter les liens suivants :

    • La fiche dédiée sur Service-Public.fr.

    • Le site refugies.info.

    • .

    Vous avez un doute ou avez été victime de fraude ou d'escroquerie

    Notre équipe n'est pas en mesure de vous aider sur ces questions. Vous pouvez vous référez à :

    • La fiche pratique escroquerie de Service-Public.fr.

    • La fiche pratique phishing (hameçonnage) sur Service-Public.fr.

    • .

    Question sur le compte professionnel de formation (CPF)

    Notre équipe n'est pas en mesure de vous aider sur ces questions. Vous pouvez vous référez à la fiche pratique sur Service-Public.fr.

    journal officiel
    Service-Public.fr
    Quand utiliser le service de moissonnage ?

    Si vous mettez en ligne des données publiques sur une plateforme ouverte, dans un format dont les métadonnées correspondent à la syntaxe ODS, CKAN, ou DCAT vous pouvez les référencer automatiquement sur data.gouv.fr en utilisant notre service de moissonnage. Voir la différence entre API et moissonnage.

    Dans cette section, vous apprendrez comment publier un catalogue de données existant par moissonnage.

    ici

    Réutilisations

    Qu'est-ce qu'une réutilisation ?

    Il n’existe pas de définition stricte du concept.

    Une définition large veut qu’une réutilisation désigne l’utilisation des données publiques par des tiers à d’autres fins que celle de la mission de service public pour laquelle les données ont été produites ou reçues.

    Cependant, il existe des approches plus restrictives. Certains considèrent par exemple que seuls les usages pérennes de la donnée sont des réutilisations tandis que d’autres considèrent tout usage de la donnée comme une réutilisation.

    Une réutilisation désigne communément l’exploitation de données ouvertes. Elle peut prendre la forme d’une visualisation, d’une application, d’un article de presse, d’un papier de recherche, etc.

    Dans cette section, vous apprendrez à :

    Bouquets API Entreprise et API Particulier

    Ce guide présente les deux bouquets d'API permettant aux administrations d'exposer leurs API délivrant des données administratives des entreprises, des associations et des particuliers.

    Vous êtes une administration et souhaitez distribuer des données administratives à d'autres administrations dans l'objectif de participer à la simplification des démarches administratives ?

    ➡️ Exposez et/ou concevez votre API avec API Entreprise et API Particulier !

    L'offre de service DINUM des bouquets

    Exposer vos API délivrant des données administratives d'entreprises, d'associations ou de particuliers dans l'API Particulier et l'API Entreprise permet de :

    • Bénéficier de l'aide technique et métier de la DINUM pour concevoir/adapter vos API aux besoins recensés des administrations fournisseurs de service ;

    • Réduire au minimum votre gestion du support des API, car les équipes API Particulier / API Entreprise prennent en charge tout le support de niveau 1, se font l'intermédiaire des nombreuses questions et remontée de bugs et vous contacte uniquement si nécessaire.

    Comment rejoindre les bouquets API Entreprise / API Particulier ?

    1

    Identifier si votre API correspond aux bouquets

    Les bouquets API Entreprise et API Particulier sont conçus pour faire circuler les données administratives entre administrations.

    Seules les API des administrations peuvent rejoindre les bouquets. Le bouquet API Particulier distribue par API des informations sur les particuliers : quotient familial CAF & MSA, certificat de scolarité, statut demandeur d'emploi, bénéficiaire du RSA ou d'autres prestations. ➡️ Si votre API permet d'accéder à d'autres informations administratives de particulier, élève, parent, famille, demandeur d'emploi, elle a certainement sa place dans le bouquet API Particulier !

    harvest

    Harvest related operations

    Gérer une API

    Pour modifier la page de votre API, veuillez vous rendre dans votre espace "⚙️Administration".

    Qui peut modifier une page API ?

    N'importe quelle personne de l'organisation à laquelle appartient la fiche peut modifier une fiche API. C'est-à-dire autant une personne dont les droits sont admin ou éditeur.

    Comment modifier une page API ?

    1

    🔐 Se connecter à l'espace administration

    Pour modifier la page d'une API, il faut d'abord se connecter à l'espace administration dans .

    💡 Si vous n'avez pas de compte Data.gouv.fr, veuillez , créer votre compte et le rattacher à l'organisation responsable d'API.

    2

    Jeux de données

    Qu'est-ce qu'un jeu de données sur data.gouv.fr ?

    Un jeu de donnée sur data.gouv.fr est un ensemble de ressources ou d’informations (fichiers de données, fichiers d’explications, API etc.) et de métadonnées (description, producteur, date de publication, mots-clefs, couverture géographique temporelle etc.) sur un thème donné.

    Dans cette section, vous apprendrez à :

    site

    Site global namespace

    workers

    Asynchronous workers related operations

    dataservices

    Dataservices related operations

    Analyser le rapport de moissonnage

    Chaque moissonnage donne lieu à un rapport accessible depuis l’interface d’administration de data.gouv.fr. Il vous permet de comprendre ce qu’il se passe et, le cas échéant, de corriger les erreurs existantes et de vérifier le filtrage.

    Vue synthétique

    Vue synthétique du rapport de moissonnage

    Détails d’un jeu de données

    En cas d’erreur

    • 1 correspond à l’erreur technique formulée de façon compréhensible pour un humain

    • 2 contient la “stacktrace” de l’erreur qui servira à ceux qui développent des moissonneurs ou contribuent aux existants.

    Gérer une réutilisation

    Une fois votre réutilisation publiée, vous pouvez la gérer depuis l'espace d'administration. Vous pouvez notamment suivre les principales métriques, les discussions ainsi que modifier, transférer ou supprimer votre réutilisation.

    La procédure pour gérer une réutilisation est détaillée dans le tutoriel suivant :

    Comment gérer une réutilisation
    1. Rendez-vous sur votre réutilisation

    2. Cliquer en haut à droite sur le bouton modifier ;

    3. Dans l'espace d'administration vous pouvez cliquer sur le bouton éditez ;

    4. Choississez l'action à réaliser (supprimer, éditer ou transferer) ;

    Producteurs de données

    Grâce à cette section, les producteurs de données pourront répondre aux interrogations suivantes :

    • Qu'est-ce que l'open data ? A quoi cela sert-il ?

    • Suis-je concerné par les obligations légales relatives à l'ouverture des données ?

    • Quelles sont les obligations légales et les règles à respecter ?

    Diffuser la documentation d'un jeu de données

    Il est conseillé de proposer votre documentation en ligne et non sous format PDF : une documentation en ligne permet de s’assurer que les réutilisateurs des données disposent toujours de la version la plus à jour.

    Des portails de données, tels que data.gouv.fr, proposent des espaces dédiés à la documentation du jeu de données.

    Vous pouvez également héberger votre documentation sur des sites web statiques.

    Si le jeu de données a pour vocation de circuler en interne de votre organisation, nous vous conseillons a minima de proposer une documentation dans un fichier séparé des données :

    • Le fichier contenant les données doit être réservé à la manipulation de ces dernières ;

    • Le fichier contenant la documentation a lui pour vocation d’informer sur la nature des données et sur la structure des fichiers.

    Exemple : Dans le cadre de la publication , un a été créé afin de présenter la documentation du jeu de données.

    Documenter des données

    Les données issues d'une organisation ont été produites dans un contexte métier particulier. Un individu externe à l’organisation n’est pas forcément familier avec cet environnement métier, ce qui peut le freiner dans l’exploitation des données diffusées.

    La documentation d'un jeu de données a une visée pédagogique et facilite la réutilisation des données.

    Elle décrit les données et la structure des fichiers publiés.

    Dans cette section, vous apprendrez comment :

    Guide qualité

    Ce guide a pour vocation de vous accompagner dans la production de jeux de données de qualité, notamment dans le cadre d'une démarche d'ouverture.

    Lexique : Jeu de données Au sens de data.gouv.fr, un jeu de données est un ensemble de ressources : il contient des fichiers contenant des données (csv, json, etc.), de la documentation pour décrire le contenu de ces données, ainsi que la licence sous laquelle le jeu est publié.

    Dans ce guide, vous apprendrez comment :

    Préparer un jeu de données de qualité

    Dans cette section, vous apprendrez comment :

    discussions

    Discussion related operations

    contacts

    Contact points related operations

    API

    Ce guide concerne l'utilisation et l'ajout d'API dans la page data.gouv.fr/dataservice.

    Qu’est-ce qu’une API ?

    Une API est une interface, un contrat passé entre deux systèmes informatiques pour leur permettre de communiquer. Cette solution informatique permet d’automatiser des tâches depuis votre ordinateur ou vos serveurs.

    • Publier une API


    Pour en savoir plus sur l'API spécifique de de data.gouv, veuillez consulter .

    Accompagnement humain

    Ce guide référence l'accompagnement disponible pour les administrations souhaitant concevoir et mettre à disposition leurs API.

    En tant qu'administration :

    • Vous souhaitez référencer vos API sur data.gouv.fr ?

    • Vous avez besoin d'accompagnement pour documenter précisément vos API ?

    • Vous vous interrogez sur les réutilisations possibles de vos API ?

    • Vous vous demandez si vos données administratives peuvent être utiles pour simplifier les démarches des citoyens ? et comment concevoir l'API adéquate ?

    ➡️ Le pôle circulation de la donnée de la DINUM est disponible pour vous aider. Écrivez-nous à .

    Guides open data

    Des guides pour vous aider à mieux comprendre les enjeux liés aux données ouvertes.

    Améliorer la qualité d'un jeu de données en continu

    Dans cette section, vous apprendrez comment :

    Introduction à l'open data

    Ce guide vous permettra de comprendre ce qu'est l'open data, et comment vous pouvez l'utiliser.

    Outils pour les administrations

    Ce guide est dédié aux administrations souhaitant exposer leurs API sur data.gouv.fr.

    Vous êtes une administration ? une collectivité ? un opérateur d'État ? et vous souhaitez exposer votre API dans le catalogue data.gouv.fr ? ➡️ Le pôle circulation de la donnée de la DINUM (direction interministérielle du numérique) est là pour vous accompagner !

    Pourquoi exposer son API sur data.gouv.fr ?

    Data.gouv.fr est la plateforme ouverte des données publiques françaises. Depuis fin 2024, elle recense également les . Pour les usagers, ce recensement large de la donnée permet de trouver au même endroit toutes les données disponibles quel que soit leur format. Data.gouv.fr est utilisé par de nombreux agents publics en quête de données pour simplifier les démarches en ligne qu'ils proposent à leurs usagers.

    reuses

    Reuse related operations

    Créer une organisation

    Pourquoi créer une organisation ?

    Nous vous conseillons de créer une organisation ou de rejoindre une organisation existante si vous souhaitez :

    1. publier des jeux de données pour le compte d’une organisation publique ou privé (administration, collectivité, association, entreprise, etc. );

    me

    Connected user related operations

    Suivre l'activité et modifier son organisation

    Les activités de votre organisation peuvent être consultées à partir d’un tableau de bord qui centralise les informations suivantes :

    • la description de l’organisation et la liste de ses membres ;

    • les métriques rattachées à chaque jeu de données, ressource ou réutilisation publiés ;

    Organisation

    Qu'est-ce qu'une organisation sur data.gouv.fr ?

    Une organisation est une entité au travers de laquelle plusieurs utilisateurs peuvent collaborer. Les jeux de données publiés au nom de l’organisation peuvent être édités par les membres de l’organisation. Elle peut contenir plusieurs utilisateurs et un même utilisateur peut appartenir à plusieurs organisations.

    Dans cette section, vous apprendrez à :

    Créer un schéma de données

    La création d'un schéma de données se décompose en 4 phases :

    1. : envisager de créer un schéma de données ;

    2. : rassembler plusieurs parties prenantes pour créer un schéma de données ;

    transfer

    Datapass : Outil d'habilitations

    Ce guide décrit comment l'outil DataPass, opéré par la DINUM, permet aux administrations de gérer l'attribution des accès à leurs données

    En tant qu'administration souhaitant diffuser des données restreintes, vous pouvez avoir besoin de délivrer des habilitations aux usagers. ➡️ L'outil Datapass est fait pour ça !

    Les fonctionnalités de Datapass

    Supprimer une organisation

    Lorsqu'une organisation est supprimée, les contenus publiés en son nom restent en ligne, aux mêmes URL, mais sous forme anonyme, c’est-à-dire sans être rattachés à un producteur de données. Si vous souhaitez aussi supprimer les données publiées par l’organisation que vous êtes sur le point de clôturer, commencez par supprimer les jeux de données avant de supprimer l’organisation.

    La marche à suivre est illustrée ci-dessous :

    Comment supprimer une organisation ?

    notifications

    Notifications API

    users

    User related operations

    API de data.gouv.fr

    Qu’est-ce qu’une API ?

    Une API est une interface, un contrat passé entre deux systèmes informatiques pour leur permettre de communiquer. Cette solution informatique permet d’automatiser des tâches depuis votre ordinateur ou vos serveurs.

    A partir de l’API de data.gouv.fr, vous pouvez réaliser les mêmes actions que sur la plateforme :

    tags

    Tags related operations

    Guides sur l'utilisation des données

    L'équipe de data.gouv.fr propose 6 guides pratiques qui ont vocation à vous accompagner dans vos travaux d'exploitation de données ouvertes.

  • Créer des formulaires de demandes d'habilitation, configurables et conçus spécialement pour permettre à vos usagers de :

    • sélectionner les données/API dont ils ont besoin ;

    • compléter leur cadre juridique ;

    • renseigner leurs contacts

  • Proposer aux usagers un espace de suivi de leurs habilitations.

  • Bénéficier d'un espace d'instruction clair permettant de :

    • converser avec l'usager au cours de sa demande pour lui demander des précisions ;

    • valider / refuser les demandes d'habilitation.

    • consulter l'historique des demandes délivrées et des organisations habilitées

  • Pour utiliser Datapass, prenez contact dès maintenant avec l'équipe : [email protected]

    Comprendre les limites du moissonnage

    Les différents types de moissonneurs

    Mettre en place un moissonneur

    Moissonnage des plateformes géographiques

    Publier un jeu de données

    Gérer un jeu de données

    Evaluer le niveau de qualité d'un jeu de données

    Préparer un jeu de données de qualité

    Documenter des données

    Améliorer la qualité d'un jeu de données en continu

    Maîtriser les schémas de données

    Extraire un jeu de données de votre système d'information

    Structurer un jeu de données

    Lier des données à un référentiel

    Guide qualité

    Comment améliorer la qualité de ses données ?

    Guide juridique

    Quelles données doivent être publiées en open data ?

    Améliorer votre score de qualité des métadonnées

    Connaître et suivre les usages d'un jeu de données

    Mettre en place une stratégie organisationnelle

    Comprendre la notion d'open data

    Comprendre l'écosystème de l'open data

    Comprendre les conditions d'utilisation des données en open data

    Découvrir et utiliser data.gouv.fr

    ces instructions
    ameli.fr
    Contacter le service compétent du Ministère du l'Intérieur
    L’outil de diagnostic sur cybermalveillancance.gouv.fr

    🔎 Trouver et sélectionner la page API à modifier

    • Depuis le menu de gauche, cliquer sur la section "API" ;

    • La liste des API éditables apparaît. Cliquez sur l'API à modifier ;

    • Cliquer sur le bouton "Éditer", en haut à droite de l'écran.

    3

    ✒️ Modifier et sauvegarder

    Depuis le mode édition, toutes les caractéristiques de la page API sont modifiables. Pour sauvegarder les modifications, cliquer sur le bouton "Enregistrer" qui se trouve en bas à droite de la page.

    data.gouv.fr
    suivre ce guide
    Gérer une API
    Outils pour les administrations
    cette page
    [email protected]
    : implémenter le schéma de données obtenu après la phase de concertation ;
  • Maintien et promotion : faire la promotion d'un schéma auprès d'autres parties prenantes et le faire évoluer si besoin.

  • Dans cette section sont proposés pour chaque phase un processus à suivre, des bonnes pratiques et des outils.

    Conseil de lecture

    Nous vous recommandons de lire une première fois cette section sur la création de schémas de données en intégralité afin de prendre connaissance des différentes phases. Vous pourrez ensuite vous référer aux pages pertinentes au fur et à mesure de votre avancée.

    Investigation
    Concertation
    Construction

    Publier une réutilisation

    Gérer une réutilisation

    Comprendre la notion d'open data 🔍

    À quoi sert-elle ?

    Qui est concerné ? 👤

    Suis-je tenu(e) de faire de l'open data ?

    Quelles sont les obligations ? ⚖️

    Que suis-je légalement tenu(e) de faire ?

    Bien documenter un jeu de données

    Diffuser la documentation d'un jeu de données

    Créer une organisation

    Suivre l'activité et modifier votre organisation

    Gérer les membres de votre organisation

    Certifier une organisation

    Supprimer une organisation

    Introduction à l'open data

    Qu'est-ce que l'open data et comment l'utiliser ?

    Guide traitement et analyse de données

    Quelles sont les techniques pour exploiter des données ouvertes ?

    Guide API géographiques

    Comment utiliser l'API Adresse, l'API Découpage Administratif et les tuiles vectorielles ?

    Guides données du cadastre

    Comment manipuler les données du cadastre ?

    Guide données météorologiques

    Comment récupérer et manipuler les formats de données météorologiques ?

    Guide API Adresse de l'IGN

    Comment utiliser l'API Adresse de l'IGN ?

    Comprendre les bénéfices d'utiliser un schéma de données

    La production de données en conformité avec un schéma de données existant présente de nombreux bénéfices :

    • Croisement : les données créées peuvent être facilement croisées avec d’autres données conformes au schéma de données utilisé ;

    • Intéropérabilité : l’interopérabilité des données et leur croisement est simplifié ;

    • Facilité d'agrégation : si le jeu de données créé est une agrégation de plusieurs fichiers produits par différents acteurs, la formalisation et le partage d’un schéma de données facilite le travail d’agrégation des données --> ce schéma devient un standard pour votre communauté ;

    • Pérennité : la formalisation d’un schéma de données assure une pérennité des fichiers dans le temps ;

    • Documentation : la documentation d’un schéma de données existant est déjà rédigée et accessible ;

    • Ouverture : la présence d'un schéma de données existant peut faciliter l'ouverture des données, les producteurs ayant directement une procédure claire à suivre ;

    • Qualité : la conformité d'un fichier vis à vis d'un schéma de données, qu'il est possible de vérifier, permet de valider un premier niveau de qualité.

    Il est aussi possible de générer des jeux de données d’exemple ou de proposer des formulaires de saisie standardisés.

    Etape 1 : Phase d'investigation

    Lexique : Phase d’investigation

    La phase d’investigation est la première phase de la création d’un schéma de données. Elle permet de s’assurer que la création d’un schéma est pertinente et en confirme la nécessité.

    Marche à suivre

    Pour déterminer s’il est nécessaire de créer ou non un schéma de données, il est recommandé de suivre les étapes suivantes :

    1. Lire attentivement les différentes sections de ce guide ;

    2. Organiser une réunion réunissant des acteurs métiers, techniques et de potentiels réutilisateurs : vous débattrez de la pertinence de la création de votre schéma de données ;

    3. Référencez votre schéma pour entrer en contact avec les équipes d'Etalab et leurs partenaires et bénéficier de conseils pour sa création, d'une visibilité accrue et d'une assistance d'experts.

    Exemples d'illustration

    ✅ Situations favorables à la création d’un schéma de données

    Exemple 1 : Le ministère chargé des transports souhaite consolider une base nationale des lieux pouvant servir de points de covoiturage. Les collectivités territoriales sont en charge de la création, du recensement et de l'aménagement de ces lieux.

    --> Il est pertinent de créer un schéma de données car un grand nombre de producteurs de données doivent produire des données dans un format homogène. Un schéma facilitera la diffusion des prérequis, permettra la validation des données et facilitera l’agrégation nationale.

    Exemple 2 : L’INSEE souhaite diffuser le Code Officiel Géographique. Il rassemble des données sur des communes, des cantons, des arrondissements, des départements, des régions et des pays. Ce fichier est actualisé tous les ans.

    --> Il est pertinent de créer un schéma car ces données sont des données de référence. Un grand nombre de réutilisateurs est susceptible d’utiliser ces données. Il est primordial que ces réutilisateurs aient accès à une documentation de qualité, que la structure des fichiers des données reste stable dans le temps et que les données publiées soient de bonne qualité.

    Le cas des schémas de données en interne Bien qu’il ne paraisse pas nécessaire dans certaines situations de créer et de diffuser un schéma, vous pouvez choisir de le faire. En effet, les schémas de données comportent de nombreux avantages (documentation, montée en qualité, réutilisations, etc.) qui sont bénéfiques, même lorsque les données sont utilisées uniquement en interne.

    ❌ Situations dans lesquelles la création ou la diffusion d'un schéma de données ne semble pas nécessaire

    Une administration centrale diffuse des statistiques d’activité d’un bureau, en open data, de manière annuelle.

    --> Avec ces seules informations, il ne semble pas nécessaire de créer un schéma : il n’y a qu’un seul producteur et le potentiel de réutilisation semble limité.

    Points de sortie

    À l’issue de cette phase, vous devriez :

    Simplifier l'utilisation de votre API par les fournisseurs de service, car ils n'ont besoin d'intégrer qu'une API pour accéder à la votre, ainsi qu'à celles de nombreux autres fournisseurs de données.
    Le bouquet API Entreprise distribue par API des informations sur les entreprises et les associations : infos de la base Sirene, extrait RCS - Kbis, effectifs, attestations sociale et fiscale, attestations de cotisations, bénéficiaires effectifs, certificat Qualiopi, certificats RGE, Qualibat, OPQIBI, etc. ➡️ Si votre API permet d'accéder à d'autres informations administratives des entreprises et des associations, elle a certainement sa place dans le bouquet API Particulier !
    2

    Contacter le pôle de la circulation de la donnée

    Une fois les éléments précédents vérifiés, vous pouvez contacter le pôle de la circulation de la donnée (DINUM) en charge des bouquets :

    • [email protected]

    En exposant votre API sur data.gouv.fr, vous favorisez le partage et la réutilisation des données et donc l'amélioration des services en ligne.

    Les outils et accompagnements disponibles

    Une des missions de la DINUM est d'accompagner et structurer le développement d'API par les administrations. Dans ce cadre, le pôle de la circulation de la donnée propose différents outils :

    API

    permettre à des utilisateurs différents de publier et modifier des jeux de données sous le même nom, la même bannière.

    La marche à suivre est détaillée ci-dessous :

    Comment créer une organisation
    1. Rendez-vous sur : data.gouv.fr/fr/admin/ ;

    2. Cliquez en haut à droite sur le bouton plus et choisir "une organisation" ;

    3. Vérifiez que votre organisation n'existe pas ;

    4. Décrivez votre organisation Nom Le nom public de votre organisation, par exemple : Direction générale des Finances publiques. Le nom est obligatoire. Sigle : le sigle de votre organisation, s’il existe. Par exemple : DGFIP pour la Direction générale des Finances publiques. Le sigle est facultatif. Description : indiquez ici ce que fait votre organisation et quelle mission elle remplit. Ajoutez d’éventuelles informations qui permettront aux utilisateurs de prendre contact avec vous : adresse e-mail, adresse postale, compte Twitter etc. La description est obligatoire. Site web : si votre organisation possède un site web, renseignez son URL. Par exemple : https://www.economie.gouv.fr/dgfip pour la Direction générale des Finances publiques. Le site web est facultatif.

    5. Ajoutez un logo Si votre organisation possède un logo, ou une image de profil, importez-la ici. Pour importer un logo, cliquez sur le bouton "Choisissez un fichier de votre ordinateur." Les formats d’image suivant sont acceptés : png ; jpg/jpeg.

    Cliquez sur Suivant pour terminer la création de votre organisation

    les anomalies constatées à propos des jeux de données publiés ;
  • les discussions ouvertes à propos des jeux de données publiés ;

  • l’activité des moissonneurs (cf. section "Moissonnage").

  • Pour en savoir plus sur comment connaître et suivre les usages de vos données, rendez-vous sur la page dédiée.

    La procédure pour suivre l'activité de son organisation est détaillée ci-dessous :

    Comment suivre l'activité de son organisation
    1. Rendez-vous sur : data.gouv.fr/fr/admin/ ;

    2. Choisissez votre organisation dans le bandeau de gauche ;

    3. Rendez-vous en bas de page pour voir les jeux de données, réutilisations et discussions ;

    Comment télécharger et explorer le catalogue de données d'une organisation
    1. Rendez-vous sur la page de l'organisation correspondante ;

    2. Cliquez sur le bouton "Télécharger la liste au format CSV" ;

    3. Vous avez la possibilité d'explorer cette liste sans télécharger le fichier via la plateforme

      1. Copiez l'adresse du lien correspondant au bouton "Télécharger la liste au format CSV"

      2. Collez l'adresse du lien dans la case prévue à cet effet sur

      3. Cliquez sur "Explorer les données"

    1. Connectez-vous à votre compte (rappel : seuls les administrateurs peuvent supprimer une organisation) ;

    2. Rendez-vous sur votre tableau de bord, en cliquant sur "Administration" en haut à droite de votre écran ;

    3. Allez sur la page de suivi de l’organisation à supprimer, en cliquant sur le nom de votre organisation, dans la colonne de gauche ;

    4. Cliquez sur la flèche située à côté du bouton "Éditer", en haut à droite de votre écran, puis sur "Supprimer" dans le menu déroulant qui apparaît ;

    5. Validez la suppression de l’organisation en cliquant sur le bouton "Confirmer" dans la fenêtre rouge qui s’ouvre en superposition.

    Créer un jeu de données au nom de votre compte utilisateur ou au nom de votre organisation
    ;
  • Décrire votre jeu de données et les ressources associées ;

  • Ajouter ou supprimer une ressource ou un jeu de données.

  • L’API de data.gouv.fr propose également des fonctionnalité complémentaires à la publication de jeux de données comme la possibilité de récupérer les métadonnées des jeux de données ou de fichiers ou encore d'accéder au contenu des fichiers d’un jeu de données.

    Quand utiliser l’API de data.gouv.fr ?

    À la différence du mode de mise à disposition directe des données sur data.gouv.fr, l’utilisation de l’API permet de réaliser des actions de manière automatisée depuis votre ordinateur ou vos serveurs. Il est par conséquent conseillé d’utiliser une API lorsque la fréquence de publication d’un jeu de données est régulière. Voir la différence entre API et moissonnage.

    L’utilisation de l’API de data.gouv.fr se fait par le point d’entrée racine de l’API. Afin de pouvoir exécuter des opérations d’écriture, il est nécessaire d’obtenir une clé API. Cette clé est accessible depuis les paramètres de votre profil administrateur.

    Générer une clé d'API

    Les appels à l’API sont soumis aux mêmes permissions que l’interface web. Par exemple, si vous souhaitez publier ou modifier un jeu de données au nom d’une organisation, vous devez appartenir à cette organisation.

    des données de sauvetage en mer (opérations coordonnées par les CROSS)
    site statique
    Détails d'un jeu de données du rapport de moissonnage
    Erreur sur un jeu de données du rapport de moissonnage

    Publier une Base Adresse Locale

    Lexique : Base Adresse Locale Fichier géré par une collectivité locale (habituellement une commune ou un EPCI) et contenant toutes ses adresses géolocalisées. Une Base Adresse Locale publiée et à jour garantit une meilleure prise en compte des adresses dans les différents systèmes d’information des acteurs, qu’ils soient privés ou publics. Depuis 2019, les Bases Adresses Locales sont prioritaires dans la Base Adresse Nationale : une commune qui publie sa Base Adresse Locale devient la seule source d'adresses sur son territoire.

    Marche à suivre

    Deux méthodes de publication d'une Base Adresse Locale pour intégration dans la sont possibles sur data.gouv.fr :

    Publication manuelle

    Pour publier manuellement une Base Adresse Locale sur data.gouv.fr :

    1. Vérifiez vos fichiers .csv dans le pour vous assurer qu'ils sont conformes et qu'ils pourront être intégrés à la Base Adresse Nationale ;

    Autres méthodes de publication

    D'autres méthodes permettent de publier une Base Adresse Locale pour intégration dans la .

    Il est notamment recommandé d'utiliser . "Mes Adresses" permet de gérer en ligne (gratuitement), sur un simple navigateur web, une Base Adresse Locale communale et de transmettre des modifications en temps réel à la Base Adresse Nationale.

    Elle ne requiert :

    • Aucune gestion de fichier

    • Aucune compétence technique

    Si vous utilisez votre propre outil, il est également possible de publier via :

    • Un sur adresse.data.gouv.fr ;

    • .

    Pour en savoir plus, nous vous invitons à consulter proposée par adresse.data.gouv.fr.

    Accéder au catalogue via SPARQL

    Qu'est-ce qu'une recherche SPARQL ?

    SPARQL (SPARQL Protocol and RDF Query Language) est un langage de requête utilisé pour interroger des bases de données RDF (Resource Description Framework). RDF est un modèle standardisé pour représenter les informations sur le web. SPARQL permet d'extraire et de manipuler les données stockées sous ce format, permettant de naviguer efficacement dans les informations interconnectées du web sémantique.

    Comment faire une recherche SPARQL ?

    Il n’existe actuellement pas de point d’accès SPARQL directement sur . Pour répondre à vos besoins en matière de recherche et d’interrogation des données ouvertes françaises, nous vous recommandons d’utiliser . Cette plateforme européenne moissonne régulièrement le catalogue de , ce qui vous permet d’accéder aux données françaises et toutes les autres données européennes via leur endpoint SPARQL.

    Pour effectuer une recherche SPARQL sur , en particulier sur le catalogue français (appelé Plateforme ouverte des données publiques françaises sur ), suivez ces étapes :

    Étape 1 : Accéder à l'interface de requête SPARQL

    • Rendez-vous sur l'interface SPARQL de à l'adresse suivante : .

    • Vous accéderez à une interface graphique où vous pouvez saisir vos requêtes SPARQL.

    Étape 2 : Comprendre les éléments de base d'une requête SPARQL

    Les principaux éléments d'une requête SPARQL sont :

    • PREFIX : Déclare les préfixes utilisés pour éviter de répéter les URI complètes dans la requête. Par exemple :

    • SELECT : Indique les variables que vous souhaitez récupérer dans les résultats. Par exemple :

    • WHERE : Spécifie les motifs de correspondance pour restreindre les informations à extraire. Par exemple :

    • LIMIT : Limite le nombre de résultats retournés. Par exemple :

    Étape 3 : Exemple de requête SPARQL pour interroger le catalogue

    Pour interroger les jeux de données du catalogue français , utilisez la requête suivante :

    Cette requête sélectionne les jeux de données publiés par la "Plateforme ouverte des données publiques françaises" en récupérant leur titre et leur description.

    Étape 4 : Exécuter la requête

    • Collez la requête dans l'éditeur SPARQL sur la page de .

    • Exécuter la requête.

    • Les résultats s'afficheront sous forme de tableau, listant les jeux de données avec leurs titres et descriptions.

    Étape 5 : Exporter et utiliser les résultats

    Vous pouvez exporter les résultats obtenus dans différents formats (CSV, JSON, XML) pour les analyser ou les intégrer dans d'autres systèmes.

    En savoir plus

    Pour en savoir plus vous pouvez vous référer à la .

    Structurer une Base Adresse Locale

    Lexique : Base Adresse Locale Fichier géré par une collectivité locale (habituellement une commune ou un EPCI) et contenant toutes ses adresses géolocalisées. Elle respecte le schéma Base Adresse Locale et une gouvernance qui prévoit que la commune est au centre du dispositif. Depuis 2019, les Bases Adresses Locales sont prioritaires dans la Base Adresse Nationale : une commune qui publie sa Base Adresse Locale devient la seule source d'adresses sur son territoire.

    Rappel : Schéma de constitution de la Base Adresse Nationale (BAN)

    Respecter le schéma de données

    Les Bases Adresses Locales correspondent à un . Il est conseillé de le suivre au plus près. Le respect de ce schéma garantit une intégration réussie des Bases Adresses Locales dans la Base Adresse Nationale.

    Une seule Base Adresse Locale est publiée par commune.

    Toute commune peut vérifier que son fichier d'adresses est conforme au schéma et qu'il pourra être intégré à la Base Adresse Nationale grâce au proposé par adresse.data.gouv.fr. Il suffit de glisser le fichier contenant toutes les adresses au format .csv pour obtenir la liste des erreurs à corriger impérativement (en rouge) et des anomalies (problèmes non bloquants mais réduisant la qualité des adresses et leur utilisation).

    Si vous n'avez pas déjà votre propre outil, il est recommandé d'utiliser , conçu pour permettre à toutes les communes de gérer directement leurs adresses/bases adresses locales en respectant les normes et le schéma sans besoin de compétences techniques. Il permet à la fois de publier et de modifier sa Base Adresse Locale. La transmission des adresses à la Base Adresse Nationale se fait en temps réel.

    L'outil est gratuit, open source et simple d'utilisation.

    Suivre les bonnes pratiques

    Pour aller plus loin, ("Comment constituer et établir une adresse ?") est disponible. Il détaille les règles et les normes en vigueur.

    Améliorer le score de qualité des métadonnées

    Un score de qualité des métadonnées a été mis en place sur data.gouv.fr pour répondre principalement à deux problématiques :

    • Les réutilisateurs de données peinent à identifier les jeux de données de qualité et à évaluer si tel ou tel jeu de donnée est digne d’intérêt ;

    • Les producteurs de données ne sont pas suffisamment incités et accompagnés à améliorer la qualité de leurs données.

    Grâce à ce score de qualité des métadonnées, il est possible d'identifier les axes sur lesquels travailler pour améliorer la qualité de vos données.

    Exemple de score de qualité des métadonnées

    🧭 Les critères sont les suivants :

    Critère
    Description

    Ce score est encore en phase d’expérimentation :

    • Le poids de chaque critère sera ajusté en fonction de ;

    • De nouveaux critères seront ajoutés progressivement notamment pour intégrer la notion de schéma de données.

    Chronologie de l'open data

    La formalisation de l’ouverture des données publiques a été progressive, au niveau national et européen :

    En France

    • 1978 - Loi n°78-753 du 17 juillet 1978, dite “loi CADA” : création du droit d’accès aux documents administratifs

    • 2005 - (transposition de la directive européenne de 2003) : création du droit de réutiliser l’information publique

    • 2011 - chargée de la création d'un portail unique interministériel des données publiques

    • 2015 - : création du droit de réutiliser librement les données publiques

    • 2016 - : consécration du principe de l’open data par défaut.

    Ce cadre général s’est étoffé de législations sectorielles ou territoriales, notamment en matière de transport, santé et énergie :

    • 2015 - : ouverture en open data des données de transport

    • 2015 - : publication en open data des données des collectivités publiques de plus de 3500 habitants

    • 2016 - : publication en open data des données de santé.

    En Europe

    • 2003 - : ensemble de règles concernant la réutilisation des données et documents détenus par les organismes des Etats membres de l’Union européenne

    • 2007 - : obligation de publier en open data les données environnementales et géographiques

    • 2013 - : encadrement du droit de redevance accordé aux administrations

    Comprendre les conditions d'utilisation des données en open data

    La réutilisation des données ouvertes est libre et gratuite. S’il est permis une grande liberté d’utilisation, les réutilisateurs de données ont néanmoins des droits et des obligations.

    Les conditions d'utilisation des données ouvertes sont détaillées ici :

    Respecter les conditions de réutilisation

    De façon générale, les droits et obligations des réutilisateurs de données sont à retrouver dans la licence qui est associée au jeu de données en open data.

    Licence : Document qui précise les droits et les devoirs des producteurs et réutilisateurs de données.

    Sur data.gouv.fr, la licence est indiquée et disponible sur la page du jeu de données :

    Les licences les plus courantes sont et la Licence ODbL.

    Avant d’utiliser des données ouvertes, nous vous invitons à consulter les informations fournies dans la licence pour :

    • vous assurer que vous pouvez utiliser les données comme vous avez l’intention de le faire

    • vérifier vos obligations

    Ressources externes pour aller plus loin

    Indiquer et vérifier qu'une ressource respecte un schéma de données

    Une fois qu'un schéma est finalisé et référencé sur schema.data.gouv.fr, il est temps de produire des données conformes à ce schéma.

    data.gouv.fr propose de multiples intégrations avec schema.data.gouv.fr permettant de spécifier qu'une ressource présente sur data.gouv.fr est censée être conforme à un schéma.

    Il est ensuite possible de procéder à la validation de la ressource par rapport au schéma ou de consulter la documentation du schéma à partir de la page d'un jeu de données.

    Il est possible d'indiquer qu'une ressource d'un jeu de données correspond à un schéma depuis l'interface d'administration de data.gouv.fr.

    • Lorsque vous déposez ou éditez une ressource, vous pouvez sélectionner le schéma correspondant à vos données depuis une liste déroulante.

    • Le fait d'indiquer que votre ressource est censée respecter un schéma permet de bénéficier de vérifications de la qualité des données et d'indiquer aux réutilisateurs que vos données respectent un référentiel.

    Télécharger le catalogue de données de data.gouv.fr

    L’ensemble des jeux de données publiés sur data.gouv.fr constitue un jeu de données à part entière qui peut être téléchargé lui aussi, sous la forme d’un catalogue. Vous y trouverez :

    • La liste des jeux de données publiés sur data.gouv.fr

    • La liste des ressources publiées sur data.gouv.fr

    • La liste des réutilisations publiées sur data.gouv.fr

    Respecter les conditions de réutilisation

    Qu'est-ce qu'une réutilisation ?

    La réutilisation des informations publiques désigne l’utilisation des données publiques par des tiers à d’autres fins que celle de la mission de service public pour laquelle les documents ont été produits ou reçus.

    La réutilisation des données doit être libre, c'est-à-dire :

    • Elle est gratuite

    Maîtriser les schémas de données

    Lexique : Schéma de données

    Les schémas de données (ou simplement schémas) permettent de décrire la structure d'un fichier d'un jeu de données.

    Ils indiquent clairement quels sont les différents champs, comment sont représentées les données, quelles sont les valeurs possibles, leur format, etc.

    Créer un compte utilisateur et rejoindre une organisation

    Pourquoi créer un compte utilisateur ?

    Le téléchargement de jeux de données ne requiert pas d’inscription sur la plateforme data.gouv.fr mais le fait de s'enregistrer avec un compte utilisateur permet notamment de :

    • publier des données ;

    Comprendre la notion d'open data

    Il existe de nombreuses définitions de l'open data. L'objectif de ce guide n'est pas d'apporter une définition essentielle et exclusive du concept, mais de proposer une interprétation de l'open data public, qu' a pour mission de mettre en œuvre.

    Open data public : la mise à disposition libre et gratuite des documents administratifs

    Connaître et suivre les usages d'un jeu de données

    Bien souvent, la qualité de données que vous proposez, bien qu'adaptée aux utilisations internes à votre structure, peut être améliorée pour les usages nouveaux engendrés par l'ouverture, qu'il s'agit alors de mieux connaître.

    Lexique : Réutilisation

    Une réutilisation désigne communément l’exploitation de données ouvertes par des tiers, à d’autres fins que celle de la mission de service public pour laquelle elles ont été produites ou reçues.

    Elle peut prendre la forme d’une visualisation, d’une application, d’un article de presse, d’un papier de recherche, etc.

    Evaluer le niveau de qualité d'un jeu de données

    Définir la qualité d'un jeu de données

    Pour une donnée, la notion de qualité dépend grandement de l'usage qui en est fait.

    Les jeux de données publiés sont généralement produits dans un contexte propre à un processus métier et pour un usage particulier. Cet environnement métier n'est pas toujours familier aux tiers, qu'ils soient internes ou externes à l'organisation.

    Exemple : est historiquement produite par la Direction générale des finances publiques pour tenir un fichier immobilier et collecter l'impôt.

    Découvrir et utiliser data.gouv.fr

    Le point d'entrée pour accéder à des données en open data est la plateforme .

    Qu'est-ce que data.gouv.fr ?

    est la plateforme ouverte et communautaire qui vise à centraliser et structurer les données ouvertes en France. Elle favorise la transparence et l’efficacité de l’action publique tout en facilitant la création de nouveaux services.

    La plateforme est par le département Opérateur des Produits Interministériels de .

    ;
  • Elle peut viser une autre finalité que le but initial de production du jeu de données ;

  • Elle peut être réalisée par tout acteur, qu'il soit public ou privé : une administration ne peut demander à ce que le réutilisateur ait une qualité particulière pour accéder aux données.

  • Quelles sont les obligations du réutilisateur de données ?

    Lorsqu'un individu réutilise un jeu de données publiques, il est tenu de respecter les conditions de la licence sous laquelle les données publiques ont initialement été publiées. Deux principales licences sont utilisées dans ce cadre, la Licence ouverte 2.0 - Licence Etalab ou la Licence ODbL. Dans le cas d'une réutilisation de données publiées sous licence ouverte 2.0, vous êtes tenu(e) de :

    • Mentionner la source des données ;

    • Mentionner la date de dernière mise à jour de la réutilisation ;

    • Ne pas altérer le sens des données.

    Dans le cas de données publiées sous une licence ODbL, vous êtes tenu(e) de respecter l'ensemble des conditions fixées par la Licence ouverte 2.0 précédemment mentionnées tout en repartageant votre réutilisation sous licence ODbL. Cette clause de partage à l'identique concrétise la logique share alike.

    À défaut de mention d'une licence, les dispositions de l'article L322-1 du CRPA s'appliquent. Cet article fixe des conditions de réutilisation identiques à celles de la licence ouverte, à sa voir : la non-altération des données publiques, la mention de leurs sources (paternité des données) et la mention de la date de leur dernière mise à jour.

    Le réutilisateur est aussi tenu de se conformer aux obligations légales qui découlent du Règlement général sur la protection des données.

    Vous pouvez retrouver les conditions de réutilisation des autres licences existantes sur cette page.

    Quelles sont les restrictions à la réutilisation de données publiques ?

    Le cas de la propriété intellectuelle

    D'après le cadre général, l'administration ne peut se prévaloir d'un droit de propriété intellectuelle sur une base de données afin de restreindre sa réutilisation.

    Cependant, une administration peut se prévaloir d'un droit sui generis sur une base de données, uniquement si elle valide les conditions suivantes :

    • l'administration est en situation de concurrence ;

    • la création de la base de données relève d'une création de l'esprit et a entraîné des investissements substantiels.

    Le cas de la redevance

    Certaines administrations, notamment celles pratiquant des opérations de numérisation, sont habilitées à pratiquer des redevances pour l'accès et la réutilisation des données. Certaines limitations à la réutilisation peuvent être envisagées pour les administrations qui pratiquent des redevances, afin de préserver ce modèle, notamment en interdisant la rediffusion des données achetées. La tendance actuelle est à la réduction de l'utilisation des redevances tel que le prévoit la circulaire 6264

    Doctrine des API dans l’administration

    Les bonnes pratiques en matière d'usage et d'exposition d'API

    Accompagnement humain

    Besoin d'aide pour concevoir votre API, la documenter, l'exposer ? Une équipe à votre écoute.

    Datapass : Habilitations juridiques

    Vos API sont restreintes à certains publics ? Cet outil clé en main vous permet d'administrer les habilitations

    Bouquet API Entreprise

    Exposer son API proposant des données entreprises et associations dans le bouquet et bénéficier d'un accompagnement technique, métier et de support.

    Bouquet API Particulier

    Exposer son API proposant des données particuliers dans le bouquet et bénéficier d'un accompagnement technique, métier et de support.

    Simplifions.data

    Rendre visible son API sur un cas d'usage référencé sur simplifions.data.gouv.fr. Ce portail à destination des acteurs publics souhaitant mettre en œuvre du dites-le-nous une fois ou de la proactivité, permet d'exposer la donnée dans son cadre d'utilisation.

    [email protected]
    2018 - Directive 2019/1024/UE concernant les données ouvertes et la réutilisation des informations du secteur public : inclusion des données des entreprises investies d’une mission de service public dans le champ de l’open data et création des ensembles de données de forte valeur
  • 2022 - Règlement d’exécution 2023/138 établissant une liste d’ensembles de données de forte valeur spécifiques et les modalités de leur publication et de leur réutilisation : désignation des catégories et des données rentrant dans les ensembles de données de forte valeur.

  • Ordonnance n°2005-650 du 6 juin 2005 sur la réutilisation de l’information publique
    Création d'une mission « Etalab »
    Loi relative à la gratuité et aux modalités de la réutilisation des informations du secteur public
    Loi pour une République numérique
    Loi pour la croissance, l’activité et l’égalité des chances économiques
    Loi sur la Nouvelle organisation territoriale de la République
    Loi pour la Modernisation de notre système de santé
    Directive européenne 2003/98/CE, dite PSI
    Directive européenne INSPIRE
    Directive 2013/37/UE modifiant la directive 2003/98/CE
    Les réutilisateurs peuvent alors rencontrer des difficultés lorsqu'ils souhaitent s'approprier des données ouvertes :
    • Difficultés dans la compréhension de la structure du jeu de données ;

    • Difficultés dans la compréhension des données elles-mêmes ;

    • Qualité non adaptée aux usages voulus (mise à jour, documentation insuffisante ou inexacte, etc.).

    Il est donc indispensable de prendre en compte les pratiques des réutilisateurs en amont de la production des jeux de données.

    Evaluer le niveau de qualité d'un jeu de données

    Plusieurs critères permettent d'évaluer le niveau de qualité d'un jeu de données, notamment :

    Des éléments sur les données elles-mêmes et leur structure
    • Le format de fichier, qui doit permettre de facilement récupérer les données pour les réutiliser de la manière souhaitée (CSV, JSON plutôt que des formats propriétaires comme Excel) ;

    • La structure du fichier, avec notamment des propriétés au nom explicite, compréhensible rapidement et interprétable facilement par des machines ;

    • Le contenu, qui doit être le plus épuré possible, avec un type de donnée simple (un nombre, un pourcentage, une chaîne de caractère, une date, etc.) et un sens "métier" le plus clair possible.

    Des éléments attestant du potentiel de réutilisation et de croisement des données
    • Le respect de standards, référentiels et schémas déjà établis ;

    • La présence de données et colonnes pivots pour lier les données à un référentiel (par exemple le SIRET).

    Des éléments qui accompagnent les données
    • Une documentation claire et rigoureuse avec des métadonnées sur le format du fichier, les versions et les référentiels ;

    • La gestion des versions et des mises à jour des données ;

    • Des échanges entre producteurs et réutilisateurs du jeu de données avec si possible des mécanismes de contribution aux données.

    La base de données des demandes de valeur foncière
    la Licence ouverte 2.0 - Licence Etalab
    Choix d’une licence open data - OpenDataFrance
    Trouver la licence sur une page de jeu de données
    schéma de données établi
    validateur
    l'éditeur "Mes Adresses"
    un guide des bonnes pratiques de l'adressage
    L'éditeur "Mes Adresses"

    - La couverture spatiale est renseignée. - La granularité spatiale est renseignée.

    Couverture temporelle

    La couverture temporelle des données est renseignée.

    Description des données

    La description des données est de qualité (la description du jeu de données suffisamment longue).

    Ressources documentées

    Présence d'au moins un fichier de type documentation ou description des fichiers suffisamment longue.

    Mise à jour

    - La fréquence de mise à jour est renseignée. - La fréquence de mise à jour est respectée.

    Licence

    - La licence est renseignée. - La licence est ouverte. Voir la page licence pour plus d’information.

    Métadonnées des ressources

    Présence d’au moins une ressource avec un format ouvert déclaré.

    vos retours

    Couverture spatiale

    data.gouv.fr
    data.europa.eu
    data.gouv.fr
    data.europa.eu
    data.gouv.fr
    data.europa.eu
    data.europa.eu
    https://data.europa.eu/data/sparql?locale=fr
    data.gouv.fr
    data.gouv.fr
    data.europa.eu
    documentation sur data.europa
    PREFIX dcat: <http://www.w3.org/ns/dcat#>
    
    SELECT ?title ?description
    
    WHERE {
      ?dataset dcat:title ?title ;
               dcat:description ?description .
    }
    
    PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX fo: <http://www.w3.org/1999/XSL/Format#>
    PREFIX dct: <http://purl.org/dc/terms/>
    PREFIX dcat: <http://www.w3.org/ns/dcat#>
    PREFIX dcterms: <http://purl.org/dc/terms/>
    
    SELECT ?dataset ?title ?description ?publisher
    WHERE {
      <http://data.europa.eu/88u/catalogue/plateforme-ouverte-des-donnees-publiques-francaises> dcat:dataset ?dataset .
      ?dataset dct:title ?title ;
               dct:description ?description ;
               dct:publisher ?publisher .
      FILTER(lang(?title) = '') .
      FILTER(lang(?description) = '') .
    }
    LIMIT 10
    LIMIT 10
    
  • Suivez ensuite la procédure standard de publication de données sur data.gouv.fr, en veillant à ajouter le mot clé "base-adresse-locale".

  • N'oubliez pas de mettre à jour vos données !

  • Moissonnage

    Pour publier une Base Adresse Locale sur data.gouv.fr par moissonnage, les étapes à suivre sont les suivantes :

    • Demandez à data.gouv.fr de moissonner votre site, en veillant à ajouter le mot clé "base-adresse-locale" ;

    • Avant d'automatiser, vérifiez votre fichier .csv dans le pour vous assurer qu'il est conforme et qu'il pourra être intégré à la Base Adresse Nationale.

    • N'oubliez pas de mettre à jour vos données !

    La précise toutes les spécificités de cette méthode de publication.

    Base Adresse Nationale
    validateur
    Base Adresse Nationale
    l'éditeur "Mes Adresses"
    formulaire de dépôt
    L'API de dépôt
    la documentation
    Validateur BAL
    Interface de l'éditeur "Mes Adresses"
  • La liste des organisations créées sur data.gouv.fr

  • La liste des tags créés sur data.gouv.fr

  • La liste des discussions ouvertes sur data.gouv.fr

  • La liste des moissonneurs sur data.gouv.fr

  • Voir le jeu de données.

    Les données sont mises à jour de manière hebdomadaire.

    Consulter le catalogue des jeux de données

    Le catalogue des jeux de données est aussi publié dans plusieurs formats, pour en faciliter la consultation.

    Voici la liste des formats proposés avec les MIME type à utiliser ainsi que les URL (liens) correspondantes :

    Format
    URL
    MIME type

    RDF/XML

    application/rdf+xml, application/xml

    Turtle

    text/turle, application/x-turtle

    N3

    text/n3

    Statistiques de fréquentation de data.gouv.fr

    Des statistiques sur la fréquentation de data.gouv.fr sont consultables en ligne sur le site stats.data.gouv.fr.

    Notion clef : Le cycle de vie de la donnée ouverte de qualité

    Le cycle de vie de la donnée ouverte de qualité se compose de 5 étapes principales :

    1. Fédérer une communauté ayant pour objectif de produire en open data des données aisément consolidables

    Il est essentiel que des acteurs ayant pour ambition de produire le même type de données se réunissent afin de définir ensemble un standard commun : un schéma de données.

    1. Référencer le schéma de données

    Une fois le schéma établi, il s’agit de le référencer, notamment sur schema.data.gouv.fr, la plateforme nationale de référencement qui permet un accès aux schémas et facilite l’intégration avec des systèmes informatiques.

    1. Saisir les données

    Un consensus ayant été atteint sur le schéma des données, il est temps de saisir les données en elles-même conformément au schéma.

    1. Valider les données par rapport au schéma

    Pour valider la conformité de ses données par rapport à un schéma particulier, il est possible d'utiliser l'outil Validata, développé par la coopérative multi à l’initiative d'OpenDataFrance.

    1. Publier les données en open data

    Les données désormais validées, il ne reste plus qu’à les publier !

    Dans cette section, vous apprendrez à réaliser l'ensemble des étapes du cycle de vie de la donnée ouverte de qualité, notamment :

    Ce guide sur les schémas de données résulte d'une co-rédaction entre les équipes d'Etalab et d'OpenDataFrance. Il s'inspire du contenu rédigé par de nombreux partenaires, listés par ordre alphabétique :

    • Charles Nepote

    • Datactivist

    • La FING

    Merci à eux !

    référencer des réutilisations de données ;

  • publier un commentaire ;

  • suivre les publications d’un autre utilisateur ;

  • créer, rejoindre, ou suivre une organisation.

  • Créer un compte utilisateur

    Pour des raisons de sécurité, il est recommandé d'utiliser un compte nominatif sur data.gouv.fr et d'éviter l'usage d'un compte partagé entre plusieurs utilisateurs.

    Comment créer un compte utilisateur
    1. Rendez-vous sur : data.gouv.fr/fr/register ;

    2. Saisissez vos Prénom, Nom et Adresse e-mail ;

    3. Saisissez votre Mot de passe et confirmez-le ;

    4. Acceptez les ;

    5. Cliquez sur le bouton "S'enregister" ;

    6. Un message va alors apparaître à l’écran, vous demandant de confirmer votre adresse e-mail.

    Une fois le formulaire d’inscription validé, rendez-vous dans la boîte de réception associée à l’adresse e-mail que vous avez saisie, puis :

    1. Ouvrez l’e-mail qui vous a été envoyé par [email protected] et cliquez sur le bouton "Confirmer maintenant" qu’il contient.

    2. L’e-mail vous redirige vers la où vous avez désormais accès à votre compte utilisateur.

    Rejoindre une organisation

    Pourquoi rejoindre une organisation ?

    Nous vous conseillons de rejoindre une organisation existante si vous souhaitez :

    • publier/modifier des pages "jeux de données" ou "API" pour le compte d’une organisation publique ou privée (administration, collectivité, association, entreprise, etc. ) ;

    • permettre à des utilisateurs différents de publier et modifier des jeux de données sous le même nom, la même bannière.

    Si vous pensez que vous devriez figurer dans la liste des membres d’une organisation, faites une demande pour la rejoindre. L’administrateur de l’organisation devra ensuite accepter votre demande.

    La marche à suivre est explicitée ci-dessous :

    Comment rejoindre une organisation
    1. Rendez-vous sur la page publique de l'organisation, trouvable depuis cet index ;

    2. Cliquez sur l'onglet "informations" ;

    3. Cliquez sur "Demander à rejoindre l'organisation en tant que producteur".

    Si votre organisation n'existe pas, il est possible de la créer. La procédure est explicitée ici.

    Dans le cadre de ses missions de service public, l’administration produit et reçoit des documents administratifs. Ces documents administratifs peuvent contenir des informations publiques, qui peuvent elles-mêmes être représentées sous forme de données publiques.

    L'open data public consiste à assurer la large mise à disposition à tous de ces données, en accès libre et gratuit, sous un format numérique facilement réutilisable.

    Lexique

    • Administration : L'administration englobe l’État, les collectivités territoriales ainsi que les autres personnes de droit public ou les personnes de droit privé chargées d'une mission de service public (Article L300-2 du CRPA) ;

    • Document administratif : Tout document que l'administration a pu produire ou recevoir (de la part d’une autre administration ou d’un prestataire par exemple), dans le cadre de sa mission de service public (). Ces documents peuvent correspondre à des notes de services, une base de données, une législation, un code source de logiciel, des cartes, un algorithme, etc. Un document sur lequel un tiers détient des droits de propriété n'est pas considéré comme un document administratif ;

    • Information publique : Information contenue dans un document administratif communicable à tous ou faisant l'objet d'une diffusion publique, sur lequel des tiers ne détiennent pas de droits de propriété intellectuelle () ;

    • Donnée publique : Représentation d’une information publique sous une forme conventionnelle destinée à faciliter son traitement. Cela peut être par exemple des données géographiques (adresses, références cadastrales), financières (budgets, commande publique, subventions, etc.), environnementales (émissions, vente de produits, etc.), etc.

    Les bénéfices liés à l'open data public

    Au-delà du respect du cadre légal, ouvrir vos données présente de multiples intérêts. Cela vous permet notamment de :

    • Valoriser votre action : publier en open data les données que vous produisez donne de la visibilité à votre travail et à vos missions ;

    • Alléger votre charge de travail : une fois le jeu de données publié, vous n’avez plus besoin de répondre à chaque demande d'accès isolée émanant d'un citoyen ou d'une administration ;

    • Améliorer la qualité de vos données : les données que vous publiez seront réutilisées par des acteurs publics ou privés qui pourront les croiser avec d’autres données ou détecter des anomalies voire les corriger ;

    • Renforcer votre efficacité et améliorer les services publics : les données ouvertes par des administrations peuvent être réutilisées par d’autres services ou aboutir à des collaborations entre équipes, ce qui peut améliorer la mise en œuvre des missions de service public ;

    • Favoriser la transparence ;

    • Favoriser la création de nouveaux services, notamment par des acteurs privés ou la société civile : les données qui auront été ouvertes pourront être utilisées par des tiers afin de créer de nouveaux services numériques.

    Le partage de données Le partage de données entre acteurs, que ce soit à l’intérieur ou l’extérieur d’une organisation, est devenu un enjeu économique, politique et culturel.

    La circulation des données démultiplie leur potentiel d’usage et rend possible leur réutilisation pour des finalités qui n’étaient pas envisagées lors de leur production. La qualité de la donnée se traduit donc par sa bonne compréhension et par son potentiel de réutilisation.

    En France, le mouvement de l'ouverture des données publiques se fonde sur ces principes depuis 2011. En avril 2023, la plateforme data.gouv.fr comptait plus de 45 000 jeux de données pour près de 4 000 organisations. En interne, les organisations ont également pris conscience de l’intérêt que représente la circulation et l’exploitation croisées des données pour leurs activités.

    Etalab
    Suivre et mesurer les usages d'un jeu de données

    Il est possible de combiner approches quantitatives et qualitatives pour cerner les usages d'un jeu de données.

    Selon les moyens disponibles, plusieurs leviers sont disponibles :

    • Mesurer les volumes d'usage : en suivant les métriques des jeux de données publiés proposés par data.gouv.fr ou sur son propre portail (nombre de consultations, nombre de téléchargements, nombre de réutilisations, etc.).

    • Répondre aux commentaires et aux questions soumis sur data.gouv.fr, dans lesquels les réutilisateurs font régulièrement remonter leurs besoins. D'après l'analyse réalisée par des étudiantes et des étudiants de l'Université Bordeaux Montaigne, sur data.gouv.fr, de nombreux commentaires peuvent être catégorisés comme relevant de problématiques d'accessibilité, suivie de celles d'actualisation des données puis des questions de fiabilité et d'exploitabilité des données.

    Echantillon de discussions sur le jeu de données "Demandes de valeur foncière"
    • Suivre les réutilisations ajoutées sur ses jeux de données sur data.gouv.fr et inciter au référencement.

    Consultation des réutilisations références sur le jeu de données "Prix des carburants - Flux instantané"
    • Réaliser des enquêtes auprès des réutilisateurs.

    Exemples :

    • A l'automne 2021, les producteurs de la Base Sirene (INSEE) ont sondé leurs réutilisateurs sur des questions de contenu, de format ou encore de documentation des données.

    • En décembre 2022, le ministère de la Culture a lancé une consultation publique sur l'ouverture des données publiques culturelles. Cette consultation visait à recueillir les besoins et les remarques des usagers concernant les jeux de données déjà ouverts et ceux qui auraient vocation à être ouverts.

    • Animer des communautés de réutilisateurs, notamment en organisant régulièrement des ateliers de discussions entre producteurs et réutilisateurs ou en proposant un espace d'échange en ligne.

    Exemple :

    L'Institut National de l'Information Géographique et Forestière (IGN) organise un certain nombre d'événements mettant à l'honneur les réutilisateurs. Il propose également des conférences, des webinaires de prise en main des différents services ainsi que des tutoriels d'accompagnement.

    • Réaliser des entretiens avec les principaux réutilisateurs.

    Exemple

    Pôle Emploi travaille étroitement avec la startup d’Etat DiagOriente pour améliorer le Répertoire Opérationnel des Métiers et des Emplois (ROME) en intégrant les retours des utilisateurs de l’outil (compétences pertinentes à retenir, celles qui sont renommées, jamais sélectionnées) et ses travaux de reformulation sémantique des compétences professionnelles.

    Que trouver sur data.gouv.fr ?

    Sur data.gouv.fr, vous trouverez des informations sous forme de données numériques brutes. Il s’agit de données ouvertes/en open data (cf. section "Comprendre la notion d'open data"). Elles peuvent être téléchargées et utilisées par toutes et tous de manière libre et gratuite.

    La plateforme permet, entre autres, d’accéder à un vaste catalogue de données issus de milliers d’organisations. Le catalogue de data.gouv.fr est disponible ici (liste des jeux de données publiés, des ressources publiées, etc.).

    Page de recherche de données sur la plateforme data.gouv.fr

    A qui s’adresse data.gouv.fr ?

    data.gouv.fr est une plateforme communautaire qui s’adresse :

    • A ceux qui produisent des données (producteurs de données) et qui souhaitent ouvrir leurs données ;

    • A ceux qui exploitent des données (réutilisateurs de données) et qui veulent récupérer des données et partager leurs réalisations ;

    • A tout citoyen qui souhaite découvrir des données ou trouver une information.

    Comment utiliser data.gouv.fr ?

    La documentation de data.gouv.fr vous accompagne dans l'utilisation de la plateforme :

    Des portails thématiques issus de data.gouv.fr

    Il existe des expositions thématiques du catalogue de data.gouv.fr. Ces portails ont vocation à recenser toute l’offre de données ouvertes dans un domaine particulier pour faciliter la diffusion auprès des réutilisateurs. On peut citer :

    • meteo.data.gouv.fr : portail qui référence, héberge et diffuse les données publiques météorologiques produites par Météo-France ;

    • : point d’accès national aux données de transport ;

    • : portail qui a vocation à référencer l’ensemble des données relatives à la transition écologique et énergétique.

    Il ne s’agit pas de nouveaux portails open data et les données qui y sont exposées sont disponibles dans les mêmes conditions que sur .

    data.gouv.fr
    data.gouv.fr
    développée et opérée
    la Direction interministérielle du numérique (DINUM)
    Documentation de data.gouv.fr
    explore.data.gouv.fr
    explore.data.gouv.fr
    Capture d'écran de la sélection d'un schéma depuis l'interface d'administration de data.gouv.fr

    Gérer les membres de son organisation

    Comprendre les droits des membres d'une organisation

    Une organisation se compose d’administrateurs et d’éditeurs qui ont des permissions différentes.

    Permissions
    Editeur
    Administrateur

    Ajouter un membre à une organisation

    Comment ajouter un membre à son organisation ?
    1. (rappel : seuls les administrateurs peuvent ajouter un membre) ;

    2. Rendez-vous sur , en cliquant sur "Administration" en haut à droite de votre écran ;

    La procédure est illustrée ci-dessous :

    Retirer un membre d’une organisation

    Retirer un utilisateur d’une organisation ne supprime pas le compte de l’utilisateur en question.

    Comment retirer un membre d'une organisation ?
    1. (rappel : seuls les administrateurs peuvent retirer un membre) ;

    2. Rendez-vous sur , en cliquant sur "Administration" en haut à droite de votre écran ;

    La marche à suivre est illustrée ci-dessous :

    Moissonnage des plateformes géographiques

    Il est possible de faire moissonner les données de sa plateforme géographique par data.gouv.fr.

    Qu'est-ce que le moissonnage sur data.gouv.fr ? Le moissonnage est un mécanisme permettant de collecter les métadonnées sur un catalogue distant et de les stocker sur une autre plateforme afin de proposer un second point d’accès aux données.

    Historiquement, le moissonnage des métadonnées géographiques se faisait via . La plateforme est aujourd'hui éteinte. Vous retrouverez plus d’informations à propos de .

    1. La plateforme a vocation à accueillir l’ensemble des données géographiques en open data.

    2. Le moissonnage direct des plateformes géographiques par est maintenant possible et n’oblige plus à passer par une plateforme intermédiaire.

    3. Des travaux sont en cours pour moissonner automatiquement les fiches de métadonnées mises à disposition par au nom des différentes organisations productrices.

    4. Le rôle de la plateforme Geocatalogue gérée par le BRGM (Service Géologique National) est concentré sur le périmètre des données

    Mettre en place un moissonneur géographique

    Le moissonnage des plateformes géographiques se fait avec transformation des fiches ISO-19139 en , l'un des vocabulaires de moissonnage supportés par data.gouv.fr.

    Les fiches moissonnées étant associées à l'organisation qui a configuré le moissonneur sur , il est important de préparer les points de moissonnage pour que les fiches retournées correspondent à celles de l'organisation cible.

    Dans le cas d'une plateforme référençant des données de différentes organisations, il est donc nécessaire de créer des CSW virtuels (filtrés par organisation cible).

    pour configurer des sous-portails.

    Une documentation est disponible sur les étapes générales de configuration d'un point de moissonnage dans . Il faut choisir le moissonneur csw-iso-19139 au niveau de l'implémentation.

    Toutes les métadonnées ne sont pas encore correctement transformés par ce convertisseur ISO-19139 vers DCAT. En lien avec les équipes du projet Ecosphères, nous travaillons à augmenter régulièrement le périmètre des métadonnées moissonnées.

    Configurer un portail GeoNetwork

    data.gouv.fr peut moissonner un endpoint CSW avec sortie ISO-19139 en appliquant par la suite . Ce moissonnage est fonctionnel sur les différentes versions de GeoNetwork.

    Une requête POST est effectuée par le moissonneur sur le endpoint CSW renseigné (ex ) avec le contenu suivant :

    Moissonnage historique

    Ces solutions de moissonnage ne sont plus recommandées dans le cas général.

    En version 2 ou 3, il existait un endpoint DCAT alternatif au endpoint CSW habituellement utilisé comme .

    Ainsi devenait par exemple. Le moissonneur utilisé était donc l'implémentation dcat simple.

    En version 4, il est possible de récupérer le contenu . La conversion des fiches par GeoNetwork est cependant moins satisfaisante que par récupération du contenu en ISO-19139 et conversion à posteriori.

    Mettre en place un moissonneur

    Comment mettre en place un moissonneur ?

    Le principe du moissonnage sur data.gouv.fr se décompose en plusieurs étapes :

    1. Vous créez un moissonneur sur data.gouv.fr afin que data.gouv.fr suive l’activité de votre plateforme ;

    2. Vous publiez des données sur votre plateforme open data ;

    3. Vous demandez la validation de votre moissonneur sur ;

    4. La configuration du moissonneur est validée par l’équipe en charge de data.gouv.fr ;

    5. Le moissonneur de data.gouv.fr vient automatiquement récupérer les données de votre plateforme ;

    6. Les données de votre plateforme sont référencées et visibles sur data.gouv.fr. 🎉

    Si vous souhaitez tester la mise en place d'un moissonneur et observer le résultat du moissonnage avant une mise en production sur , vous pouvez le créer sur la plateforme de démo pour effectuer vos tests dans un premier temps. L'ensemble des étapes sont les mêmes que celles décrites sur cette page.

    Créer un moissonneur

    La création d’un moissonneur sur data.gouv.fr nécessite la création d’un compte gratuit.

    Pour créer un nouveau moissonneur :

    1. ;

    2. Rendez-vous sur , en cliquant sur Administration en haut à droite de votre écran ;

    3. Cliquez sur l’icône en forme de plus (+) qui se trouve à gauche de votre avatar ;

    À partir de là, la création du moissonneur se déroule en 3 étapes.

    1. Définir qui publie les données moissonnées

    Une fois moissonnées, c’est-à-dire récupérées sur votre plateforme, vos données sont publiées sur data.gouv.fr. L’étape 1 vous permet de choisir le compte qui sera associé à la publication sur data.gouv.fr des données moissonnées sur votre site.

    Il peut s’agir de :

    • votre propre compte, pour une publication à titre individuel, sous votre propre nom ;

    • le compte d’une organisation dont vous êtes membre, pour une publication à titre collectif.

    Si vous êtes membre d’une organisation, nous vous conseillons de publier vos jeux de données en son nom. Une fois votre choix effectué, cliquez sur le bouton Suivant pour accéder à l’étape 2.

    2. Configurer le moissonneur

    L’étape 2 vous permet de configurer votre moissonneur. Cette étape est importante pour que les données récupérées par data.gouv.fr soient aussi complètes que celles publiées sur votre plateforme à l’origine.

    Nom

    Donnez un nom à votre moissonneur. Il s’agit d’une référence interne, qui vous permet de vous y retrouver si vous créez plusieurs moissonneurs. Le nom de votre moissonneur ne sera pas public.

    • Mauvais nom : Moissonneur de mon portail

    • Bon nom : Plateforme open data Grand Lyon

    Le nom du moissonneur est obligatoire.

    Description

    Vous pouvez ajouter des précisions sur votre moissonneur dans le champ description. Là encore, il s’agit d’une référence interne qui n’a de valeur que pour vous.

    La description est facultative.

    URL

    Saisissez ici l’URL du portail à moissonner. Il s’agit généralement de l’URL de la page d’accueil de votre portail d’open data. L’URL permet au moissonneur de parcourir et récupérer tous vos jeux de données.

    • Mauvaise source : data.angers.fr

    • Bonne source : https://data.angers.fr

    L’URL est obligatoire.

    Implémentation

    Choisissez ici le format des métadonnées associées aux jeux de données publiés sur votre plateforme. Ce format permet au moissonneur de savoir comment lire et interpréter vos métadonnées, pour bien les retranscrire sur data.gouv.fr.

    Certaines implémentations permettent d’ajouter des filtres, dans le but d’inclure ou d’exclure certains jeux de données du moissonnage. Consultez .

    Le type d’implémentation est obligatoire.

    Actif

    Cochez la case pour que votre moissonneur se mette au travail dès qu’il aura été validé par l’équipe en charge de data.gouv.fr. Laissez-la décochée pour activer votre moissonneur à la main.

    Ce champ est obligatoire.

    Une fois tous les champs obligatoires remplis, cliquez sur le bouton Suivant pour terminer la création de votre moissonneur.

    3. Demander la validation du moissonneur

    Une fois votre moissonneur configuré, demandez validation de votre moissonneur sur . Il va être examiné par l’équipe en charge de data.gouv.fr, pour vérifier qu’il est bien réglé. Si c’est le cas, le moissonneur sera validé et vous recevrez une notification.

    De votre côté, vous pouvez vérifier que votre moissonneur moissonne correctement votre site. Pour ce faire :

    1. Cliquez sur le bouton Voir dans l’administration une fois votre moissonneur créé ;

    2. Cliquez sur le bouton Prévisualiser ;

    3. Vérifiez que le moissonneur récupère bien des jeux de données.

    Tant que votre moissonneur n’est pas validé, il ne référence aucun jeu de données sur data.gouv.fr.

    organizations

    Organization related operations

    Comprendre la notion d'open data

    Qu'est-ce que l'open data ?

    Les données ouvertes (en open data) sont des données en accès libre et gratuit, réutilisables par toutes et tous. Autrement dit, vous pouvez librement :

    • y accéder ;

    • les utiliser ;

    • les partager.

    Il est possible de trouver des données ouvertes sur tout type de sujet :

    • (comme les ) ;

    • (comme la ) ;

    • (comme la ) ;

    • (comme le ) ;

    Il existe par exemple des données sur , , , les , , sur (Météo-France), etc.

    Ces données sont produites et mises à disposition par des administrations (ministères, collectivités territoriales), des entreprises (SNCF, Enedis, etc.), des acteurs de la société civile ou encore des citoyens.

    Tout acteur peut ouvrir ses données (données ouvertes) mais pour toutes les données produites ou reçues dans le cadre d’une mission de service public (données publiques), les producteurs de ces données (souvent des administrations, certains acteurs privés, etc.) sont dans l’obligation de les publier spontanément en open data.

    Beaucoup de données ouvertes sont à retrouver sur , la plateforme nationale des données publiques françaises. Celle-ci vise à centraliser et structurer les données ouvertes en France et permet à toutes les organisations tenues de publier en open data de respecter leurs obligations. .

    Comment utiliser l'open data ?

    Les données en open data peuvent être exploitées pour tout type d’usage :

    • trouver une information ;

    • développer des analyses ;

    • créer de nouveaux services (publics ou privés) ou d’en améliorer ;

    • alimenter des travaux de recherche ;

    Ces usages peuvent prendre des formes variées : visualisations, applications, articles de presse, papiers de recherche, etc.

    Elles ont par exemple été utilisées pour élaborer des solutions permettant de :

    • ;

    • ;

    • ;

    • ;

    De nombreux autres usages existent, et il est possible d’en découvrir davantage .

    Ressources externes pour aller plus loin

    datasets

    Dataset related operations

    Guide traitement et analyse de données

    Ce guide a pour vocation de vous fournir les éléments essentiels vous permettant d'exploiter des données ouvertes et de vous orienter sur la plateforme data.gouv.fr, afin que vous puissiez rapidement réaliser ce que vous souhaitez faire. Il propose des méthodes, des recommandations, des ressources et des outils autour du traitement de données brutes.

    Ce guide :

    • inventorie, structure et renvoie vers de nombreuses ressources externes ouvertes, non produites par l'équipe de data.gouv.fr, qui sont systématiquement rapportées à leurs concepteurs, que nous remercions pour leur précieux travail ;

    • les complète avec des contenus produits par l'équipe de data.gouv.fr.

    Ce guide est ouvert aux contributions. 💌 Vous avez des idées d'autres ressources pédagogiques et/ou outils que nous pourrions intégrer dans le guide ? . Il est en version beta.

    Comprendre l'écosystème de l'open data

    De nombreux acteurs publient en open data les données qu’ils produisent : administrations centrales (ministères, opérateurs de l’Etat, etc.), collectivités territoriales, entreprises, associations, acteurs de la société civile, think tanks, citoyens, etc.

    Les producteurs ouvrent leurs données :

    • soit en les publiant sur la plateforme data.gouv.fr, la plateforme nationale des données ouvertes : les données sont alors hébergées directement sur data.gouv.fr (exemples : ministère de la transition écologique, Haute Autorité de Santé, Centre national du cinéma et de l’image animée, etc.) ;

    • soit en les publiant sur leur propre portail open data ou un autre portail open data mutualisé : les données, hébergées sur le portail en question, peuvent aussi être référencées sur, exposées et directement accessibles depuis data.gouv.fr, grâce à un système de (exemples : , , , , etc.).

    a vocation à centraliser et structurer les données ouvertes en France. Elle permet à toutes les structures en charge d’une mission de service public, notamment les administrations, de répondre à leur obligation de publication par défaut de leurs données.

    A partir des données disponibles sur :

    • Des portails thématiques de données peuvent être créés : ils visent à recenser l’intégralité de l’offre de données ouvertes dans un domaine particulier pour en faciliter la diffusion auprès des réutilisateurs (, , ). Il ne s’agit pas de nouveaux portails open data, mais d’expositions thématiques du catalogue de . Les données qui y sont exposées sont disponibles dans les mêmes conditions que sur .

    • Des projets et services sont développés par des réutilisateurs (ex : ) qui contribuent en retour à la communauté open data et à la plateforme en :

      • partageant leurs travaux, notamment en les référençant sur la plateforme

    L’écosystème de l’open data se présente ainsi de la façon suivante :

    Les principaux socles techniques des plateformes open data

    Ressources externes pour aller plus loin

    Prise en main de l'API

    Racine

    Le point d’entrée racine de l’API est .

    Si vous souhaitez faire des tests sur la plateforme , le point d’entrée racine de l’API est .

    Dans la suite de cette documentation, il y sera fait référence par $API.

    Publier une réutilisation

    Les données mises à disposition sur data.gouv.fr peuvent être réutilisées . Si vous êtes à l’origine d’une réutilisation, vous pouvez la référencer sur la page du jeu de données sur lequel vous vous êtes appuyés.

    Pourquoi référencer une réutilisation ?

    Référencer une réutilisation sur la page d’un jeu de données permet notamment de :

    Etape 4 : Phase de promotion et de maintien

    Lexique : Phase de maintien et de promotion

    La phase de maintien est la dernière phase du cycle de vie d'un schéma. Elle consiste à itérer sur la version actuelle en prenant en compte des évolutions du terrain et des retours des producteurs et des réutilisateurs pour peaufiner la structure du schéma. Elle est étroitement liée à la promotion du schéma qui permettra, grâce à son adoption par le plus grand nombre de parties prenantes, une montée en qualité et en quantité d'utilisations.

    Modifier ou commenter un schéma contribue à faire vivre l'écosystème open data et permettra de vous identifier comme contributeur.rice sur un schéma spécifique.

    Etape 2 : Phase de concertation

    Lexique : Phase de concertation

    La phase de concertation est la phase centrale de la création d’un schéma de données.

    C'est l’étape où plusieurs parties prenantes (producteurs, réutilisateurs, experts métiers et techniques) se rassemblent pour définir et spécifier les éléments essentiels à la constitution du schéma.

    Spécifier un schéma de données

    Pour spécifier un schéma de données, il est nécessaire de définir :

    Pour obtenir ce résultat, il peut être utile de réaliser au préalable un modèle de données qui présente la structuration des informations. La modélisation ne prend pas en compte les contraintes d'implémentation, elle est un outil de dialogue entre les différents intervenants.

    Organiser la collaboration entre les différentes parties prenantes autour d'un schéma de données

    Il est conseillé de :

    Référencer votre schéma de manière anticipée

    Référencer votre schéma sur schema.data.gouv.fr vous permettra de bénéficier de conseils de la part d’Etalab et de ses partenaires institutionnels et associatifs. --> La marche à suivre pour référencer votre schéma est détaillée ici.

    Construire un schéma de données de qualité

    Pour construire un schéma de données de qualité, il est conseillé de :

    • D'un côté les producteurs, qui connaissent la réalité de leurs données, de la collecte, etc. et qui ont leurs propres usages.

    • De l'autre les réutilisateurs, avec leurs besoins et leurs difficultés, qu’ils soient déjà connus, « sous le radar » ou en devenir.

    Exemples à votre disposition

    Il est possible de retrouver des fichiers de schémas sur schema.data.gouv.fr (exemple : le schéma des lieux de stationnement).

    En complément, le guide dédié à la préparation de jeux de données pourrait être utile pour définir votre schéma.

    Points de sortie

    À l’issue de cette phase, vous devriez :

    Pourquoi il est intéressant d'utiliser un schéma de données

    Comment créer un schéma de données

    Comment intégrer un schéma de données à schema.data.gouv.fr

    Comment produire des données en conformité avec un schéma de données

    Comment indiquer et vérifier qu'une ressource respecte un schéma de données

    OpenDataFrance
    Article L300-2 du CRPA
    Article L321-2 du CRPA
    Cliquez sur Un moissonneur.
    le support data.gouv.fr
    data.gouv.fr
    https://demo.data.gouv.fr/
    Connectez-vous à votre compte
    votre tableau de bord
    la section dédiée à votre implémentation dans la documentation de moissonnage
    le support data.gouv.fr

    etc.

    etc.

    etc.

    des données relatives aux élections
    résultats des élections législatives de 2024
    des données relatives à la santé
    base de données publiques sur les médicaments
    des données relatives aux transports et aux mobilités
    base nationale des lieux de stationnement
    des données relatives à l’éducation
    calendrier scolaire
    les loyers
    les offres d’emploi
    les interventions réalisées par les services d’incendie et de secours
    résultats au baccalauréat
    les résultats des contrôles sanitaires dans le secteur alimentaire
    la météo et le climat
    data.gouv.fr
    Pour en savoir plus sur data.gouv.fr
    connaître la production d’énergies renouvelables sur son territoire
    identifier les entreprises en difficulté
    connaître le prix de vente des biens immobiliers
    proposer un parcours d’orientation professionnel
    en parcourant le catalogue de réutilisations référencées sur data.gouv.fr
    “L’open data, c’est quoi ?” - data.europa.eu
    Les données ouvertes, qu’est-ce que c’est ? - data.europa.eu
    Culture générale des données : Open Data et Gouvernement Ouvert - Datactivist
    Ces 10 choses incroyables qui n’existeraient pas sans l’Open Data - Datactivist

    JSON-LD

    https://www.data.gouv.fr/catalog.jsonld

    application/ld+json, application/json

    N-Triples

    https://www.data.gouv.fr/catalog.nt

    application/n-triples

    TriG

    https://www.data.gouv.fr/catalog.trig

    application/trig

    https://www.data.gouv.fr/catalog.xml
    https://www.data.gouv.fr/catalog.ttl
    https://www.data.gouv.fr/catalog.n3
    validateur
    documentation en ligne
    Validateur BAL
    Faites-nous en part dans ce formulaire
    N'hésitez pas à nous faire vos retours pour que nous puissions l'améliorer !

    Trouver des données

    Prendre connaissance et évaluer la qualité de données

    Explorer des données

    Récupérer des données

    Manipuler des données

    Ouvrir, filtrer, nettoyer, croiser, géocoder.

    Analyser des données

    Avec LibreOffice Calc, Python, R.

    Visualiser des données

    Cartographier des données

    Réaliser des projets utiles

    Echanger avec les producteurs de données

    Valoriser ses travaux

    Autres ressources pédagogiques

    ;
  • formulant des retours auprès des producteurs de données pour améliorer la qualité des données ;

  • faisant remonter des retours et besoins techniques concernant la plateforme data.gouv.fr.

  • opendatasoft
  • GeoNetwork (pour les données géographiques)

  • moissonnage
    ville de Paris
    région Occitanie
    ministère de l’éducation nationale et de la jeunesse
    Enedis
    data.gouv.fr
    data.gouv.fr
    meteo.data.gouv.fr
    transport.data.gouv.fr
    ecologie.data.gouv.fr
    data.gouv.fr
    data.gouv.fr
    l’Annuaire des Entreprises
    data.gouv.fr
    data.gouv.fr
    udata
    ckan
    Cours Open Data : Les acteurs de l’open data - Cerema Med (Mathieu Rajerison)
    Schéma de l'architecture et de l'écosystème techniques de l'open data
    transport.data.gouv.fr
    ecologie.data.gouv.fr
    data.gouv.fr
    pour le rapportage au niveau européen.
  • Un double moissonnage est possible pour que les données INSPIRE soient référencées à la fois sur le Geocatalogue et data.gouv.fr. Cela nécessite néanmoins de créer deux points de moissonnage distincts à date.

  • Des moyens sont mis en œuvre de manière continue par les équipe de data.gouv.fr et l'équipe Écosphères du MTECT (Ministère de la Transistion Ecologique et de la Cohésion des Territoires) pour tendre vers la complétude du moissonnage des métadonnées des catalogues des plateformes géographiques.

  • geo.data.gouv.fr
    l'extinction de geo.data.gouv.fr ici
    data.gouv.fr
    data.gouv.fr
    Géo-IDE Catalogue
    DCAT
    data.gouv.fr
    Une documentation est disponible sur GeoNetwork
    cette page dédiée
    une transformation en DCAT
    https://geosas.fr/geonetwork/srv/fre/csw
    documenté sur la doc Geonetwork officielle
    https://geosas.fr/geonetwork/srv/fre/csw
    https://geosas.fr/geonetwork/srv/fre/rdf.search
    CSW avec format DCAT en sortie
    INSPIRE
    Authentification

    De façon à pouvoir exécuter des opérations d’écriture, vous devez commencer par obtenir une clé d’API dans les paramètres de votre profil.

    Cette clé doit être fournie dans l’entête HTTP X-API-KEY à chaque appel en écriture (POST,PUT, PATCH et DELETE).

    Autorisations

    Les appels d’API sont soumis aux même permissions que l’interface web.

    Par exemple, vous devez être membre d’une organisation pour modifier l’un de ses jeux de données.

    Par défaut, un jeu de données créé via l’API est public. Afin de créer et maintenir un jeu de données en brouillon, il faut mettre l’attribut private: true dans chaque appel à l’API. Sinon, chaque modification d’un jeu de données par l’API va le passer en public.

    Formats de données

    Content-type

    Les différents points d’entrée de l’API attendent du JSON (application/json) en entrée et renvoient du JSON en sortie. Les seules exceptions sont les points d’entrée qui gèrent l’upload de fichiers : ils acceptent du multipart/form-data et renvoient du JSON.

    Identifiants d’URL

    À chaque fois que vous pouvez utiliser un identifiant d’objet dans une URL de l’API, vous avez les choix suivants :

    • l’identifiant technique permanent (ex: 5bbb6d6cff66bd4dc17bfd5a)

    • le slug (ex: mon-dataset)

    Par exemple, un dataset 5bbb6d6cff66bd4dc17bfd5a dont le slug est mon-dataset, vous pouvez accéder à l’URL $API/datasets/<dataset>, par:

    • $API/datasets/5bbb6d6cff66bd4dc17bfd5a

    • $API/datasets/mon-dataset

    Le slug d’un objet peut-être amené à changer si le producteur change le nom de l’objet alors que l’identifiant technique lui ne change jamais. Il est donc préférable d’utiliser les identifiants techniques dans les scripts qui doivent être durables et rejouables.

    Listes simples

    Les listes simples sont renvoyées sous forme d’une liste JSON.

    Par exemple, la liste des types de réutilisations:

    Pagination

    Certaines méthodes sont paginées et suivent le même modèle de pagination. La liste d’objets est encapsulée dans un objet Page.

    Vous n’avez pas à calculer vous-même les pages précédentes et suivantes puisque les URL sont disponibles dans la réponse dans les attributs previous_page et next_page. Ils seront définis à null si il n’y a pas de page précédente et/ou suivante.

    Exemple:

    Gestion d’erreurs

    La gestion d’erreur de l’API utilise les codes d’erreur HTTP standards :

    • 400 : requête invalide

    • 401 : authentification requise

    • 403 : permissions insuffisantes

    • 500 : erreur indéfinie côté serveur

    • 502 : le serveur ne répond pas

    Lorsque c’est possible, l’API répondra en JSON avec le format suivant :

    Erreur 423

    En cas d’activités suspectes ou de spams répétés, l’API pourra retourner l’erreur 423, empêchant ainsi toute nouvelle création d’utilisateur ou de contenu, à l’exception des ressources (hors ressources communautaires).

    Support

    Si vous n’arrivez pas à comprendre une erreur, que vous avez besoin de support et souhaitez contacter l’équipe de data.gouv.fr, pensez à fournir les éléments suivants :

    • la requête HTTP effectuée (avec les entêtes HTTP)

    • la réponse éventuelle du serveur (avec ses entêtes)

    • la date et l’heure de la requête

    • un peu de contexte sur la raison de cette requête, son cadre

    Parfois, la réponse en erreur comprend une entête X-Sentry-ID. Pensez à fournir cet identifiant, il nous permettra de comprendre précisement ce qui ne va pas et, si c’est un bug, à le corriger.

    https://www.data.gouv.fr/api/1/
    demo.data.gouv.fr
    https://demo.data.gouv.fr/api/1/
    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
                    xmlns:gmd="http://www.isotc211.org/2005/gmd"
                    service="CSW" version="2.0.2" resultType="results"
                    startPosition="1" maxPosition="10"
                    outputSchema="http://www.isotc211.org/2005/gmd">
          <csw:Query typeNames="csw:Record">
            <csw:ElementSetName>full</csw:ElementSetName>
            <csw:Constraint version="1.1.0">
                <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
                    <ogc:PropertyIsEqualTo>
                        <ogc:PropertyName>dc:type</ogc:PropertyName>
                        <ogc:Literal>dataset</ogc:Literal>
                    </ogc:PropertyIsEqualTo>
                </ogc:Filter>
            </csw:Constraint>
        </csw:Query>
    </csw:GetRecords>
    [
      { "id": "paper", "label": "Papier" },
      { "id": "application", "label": "Application" },
      { "id": "hardware", "label": "Objet connecté" },
      { "id": "api", "label": "API" },
      { "id": "visualization", "label": "Visualisation" },
      { "id": "post", "label": "Article de blog" },
      { "id": "news_article", "label": "Article de presse" },
      { "id": "idea", "label": "Idée" }
    ]
    {
        "data": [{...}, {...}],
        "page": 1,
        "page_size": 20,
        "total": 10,
        "next_page": "https://www.data.gouv.fr/api/endpoint/?page=2",
        "previous_page": null
    }
    {
      "message": "un message d’erreur"
    }
    {
      "message": "Due to unusual activities, the creation of new content is currently disabled."
    }

    Allez sur la page de suivi de l’organisation à laquelle vous souhaitez ajouter un membre, en cliquant sur le nom de votre organisation, dans la colonne de gauche ;

  • Dans le bloc "Membres", sur la droite de votre écran, cliquez sur le bouton "Ajouter" ;

  • Saisissez le prénom et le nom de l’utilisateur à ajouter, puis sélectionnez-le quand vous le voyez apparaître dans la liste ;

  • Définissez le niveau de permission que vous souhaitez accorder à ce nouveau membre, en le faisant "Admin" (administrateur) ou "Editor" (éditeur) ;

  • Cliquez sur le bouton Valider pour valider l’ajout du membre.

  • Si l'utilisateur a déjà réalisé une demande, vous pouvez la valider. Pour ce faire :

    1. Connectez-vous à votre compte ;

    2. Rendez-vous sur votre tableau de bord, en cliquant sur "Administration" en haut à droite de votre écran ;

    3. Cliquez sur l’icône en forme d’enveloppe qui se trouve en haut à droite de votre écran ;

    4. Cliquez sur la ligne Demande d’adhésion en attente ;

    5. Dans le bloc "Membres", cliquez sur le bouton vert en forme de v pour accepter la demande — ou sur le bouton rouge (x) pour la rejeter

    Allez sur la page de suivi de l’organisation à laquelle vous souhaitez retirer un membre, en cliquant sur le nom de votre organisation, dans la colonne de gauche ;

  • Dans le bloc "Membres", sur la droite de votre écran, cliquez sur le nom du membre que vous souhaitez retirer ;

  • Dans la fenêtre qui s’ouvre, cliquez sur "Supprimer" ;

  • Rafraichissez votre page pour constater le retrait du membre.

  • Publier des jeux de données au nom de l’organisation

    ✅

    ✅

    Référencer des réutilisations au nom de l’organisation

    ✅

    ✅

    Répondre aux commentaires associés aux jeux de données

    ✅

    ✅

    Modifier des jeux de données existants

    ✅

    ✅

    Consulter les demandes d’adhésion à l’organisation

    ✅

    ✅

    Ajouter des utilisateurs à l’organisation

    ❌

    ✅

    Accepter ou valider les demandes d’adhésion à l’organisation

    ❌

    ✅

    Retirer un utilisateur d’une organisation

    ❌

    ✅

    Supprimer l’organisation

    ❌

    ✅

    Connectez-vous à votre compte
    votre tableau de bord
    Connectez-vous à votre compte
    votre tableau de bord
    Donner de la visibilité à la réutilisation et démontrer son savoir-faire ;
  • Apporter de l’information au public ;

  • Engager un dialogue avec le producteur du jeu de données qui sera plus enclin à répondre aux demandes quand il peut constater de l’usage qui est fait des données.

  • Montrer comment le jeu de données peut être réutilisé et inspirer d’autres réutilisations potentielles ;

  • Faire avancer l’open data en participant à affirmer l’importance de l’ouverture des données publiques.

  • La procédure pour publier une réutilisation sur data.gouv.fr est la suivante :

    1. Définir qui publie la réutilisation

    Nous vous conseillons de publier une réutilisation sous le nom de votre compte utilisateur que si elle n’a pas été produite dans le cadre des activités d’une organisation à laquelle vous êtes rattaché.

    2. Décrire la réutilisation

    Une bonne description est essentielle au bon référencement. Lors de la publication de votre réutilisation, vous aurez ainsi à détailler les champs suivants :

    Information
    Description de l'information

    Titre*

    Préférez un titre qui permet de comprendre l’usage qui est fait des données plutôt que le nom du site ou de l’application (« Moteur de recherche des accords d’entreprises » plutôt que « Accords-entreprise.fr » par exemple).

    URL*

    Saisissez le lien de la page sur laquelle la réutilisation est visible. Pointer plutôt vers la réutilisation en elle même que sur une page d'accueil. Assurez-vous que le lien soit stable dans le temps.

    Type*

    Indiquez le type dans lequel ranger la réutilisation (API, application, article de presse, visualisation, etc.).

    Description*

    Vous pouvez renseigner notamment la méthode de création de la réutilisation, ce que la réutilisation permet de faire ou de montrer ou encore en dire plus sur vous et sur le contexte de cette réutilisation. Il est préférable de garder un ton neutre : si la réutilisation ressemble trop à un message promotionnel il est possible que nous la supprimions.

    Mots clés

    Les mots clés apparaissent sur la page de présentation et apportent un meilleur référencement lors d’une recherche utilisateur.

    À partir de chaque mot clé, vous pouvez obtenir la liste des réutilisations pour lesquelles le mot clé a également été assigné.

    *Les champs identifiés par un astérisque sont obligatoires.

    3. Associer des jeux de données à la réutilisation

    Par défaut, votre réutilisation sera liée au jeu de données qui vous a servi de point de départ. Mais si votre réutilisation a exploité d’autres jeux de données, vous pouvez les associer à votre réutilisation à cette étape.

    Il est important d’associer tous les jeux de données utilisés, car cela permet de comprendre les croisements qui ont été nécessaires et d’améliorer la visibilité de votre réutilisation.

    4. Insérer une image

    Si votre réutilisation prend la forme d’une représentation graphique, vous pouvez en donner un aperçu aux autres utilisateurs au moyen d’une image ou d’une capture d’écran. Cette image figurera dans la partie Réutilisations de la page du jeu de donnée associé.

    Lorsque c’est pertinent, les captures d’écrans permettent de mieux rendre compte de ce qu’est la réutilisation, elles sont donc préférables aux logos ou aux illustrations par exemple.

    5. Faire connaitre sa réutilisation

    Une fois votre réutilisation publiée, nous vous conseillons de la partager sur les réseaux sociaux. N’hésitez pas à mentionner data.gouv.fr sur Twitter. Nous mettons tous les mois en avant nos réutilisations préférées dans un article ainsi que sur les réseaux sociaux, n’hésitez pas à y faire un tour pour voir si vous y figurez !

    Le tutoriel suivant vous guide dans la publication d'une réutilisation sur data.gouv.fr :

    Comment publier une réutilisation ?
    1. Rendez-vous sur : data.gouv.fr/fr/admin/ ;

    2. Cliquer en haut à droite sur le bouton plus et choisir "une réutilisation" ;

    3. Choisissez l'identité avec laquelle vous souhaitez publier ;

    4. Remplissez les informations ;

    selon les termes définis dans la licence qui leur est associée
    Promouvoir un schéma de données

    De nouveaux acteurs peuvent vouloir publier des données qui rentrent dans le cadre de votre schéma, mais peuvent ne pas en avoir connaissance, ou ne pas avoir les compétences techniques pour se l'approprier.

    Pour faciliter l'adoption d'un schéma de données, il est possible de :

    Des scripts ont été mis au point par les équipes d'Etalab pour permettre de vérifier et d'agréger toutes les données publiées par type de schéma et ainsi créer des fichiers consolidés à l'échelle nationale (i.e. données IRVE). Cela permet à des solutions à grande échelle d'émerger.

    Maintenir un schéma de données

    Aussi exhaustive qu'ait été la phase de concertation, il est probable que des corrections ou des évolutions du schéma soient nécessaires afin de le rendre plus précis ou plus accessible par exemple.

    Clarifications de la documentation, corrections d’erreurs, évolutions du cadre réglementaire, etc. sont autant de raisons où il est indispensable de mettre en œuvre une nouvelle version.

    schema.data.gouv.fr récupère le contenu de votre dépôt via des releases de celui-ci, c'est à dire des versions packagées de votre code (schéma + documentation). Avec ce système, il est alors possible pour schema.data.gouv.fr de suivre l'évolution formelle de votre schéma et d'en référencer les différentes versions au cours du temps. Cela permet également aux contributeurs de considérer les branches du dépôt Github qui héberge le schéma (main ou autre) comme un espace de développement participatif qui reste dissocié du référencement sur schema.data.gouv.fr tant qu'une nouvelle version n'est pas publiée.

    Une fois que l'état de votre branche principale, main par exemple, vous conviendra, vous pourrez sur Github ou Gitlab créer une release. Pour cela, il suffit d'ajouter un tag et une version correspondant à la nouvelle version que vous souhaitez publier. Celle-ci sera par la suite automatiquement récupérée par schema.data.gouv.fr et publiée (généralement sous 24h).

    Si un schéma que vous maintenez doit être modifié, la marche à suivre peut être la suivante :

    1. faire une nouvelle phase de concertation afin d'évoquer les problématiques qui imposent un changement et de trouver la solution la plus adaptée. Si vous n'avez pas d'espace pour cela, nous vous conseillons de publier une issue sur le dépôt Github de schema.data.gouv.fr.

    2. lorsqu'un accord est trouvé, mettre à jour techniquement le schéma lui-même (cf. le paragraphe ci-après);

    3. mettre à jour la documentation du schéma ;

    4. déployer les mises à jour sous un nouveau tag de version ;

    5. communiquer sur cette mise à jour.

    Lorsque les modifications à faire à un schéma font consensus, il est nécessaire de les implémenter et de déployer une nouvelle version. La marche à suivre peut être la suivante :

    1. répertorier tous les changements à faire avant de les implémenter : anticiper l'impact sur les fichiers techniques et sur la documentation (notamment l'incrémentation de la version)

    2. faire les modifications listées à l'étape précédente :

      • en local, puis pousser les changements avec les commandes git (add, commit et push)

      • ou directement sur Github

    3. créer une release (nouvelle version) :

      • sur la page Github de votre schéma, cliquer sur X tags (à côté des branches) : ici sont listées toutes les versions du schéma

      • cliquer sur Releases puis Draft a new release

    Que ce soit pour des considérations techniques ou "conceptuelles", il est possible de solliciter les équipes de schema.data.gouv.fr qui pourront vous accompagner dans le processus de mise à jour de votre schéma.

    Points de sortie

    À l’issue de cette phase, vous devriez :

    conditions générales d’utilisation du service
    page d’accueil du site data.gouv.fr

    Référence

    Ceci est la documentation de référence de l’API de data.gouv.fr. Elle est auto-générée et reflète exactement ce qui est effectivement en production.

    Il est recommandé d’avoir lu l'introduction et la page prise en main de l'API avant de consulter cette page.

    Etape 3 : Phase de construction

    Lexique : Phase de construction

    La phase de construction consiste à implémenter techniquement le schéma de données obtenu après la phase de concertation. Pour cela, il est nécessaire de choisir un standard technique, créer les fichiers requis, les tester et les diffuser.

    Durant cette phase, il est nécessaire de mobiliser des personnes possédant des compétences techniques. Cette phase consiste à transcrire les décisions prises lors de la phase de concertation en un ou plusieurs schémas de données suivant le découpage en fichiers retenu.

    Choisir un standard technique pour la description d'un schéma de données

    Lexique : Standard

    On utilise les termes « normes » et « standards » pour décrire un référentiel commun et documenté destiné à harmoniser l’activité d’un secteur.

    Il existe plusieurs standards techniques pour les schémas de données.

    Le standard est à choisir en fonction :

    • de la nature des données concernées ;

    • des habitudes de l’écosystème produisant ou réutilisant les données liées au schéma.

    Les principaux standards techniques sont les suivants :

    • : adapté pour la description de données tabulaires (sous forme de tableurs ou de CSV). Ce standard technique utilise le format JSON. NB : il est possible de contraindre les colonnes avec ;

    • : adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format JSON ,

    • : adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format XML.

    Tous ces standards techniques sont supportés par .

    Conseil : Aller au-delà de la documentation texte

    Un schéma de données décrit uniquement par du texte ou par un tableau se prive de nombreux avantages, notamment celui de l'interopérabilité entre différents systèmes informatiques.

    Les schémas de données décrits par des standards techniques permettent, en plus d’une documentation textuelle ou sous forme d’un tableau, de valider que des données correspondent à un modèle de données, d’agréger des données similaires, de générer automatiquement des données respectant un schéma.

    Créer un schéma de données

    Une fois un standard technique choisi, il faudra créer les fichiers requis pour modéliser les données.

    La documentation de chaque standard technique décrit le contenu des fichiers à renseigner. Reportez-vous aux documentations respectives pour tirer parti des fonctionnalités avancées offertes : types de données et contraintes sur les valeurs en particulier.

    Il est possible de vérifier qu’un fichier correspond à un standard à l’aide d’outils en ligne ou en ligne de commande. Utilisez ces outils pour vérifier que vos productions correspondent au standard.

    Exemples à votre disposition

    Pour un schéma au format Table Schema, est mis à disposition pour créer un dépôt Git contenant un schéma au format Table Schema.

    Pour les autres formats de schémas, il est conseillé de consulter les schémas et dépôts Git listés sur .

    Documenter un schéma de données

    En complément du fichier du schéma de données, il est recommandé de rédiger a minima deux documents complémentaires :

    • Une documentation générale qui indique le contexte, les modalités de production des données, le cadre juridique, la finalité, les cas d’usage etc. Ce fichier est traditionnellement rédigé en Markdown et nommé README.md ;

    • Un fichier répertoriant les changements permettant de suivre les modifications, d’une version à une autre. Ce fichier est traditionnellement rédigé en Markdown et nommé CHANGELOG.md.

    La présence de ces fichiers représente un package complet (documentation, liste des changements et schéma de données décrit dans un standard technique), apprécié des réutilisateurs. se repose sur ces éléments pour intégrer votre documentation et votre liste de changements sur une page web.

    Exemple : et du schéma des lieux de stationnement.

    Publier et diffuser un schéma de données

    Une fois votre schéma de données créé, il est nécessaire de le publier et de le diffuser pour que d’autres personnes puissent en bénéficier.

    Il est recommandé de publier vos schémas de données en tant que logiciels libres, sur votre forge de développement ou par le biais de ou .

    Vous bénéficierez alors des avantages habituels des dépôts de code Git en ligne :

    • Historique des modifications

    • Fonctionnalités de tickets

    • Demandes de modifications.

    • etc.

    Il est conseillé d'utiliser un compte d’organisation (dédié à votre entreprise, direction, service, ministère) et non un compte personnel afin d’assurer une URL stable dans le temps.

    Exemples à votre disposition : Plusieurs dépôts Git de schémas sont disponibles sur (exemple : à l’aide d’un schéma TableSchema sur GitHub).

    Pour faciliter la découverte de votre schéma de données et des données sous-jacentes, il est recommandé de le faire référencer sur . La marche à suivre est détaillée .

    Points de sortie

    À l’issue de cette phase, vous devriez :

    Statistiques

    Consultez et téléchargez les statistiques de vos publications

    Comment accéder aux statistiques sur data.gouv.fr ?

    Vous trouverez les statistiques dans l’onglet "Informations".

    Les statistiques suivantes sont affichées pour les 12 derniers mois et elles sont mises à jour quotidiennement :

    • Des statistiques générales

    Intégrer un schéma de données à schema.data.gouv.fr

    Qu'est-ce que schema.data.gouv.fr ?

    est l’initiative de de référencement des schémas de données publiques pour la France.

    Cette plateforme de référencement national permet un accès aux schémas produits par différents acteurs et facilite l’intégration avec des systèmes informatiques par le biais de standards, d’URLs stables, de processus de validation et d’API.

    indiquer le nom de la nouvelle version dans Choose a tag : par exemple si la version actuelle est v1.0.1, la nouvelle sera v1.0.2 (dans certains cas, il sera opportun de passer en 1.1.1 ou en 2.0.1)

  • la branche cible (target) doit être la branche principale, si des développements ont été faits sur d'autres branches, il est nécessaire de les fusionner - merge - avec la branche principale via une pull request (après validation des modifications)

  • documenter la nouvelle version : ajouter un titre et une description exhaustive des changements dans les champs dédiés, juste avant la publication

  • publier la release (Publish release)

  • /site

    /datasets

    /dataservices

    /reuses

    /discussions

    /organizations

    /spatial

    /users

    /me

    /workers

    /tags

    /topics

    /posts

    /transfer

    /notifications

    /avatars

    /harvest

    /contacts

    Table Schema
    des formats spécifiques et des corrélations
    JSON Schema
    XML Schema Definition (XSD)
    schema.data.gouv.fr
    un modèle de départ
    schema.data.gouv.fr
    schema.data.gouv.fr
    La documentation
    la liste des changements
    GitLab
    GitHub
    schema.data.gouv.fr
    le dépôt Git décrivant les lieux de stationnement
    schema.data.gouv.fr
    ici
    schema.data.gouv.fr

    Nombre de jeux de données publiés par l’organisation

  • Nombre de réutilisations publiées par l’organisation

  • Des statistiques sur les jeux de données de l'organisation

    • Nombre de visites sur l’ensemble des jeux de données

    • Nombre total de téléchargements des ressources

    • Nombre de réutilisations référencées sur les jeux de données de l’organisation

    • Nombre d’utilisateurs ayant placé des jeux de données de l’organisation parmi leur favoris

  • Des statistiques sur les réutilisations publiées par l’organisation

    • Nombre de visites sur l’ensemble des réutilisations publiées par l’organisation

    • Nombre d’utilisateurs ayant placé des réutilisations de l’organisation parmi leur favoris

  • Pour chacune des statistiques :

    • Un graphique donne une idée générale de l’évolution sur l’année

    • Une indication de la variation sur le mois en cours est fournie

    Il est possible de télécharger les statistiques au format csv (tabulaire). Celles-ci sont disponibles avec les colonnes suivantes :

    Nom de la colonne
    Description

    __id

    Identifiant technique

    organization_id

    Identifiant de l’organisation

    metric_month

    Mois durant lequel la mesure a été effectuée

    monthly_visit_dataset

    Nombre de visites sur l’ensemble des jeux de données sur le mois en question

    monthly_download_resource

    Nombre de téléchargements sur l’ensemble des fichiers sur le mois en question (manuel et automatisé)

    Si vous souhaitez accéder au détail des statistiques sur l’ensemble de vos jeux de données, vous pouvez télécharger votre catalogue. Vous aurez alors accès aux statistiques consolidées depuis juillet 2022.

    Exemple des statistiques du au 4 décembre 2023.

    Vous trouverez les statistiques dans l’onglet "Informations".

    Les statistiques suivantes sont affichées pour les 12 derniers mois et elles sont mises à jour quotidiennement :

    • Nombre de visites

    • Nombre de téléchargements (manuel et automatisé) des fichiers et ressources

    • Nombre de réutilisations référencées sur ce jeu de données

    • Nombre d’utilisateurs ayant placé ce jeu de données parmi leurs favoris

    Pour chacune des statistiques :

    • Un graphique donne une idée générale de l’évolution sur l’année

    • une indication de la variation sur le mois en cours est fournie

    Il est possible de télécharger les statistiques au format csv (tabulaire). Celles-ci sont disponibles avec les colonnes suivantes :

    Nom de la colonne
    Description

    Vous trouverez les statistiques en dessous de la liste des jeux de données associés à la réutilisation.

    Les statistiques suivantes sont affichées pour les 12 derniers mois et elles sont mises à jour quotidiennement :

    • Nombre de visites

    • Nombre d’utilisateurs ayant placé cette réutilisation parmi leurs favoris

    Pour chacune des statistiques :

    • Un graphique donne une idée générale de l’évolution sur l’année

    • Une indication de la variation sur le mois en cours est fournie

    Il est possible de télécharger les statistiques au format csv (tabulaire). Celles-ci sont disponibles avec les colonnes suivantes :

    Nom de la colonne
    Description

    Un tableau de bord sur l’ensemble de data.gouv.fr est également disponible. Celui-ci présente les statistiques de la plateforme pour les 12 derniers mois, elles sont mise à jour quotidiennement.

    Page d'accueil de schema.data.gouv.fr

    Qui peut référencer des schémas de données ?

    Tout acteur est libre de proposer le référencement de schémas sur schema.data.gouv.fr : administration, entreprise privée, association, citoyen, etc.

    Quels schémas de données sont acceptés ?

    Schémas de données acceptés sur schema.data.gouv.fr

    • Des schémas de données décrivant des données publiques.

    Les schémas de données sont acceptés dès lors que leur l’existence est justifiée par voie :

    • réglementaire : c'est une disposition réglementaire qui est à l'origine de la définition du schéma de données ;

    • d’usage : la réutilisation des données décrites par le schéma bénéficie à un grand nombre ou de nombreux producteurs sont amenés à utiliser ce schéma de données.

    • Des schémas de données décrits par un standard technique (cf. page "Phase de construction") : les schémas de données décrits uniquement par de la documentation textuelle ou des tableaux ne sont pas acceptés.

    Standards techniques supportés

    Les standards techniques de schémas de données actuellement supportés sont les suivants :

    • Table Schema : adapté pour la description de données tabulaires (sous forme de tableurs ou de CSV). Ce standard technique utilise le format JSON.

    • : adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format JSON.

    • : adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format XML.

    Prérequis de validation des schémas de données sur schema.data.gouv.fr

    Lexique : Validation d’un schéma de données

    La validation d’un schéma de données est l’étape qui permet de vérifier si celui-ci est conforme au standard technique sélectionné et aux prérequis de schema.data.gouv.fr. Cette étape s’intéresse uniquement au schéma de données et à la façon dont il est publié.

    Il ne faut pas confondre la validation d’un schéma avec le fait de vérifier que des données correspondent à un schéma.

    Pour tous les types de schéma de données, il faut que :

    Critères complets de validation

    Cette page présente les grands principes de validation des schémas de données.

    Le détail des prérequis propres à chaque type de schéma de données, ainsi que des exemples, sont disponibles ici.

    Etalab se réserve le droit de refuser le référencement de schémas en motivant son refus. Il est encouragé d'initier une discussion préalablement à l’ouverture d’une pull request.

    Quand référencer un schéma de données ?

    Il est recommandé de référencer un schéma de données le plus tôt possible, dès la phase d’investigation.

    En référençant celui-ci en amont, vous bénéficierez de l’accompagnement d’Etalab et de partenaires tout au long de la création de votre schéma de données : de l'investigation au référencement sur schema.data.gouv.fr.

    Comment référencer un schéma de données ?

    Pour référencer un schéma de données, vous pouvez :

    • ouvrir un ticket sur GitHub

    • entrer en contact avec notre équipe par e-mail

    Une page dédiée détaille la procédure.

    Une liste de schémas de données actuellement en phase d'investigation ou de construction est tenue à jour sur cette même page.

    schema.data.gouv.fr
    data.gouv.fr

    Mode brouillon

    L’activation du mode brouillon permet de ne pas mettre en ligne la réutilisation. Cela laisse la possibilité de l’éditer avant sa publication.

    Doctrine des API

    Ce guide référence la doctrine des API dans les administrations.

    Pourquoi une doctrine pour les API ?

    Élaboré par la DINUM avec les administrateurs ministériels des données, des algorithmes et des codes sources (AMDAC), ce cadre de recommandations précise le cadre d’action et identifie les bonnes pratiques à poursuivre en matière d’usage et d’exposition d’API par les administrations. L’objectif : favoriser le partage de données entre elles et ainsi faciliter les démarches des usagers.

    6 enjeux stratégiques

    6 enjeux stratégiques ont été identifiés afin de répondre au mieux aux besoins des utilisateurs, qu’il s’agisse d’administrations ou d’usagers, tout en s’intéressant à la gestion du service proposé.

    • - Catalogue de données et services disponibles

      • Gestion des habilitations d'accès aux API à accès restreint - .

      • Bac à sable d'expérimentation public -


    🔭 Découvrabilité

    Cette partie concerne à la fois la visibilité de l'API qui doit être exposée dans les catalogues de données adéquats, ainsi que la découvrabilité de la donnée elle-même qui doit être documentée pour être réellement accessible.

    Recommandation 1

    En complément de la description, les données et services publiquement accessibles sont visibles sur un catalogue exposé sur Internet, référencé sur les moteurs de recherche usuels et intelligibles (la description des API au sein du catalogue ou de l’API manager propose un contenu destiné aux opérationnels, fonctionnels comme techniques).

    La description d’une donnée doit référencer les API qui l’exposent. L’exemple ci-dessous présente les API disponibles pour la , sur la page correspondant à ce jeu de données sur data.gouv.fr :

    Exemples:

    • (anciennement API.gouv.fr) vise à référencer toutes les API publiques de l’État ;

    • vise à référencer toute la verticale métier des finances publiques.

    • vise à référencer toutes les API délivrant des données administratives des entreprises et des associations. De même pour, pour les données administratives des particuliers.

    Recommandation 2

    Pour chaque API exposée, sont disponibles :

    • Une documentation fonctionnelle présentant la sémantique des données, leur qualité ainsi que leur source et leurs propriétés usuelles. Elle explicite également le processus de demande d’accès et l’éligibilité des réutilisateurs. Si un catalogue existe, un lien vers la description de la donnée est proposé ;

    • Une documentation technique présentant les modalités d’interrogation et de récupération de la donnée ;

    • Les conditions générales d’utilisation précisant les conditions contractuelles d’accès à l’API ;

    La description d’une API décrit également les périodes de validité de l’interface (cf. recommandation s 7 & 8) et son niveau de service (cf. recommandations 10 & 11).

    🔑Accès à la donnée

    Recommandation 3

    L’accès aux API à accès restreint se fait par demande du réutilisateur (administrations, éditeurs, entreprises…).

    Les API peuvent s’appuyer sur un mécanisme d’authentification de l’utilisateur final assurant une gestion des droits au sein de la plateforme qui les fournit. Les dispositifs d’authentification des citoyens, des agents ou des personnes morales conçus par les pouvoirs publics pourront être utilisés, en particulier lorsque le consentement de l’utilisateur est nécessaire pour faire circuler la donnée :

    • Pour les personnes physiques : FranceConnect, ProConnect, EduConnect

    Recommandation 4

    Si le droit d’accès n’est pas préétabli, le processus de demande se fait de la manière la plus simple possible pour le réutilisateur.

    Dans le cadre de demandes d’accès prévues par la loi et si le demandeur est éligible, une réponse sera transmise aux réutilisateurs dans un délai recommandé de 15 jours calendaires. Le code des relations entre le public et l’administration prévoit un délai légal maximum de 30 jours pour répondre à une demande .

    Ressource utile :

    Recommandation 5

    A chaque API devrait correspondre une version “bac à sable”, accessible en fonction du caractère des données ouvertes ou en accès restreint, exposant une version fictive des données et présentant les mêmes modalités techniques d’exposition.

    Pour les API ouvertes, le bac à sable potentiel est accessible au grand public, sans demande préalable du réutilisateur. Pour les API à accès restreint, le bac à sable contenant des données fictives pourrait être accessible au réutilisateur après demande d’un jeton au fournisseur de données, bien que cette pratique ne soit pas recommandée.

    👷🏻‍♂️ Exploitation des données

    Recommandation 6

    Les données et services sont exposés selon des standards techniques communément partagés et adoptés afin de faciliter l'interopérabilité.

    En 2022, le principe d’architecture et d’encodage le plus connu et pratiqué est le standard REST Json pour les API synchrones. Il est utilisé par exemple pour les spécifications du standard OpenAPI () ou les standards "API" de l'OGC (). Concernant les API asynchrones, le principe AsyncAPI est le plus répandu.

    👍 Bonne pratique : L’approche « contract first », par opposition à l’approche « code first », est recommandée dans le développement de nouvelles interfaces car elle permet de les stabiliser et de faire travailler plusieurs équipes en parallèle au sein d’une même architecture.

    Recommandation 7

    Les données et services sont exposés selon une interface (modalités d’appel et structuration des données échangées) définie pour une période donnée.

    Les développements Agile ou nécessitant une évolution prévisible seront rendus identifiables et préciseront une période de validité courte de 1 à 2 mois.

    Recommandation 8

    Ces périodes de validité de l’interface sont explicitement présentées aux réutilisateurs dans la documentation. Les modifications prévisibles s’accompagneront de l’actualisation préalable des informations descriptives intégrant des liens vers des communications et guides permettant aux réutilisateurs d’anticiper les évolutions.

    Les réutilisateurs pourront basculer durant une période définie et communiquée sur la version modifiée de l’interface. Durant ce laps de temps, deux interfaces cohabiteront, la version précédente dépréciée et la nouvelle version.

    Le détail de ces informations sera présenté en détail dans les conditions générales d’utilisation de l’API.

    Recommandation 9

    Toute modification non rétro-compatible pose un versionning en tant que version majeure et une cohabitation de l’ancien et du nouveau modèle pendant une période de recouvrement. Celle-ci doit être communiquée à l’avance en diffusant le nouveau contrat d’interface de l’API. A défaut d’information préalable ou d’accord des réutilisateurs, la période de cohabitation sera comprise entre 6 mois et 1 an.

    Si une évolution de la donnée interdit le maintien de l’ensemble des fonctionnalités de l’API (exemple : modification d’un schéma avec abandon de certaines informations), il sera indiqué quelles requêtes ou parties du protocole seront maintenues.

    👌 Qualité de service

    Recommandation 10

    La charge admise par une API est consultable en toute transparence par les réutilisateurs :

    1. Dans le cas d’une API authentifiée, la charge est exprimée sous forme de métriques propres à chaque réutilisateur, comme le nombre d’appels sur une période donnée par exemple ;

    2. Dans le cas d’une API non authentifiée, la charge tenable est exprimée dans son ensemble, tous réutilisateurs confondus ;

    3. Dans le cas d’une infrastructure permettant, via une API, des requêtes complexes, ou servant de nombreuses données, la charge tenable estimée indiquera les critères utilisés et le caractère estimatif de cette évaluation ;

    4. Dans le cas d’une API sujette à des fortes évolutions en fonction de la saisonnalité, le temps de réponse maximal sera précisé ainsi que les risques de rupture de service.

    Recommandation 11

    Les temps de réponse moyens et maximaux sont présentés dans la documentation de l’API. Les temps de réponse mesurés ou estimés sont fournis à titre indicatif et non contractuel. Tout autre démarche relève d’un d’accord entre le fournisseur d’API et les réutilisateurs en fonction de leurs cas d’usages.

    Recommandation 12

    L’état de l’API représente sa capacité à être appelée dans les conditions réelles par un réutilisateur. Il est rendu accessible aux réutilisateurs et consultable en temps réel sous forme d’une URL, indiquée dans la description de l’API, permettant de tester que l'API se déclare disponible et requetable. En complément, il est souhaitable de permettre de consulter un historique entre 6 mois et une année.

    Exemple pour l'API Particulier

    La disponibilité de l'API Particulier est accessible à cette page :

    Recommandation 13

    Les consommations des API sont enregistrées pour être ensuite restituées aux bénéficiaires (réutilisateur, producteur, API managers ou exploitants).

    👍 Bonne pratique : les bénéficiaires ont accès à travers un portail à une restitution en temps réel ou ponctuelle de ces statistiques de consommation des données ainsi que celles des autres bénéficiaires.

    🩺 Curation de la donnée

    Recommandation 14

    Les réutilisateurs disposent d’un moyen technique ou organisationnel leur permettant de faire des retours sur la qualité des données vers leur gestionnaire ou via la description des données au sein de leur catalogue d’origine.

    Les réutilisateurs disposent également d’un moyen technique ou organisationnel leur permettant de faire des retours sur la qualité des API exposées vers leur fournisseur ou via la description de l’API.

    💡 Exemple : Le dispositif Datapass pouvant être utilisé par les API en accès restreint permet de faire un retour sur la qualité des données disponibles via celles-ci.

    💶 Modèle économique

    Recommandation 15

    L’accès à la donnée et aux services doit être égalitaire. Les fournisseurs de données cherchent à adapter les modalités d’accès aux besoins des réutilisateurs.

    Recommandation 16

    Les données ainsi que les API sont mises à disposition gratuitement, pour les réutilisateurs uniquement, sauf exceptions devant faire l’objet d’une justification par l’administration productrice.

    💡 Exemple : Dans le cas où des usages nécessiteraient une qualité de service au-dessus de ce que la multitude d’utilisateurs a couramment besoin, comme par exemple une bande passante élevée pour de la donnée temps-réel volumineuse desservie sur quelques organismes, il sera possible d’organiser un système freemium avec une égalité d’accès à des APIs par défaut et des APIs faisant l’objet de redevances pour les usages les plus exigeants.

    Publier un jeu de données

    En amont de la publication de données sur data.gouv.fr, il est important de bien préparer le jeu de données. Pour ce faire, nous vous invitons à consulter .

    Plusieurs modes de mises en ligne sont possibles sur la plateforme data.gouv.fr :

    • Publication manuelle sur data.gouv.fr

    Tutoriel d'utilisation

    Si vous souhaitez utiliser python pour gérer vos jeux de données, l'équipe de data.gouv.fr maintient un package qui facilite les interactions : . Son fonctionnement est détaillé dans .

    Tous les exemples utilisent et pour faciliter la lisibilité. Vous n’êtes pas contraint d’utiliser ces bibliothèques pour votre code, ce sont juste des outils pour mieux comprendre l’API.

    Vérifier que httpie fonctionne

    Quelles sont les obligations ?

    Voici une synthèse des principales obligations de diffusion des documents administratifs, et donc d'ouverture de données.

    Quel est le cadre juridique de l'open data ?

    Le cadre juridique de l’open data public repose principalement sur les textes applicables en matière d'accès, de diffusion et de réutilisation des documents administratifs

    👷🏻‍♂️ Exploitation des données

    • Utilisation des standards technologiques du moment pour faciliter l'interopérabilité - Reco. 6

    • Stabilité du modèle d'interfaces - Reco. 7, 8 & 9

  • 👌 Qualité de service

    • Indication du temps de réponse et de la tenue en charge - Reco. 10 & 11

    • Transparence sur la disponibilité de l'API - Reco. 12

    • Suivi des consommations des données et services - Reco. 13

  • 🩺 Curation de la donnée

  • 💶 Modèle économique - gratuité de la donnée et de l'exposition

  • 👉 Voir le cadre interministériel d’administration de la donnée, publié en septembre 2021
    🔭 Découvrabilité
    🔑 Accès à la donnée
    Reco. 3 & 4
    Reco. 5
    base Sirene des entreprises et de leurs établissements
    Data.gouv.fr/dataservices
    API Impôt Particulier
    API Entreprise
    API Particulier
    (article R311-13)
    🔎 DataPass : Délivrer des habilitations juridiques d'accès aux données de l'État
    https://spec.openapis.org/oas/v3.1.0
    https://ogcapi.ogc.org
    https://status.particulier.api.gouv.fr/
    JSON Schema
    XML Schema Definition (XSD)
    Une fois httpie installé, vous pouvez vérifier qu’il fonctionne comme convenu en tapant cette commande dans votre terminal :

    Cela doit retourner une réponse de ce style :

    C’est très verbeux et nous n’avons pas besoin de toute cette information pour l’instant. C’est la raison pour laquelle nous utilisons jq.

    Vérifier que jq fonctionne

    Une fois jq installé, vous pouvez vérifier qu’il fonctionne en tapant cette commande dans votre terminal :

    Cela doit retourner une réponse de ce style :

    C’est bien mieux ! Maintenant que tout fonctionne bien, réduisons un peu la taille de notre ligne de commande :

    La commande précédente est maintenant équivalente à la commande plus lisible (ne pas oublier les apostrophes) :

    C’est un bon début, maintenant plongeons dans l’API en elle-même. Nous ne le savons pas encore mais nous avons déjà récupéré notre première organisation.

    Parcourir et récupérer des données

    Vous pouvez récupérer une liste d’organisations (filtrée ou non) ou une organisation unitaire. Lorsque vous récupérez un point d’accès, le nombre d’éléments par page par défaut est de 20. Récupérons les 20 premières organisations via l’API :

    C’est une bonne chose d’avoir cette liste mais que se passe-t-il si nous souhaitons parcourir les organisations retournées ? Récupérons les 5 premières URI d’organisations.

    Maintenant, nous sommes capables de récupérer une organisation seulement via l’URI retournée.

    Cela fait beaucoup de données à parcourir. Affinons ces données, si nous voulons seulement extraire les métriques :

    Ou peut-être juste le nom des membres de cette organisation :

    Il est vraiment de votre ressort de récupérer les données pertinentes pour votre projet. N’hésitez pas à consulter le tutoriel de jq et son manuel si vous voulez parcourir l’API via la ligne de commande plus en détail.

    Modifier et supprimer des données

    Attention, vous entrez dans une zone de danger. Les modifications et suppressions de données via l’API sont définitives et nous ne proposons pas de bac à sable pour faire des tests avant de les exécuter (pour l’instant). Soyez conscient de ces responsabilités avant d’utiliser vos super pouvoirs.

    Si vous tentez de modifier une ressource sans le token d’authentification, une erreur 401 sera renvoyée :

    Vous devez spécifier votre Clé d’API (voir ci-dessus) et utiliser le header HTTP X-API-KEY. Si vous tentez de modifier une ressource que vous ne contrôlez pas, une erreur 400 sera retournée :

    C’est le message que vous obtiendrez si vous avez spécifié une mauvaise clé d’API. C’est un autre message d’erreur potentiel que vous pouvez rencontrer.

    Cela arrive si vous essayez d’accéder à une ressource que vous ne pouvez éditer avec vos accréditations. Si votre clé est valide vous devriez obtenir quelque chose comme ça:

    Mais ça ne change pas tout ! C’est parfaitement normal, nous avons oublié de spécifier la bonne donnée à envoyer au serveur.

    La ressource a été modifiée avec vos nouvelles valeurs. Finalement, vous pouvez supprimer une ressource avec le verbe HTTP approprié (attention, aucun retour arrière n’est possible en utilisant l’API pour le moment):

    Une fois effectué, vous pouvez vérifier que c’est effectif en envoyant un GET sur l’URL précédente:

    datagouv-client
    la section suivante
    httpie
    jq
    $ http 'https://www.data.gouv.fr/api/1/organizations/?page_size=1'
    HTTP/1.1 200 OK
    Access-Control-Allow-Credentials: true
    ... LOTS OF HEADERS ...
    
    {
        "data": [
            {
    
                ... LOTS OF DATA ...
    
                "name": "mairie de toulon",
                "page": "https://www.data.gouv.fr/organizations/mairie-de-toulon/",
                "slug": "mairie-de-toulon",
                "uri": "https://www.data.gouv.fr/api/1/organizations/5ba0b9f5634f4150f31579dd/",
                "url": "https://toulon.fr/"
            }
        ],
        "next_page": "https://www.data.gouv.fr/api/1/organizations/?page=2&page_size=1",
        "page": 1,
        "page_size": 1,
        "previous_page": null,
        "total": "10"
    }
    $ http 'https://www.data.gouv.fr/api/1/organizations/?page_size=1' | jq '.data[].name'
    "mairie de toulon"
    $ export API="https://www.data.gouv.fr/api/1/"
    $ http $API'organizations/?page_size=1' | jq '.data[].name'
    $ http $API'organizations/' | jq '.data[].name'
    "mairie de toulon"
    "SMIC DES VOSGES"
    "Mairie de Vif"
    "Kammoun nassib"
    "Communauté urbaine de Caen la mer"
    "Reno Inc"
    "BEAUTEBOUTIQUE"
    "Blue Soft"
    "Syndicat de collecte et de traitement des déchets ménagers de l'Aude"
    "Et voilà !"
    $ http $API'organizations/?page_size=5' | jq '.data[].uri'
    "https://www.data.gouv.fr/api/1/organizations/5ba0b9f5634f4150f31579dd/"
    "https://www.data.gouv.fr/api/1/organizations/5b9fbf32634f4128317ef388/"
    "https://www.data.gouv.fr/api/1/organizations/5b9b657a634f412c7f5c939b/"
    "https://www.data.gouv.fr/api/1/organizations/5b9ad48e634f413f7e0f3512/"
    "https://www.data.gouv.fr/api/1/organizations/5b9a00938b4c41453e8a406b/"
    $ http $API'organizations/5ba0b9f5634f4150f31579dd/' | jq '.'
    $ http $API'organizations/5ba0b9f5634f4150f31579dd/' | jq '.metrics'
    {
      "datasets": 0,
      "members": 1,
      "views": 1,
      "permitted_reuses": 0,
      "reuses": 0,
      "dataset_views": 0,
      "reuse_views": 0,
      "followers": 0,
      "resource_downloads": 0
    }
    $ http $API'organizations/5ba0b9f5634f4150f31579dd/' | jq '.members[].user.last_name'
    "VOIRIN"
    $ http PUT $API'organizations/organization-uri-x/'
    HTTP/1.1 401 UNAUTHORIZED
    ... LOTS OF HEADERS ...
    
    {
        "message": "Unauthorized",
        "status": 401
    }
    $ http PUT $API'organizations/organization-uri-x/' X-API-KEY:your.api.key.here
    HTTP/1.1 401 UNAUTHORIZED
    ... LOTS OF HEADERS ...
    
    {
        "message": "Invalid API Key",
        "status": 401
    }
    HTTP/1.1 403 FORBIDDEN
    ... LOTS OF HEADERS ...
    
    {
        "message": "You do not have the permission to modify that object.",
        "status": 403
    }
    HTTP/1.1 200 OK
    ... LOTS OF HEADERS ...
    
    {
        ...
    }
    $ http PUT $API'organizations/organization-uri-x/' \
        X-API-KEY:your.api.key.here \
        name="Lorem ipsum" \
        description="The quick brown fox jumps over the lazy dog." \
        | jq '{name: .name, description: .description}'
    {
      "name": "Lorem ipsum",
      "description": "The quick brown fox jumps over the lazy dog."
    }
    $ http DELETE $API'organizations/organization-uri-x/' X-API-KEY:your.api.key.here
    HTTP/1.0 204 NO CONTENT
    ... LOTS OF HEADERS ...
    $ http GET $API'organizations/organization-uri-x/'
    HTTP/1.0 410 GONE
    ... LOTS OF HEADERS ...
    
    {
        "message": "Organization has been deleted",
        "status": 410
    }

    Par API

  • Par moissonnage

  • Quelle différence entre API et moissonnage ?

    La publication par l’API vous donne un contrôle total sur le contenu de chaque champ, le moment de la soumission. tandis que le moissonnage, s’il ne nécessite pas de développement spécifique sur votre plateforme, est un fonctionnement fortement contraint.

    Moissonage

    • Pré-requis : métadonnées dans l’un des formats supportés

    • Déclenchement : contrôlé par data.gouv.fr (quotidien)

    • Champs : modèle imposé par protocole

    API

    • Pré-requis : capacité de développement

    • Déclenchement : déclenché au besoin

    • Champs : au choix du développeur

    Certains jeux de données font l'objet de spécificités pour leur publication, comme les Bases Adresses Locales. La procédure de publication d'une Base Adresse Locale est détaillée dans cette page.

    Mise à disposition directe sur data.gouv.fr

    Pour mettre à disposition vos données directement sur data.gouv.fr, la procédure à suivre est la suivante :

    1. Définir qui publie le jeu de données

    Un jeu de données peut être publié sous le nom de votre compte utilisateur ou sous la bannière d’une organisation.

    Nous vous conseillons de publier un jeu de données sous le nom de votre compte utilisateur seulement s’il n’a pas été produit dans le cadre des activités d’une organisation à laquelle vous êtes rattaché.

    2. Décrire le jeu de données

    L'étape de description est cruciale pour que vos jeux de données soient bien référencés et faciliter la réutilisation.

    Information
    Description de l'information

    *Les champs identifiés par un astérisque sont obligatoires.

    3. Ajouter des fichiers

    Un jeu de données peut contenir plusieurs types de fichiers (données mises à jour, données historisées, documentation, code source, API, lien, etc.).

    Vous avez la possibilité d’importer vos fichiers sur data.gouv.fr selon différents modes de mise à disposition.

    Lors de l’étape “Ajoutez vos ressources”, deux options vous sont proposées :

    1. Vous pouvez télécharger vos ressources depuis votre ordinateur vers le serveur de data.gouv.fr. Vos ressources seront alors hébergées sur les serveurs de data.gouv.fr.

    2. Vous pouvez créer un lien vers une ressource distante existante. Les informations contenues dans le fichier resteront hébergées sur le serveur distant fléché.

    Mise à disposition par API

    Qu’est-ce qu’une API ?

    Une API est une interface, un contrat passé entre deux systèmes informatiques pour leur permettre de communiquer. Cette solution informatique permet d’automatiser des tâches depuis votre ordinateur ou vos serveurs.

    Publication d'un catalogue de données existant par moissonnage

    Qu’est-ce que le moissonnage ?

    Le moissonnage est un mécanisme permettant de collecter les métadonnées sur un catalogue distant et de les stocker sur une autre plateforme afin de proposer un second point d’accès aux données.

    guide qualité
    .
    • Le livre III du Code des relations entre le public et l’administration (CRPA) définit le cadre général de l’ouverture des données publiques. Il intègre tous les textes applicables en matière de communication, de diffusion et de réutilisation des documents administratifs.

    • Le cadre juridique relatif à l’ouverture de l’information publique a considérablement évolué au fil des décennies, jusqu’à la loi pour une République numérique, promulguée en 2016, qui fait de l’ouverture des données publiques par défaut la règle.

    Que faut-il diffuser en open data ?

    La communication de vos documents administratifs

    Le régime de droit d’accès aux documents administratifs a peu évolué depuis la loi dite “CADA” de 1978 : toute administration ou délégation de service public doit communiquer à un administré le document dont il a fait la demande.

    Si l’administré demande en outre la diffusion en ligne de ce document administratif, toute administration, quelle que soit sa taille, doit répondre à cette obligation. Si le document contient des données couvertes par un secret légal ou des données à caractère personnel, ces données devront au préalable faire l’objet d’une occultation ou d’une anonymisation.

    Si vous êtes concernés par l'obligation légale, vous êtes tenus de diffuser en open data (Article L. 312-1-1 du CRPA) :

    • Les documents administratifs que vous avez communiqué à des demandeurs ;

    • L'inventaire des documents administratifs que vous produisez dans le cadre de vos missions de service public ;

    • Les bases de données produites et reçues dans le cadre des missions de service public : ces bases de données doivent êtres mises à jour régulièrement ;

    • Les données dont la publication représente un intérêt économique, social, sanitaire ou environnemental.

    Les documents administratifs diffusés doivent être achevés, c'est-à-dire qu'ils ont atteint leur version finale, à date (les brouillons, documents de travail, notes préalables ne sont pas considérés comme des documents achevés). Si le document administratif contient une décision, cette dernière ne doit pas être en cours de délibération mais bien prise.

    Lexique : Base de données

    On entend par base de données un recueil d’œuvres, de données ou d'autres éléments indépendants, disposés de manière systématique ou méthodique, et individuellement accessibles par des moyens électroniques ou par tout autre moyen (Article L112-3 du code de la propriété intellectuelle). À titre d'exemple, sont des bases de données : le registre des entreprises, l'annuaire des adresses, les données de demande de valeurs foncières, etc.

    Comment faut-il publier en open data ?

    Format

    Les documents administratifs, informations publiques et données doivent être publiés dans un format :

    • Ouvert : tout protocole de communication, d’interconnexion ou d’échange et tout format de données interopérable et dont les spécifications techniques sont publiques, sans restriction d'accès ou de mise en œuvre ;

    • Aisément réutilisable : le producteur prend en considération les connaissances et besoins du réutilisateur lors de la publication ;

    • Exploitable par un système de traitement automatisé : la publication est optimisée pour une utilisation par un système de traitement automatisé et non pour une exploitation immédiate par des humains.

    L'accès aux données uniquement via des filtres (liste déroulante, sélection d'une zone sur une carte) limite la récupération des données brutes et ne correspond pas à une diffusion publique. Cependant, une application permettant de filtrer les données peut être créée en complément d'un espace de téléchargement libre.

    Concernant l'accès aux données via la création d'un compte validé automatiquement :

    • Il est possible pour l’administration, dans le but de répondre favorablement à une demande de communication, de soumettre la consultation de documents administratifs à la création d’un compte automatique, sans intervention de la part de l’administration ;

    • Cette procédure de création de compte automatique n’emporte pas la qualification de diffusion publique conformément aux dispositions du CRPA ;

    • , portail unique interministériel destiné à rassembler et à mettre à disposition les informations publiques de l’État et de ses établissements publics conformément à l’article et aux circulaires du et du , est chargé de “veiller à ce que la mise à disposition des données de référence s’effectue dans le respect des dispositions législatives et réglementaires en vigueur” et recommande un accès aux documents administratifs librement communicables le plus simple possible sans création de compte

    Occultation des secrets légaux

    Si vos documents administratifs contiennent des secrets légaux, vous êtes tenus d'occulter ces secrets par un traitement d'usage courant, sans que cette opération implique des efforts disproportionnés ou que le document soit dénaturé ou vidé de son sens. Le cas échéant, vous n'êtes pas tenu de diffuser le document administratif.

    Quels sont les documents couverts par un secret légal ?

    • Les documents qui ne sont aucunement communicables. Ce sont par exemple les documents dont la diffusion porterait atteinte au secret des délibérations du Gouvernement, au secret de la défense nationale ou de la sûreté de l’État, etc (Article L. 311-5 du CRPA).

    • Les documents dont la diffusion porterait atteinte à la protection de la vie privée, au secret médical et au secret des affaires. Les documents qui portent une appréciation ou un jugement de valeur sur une personne physique ou qui font apparaître le comportement d’une personne ().

    Comment occulter les données par un traitement automatisé d'usage courant ? L'occultation correspond au masquage ou au retrait des données identifiées comme confidentielles et non communicables.

    Anonymisation des données

    Lexique : Donnée à caractère personnel

    Toute information relative à une personne physique identifiée ou qui peut être identifiée, directement ou indirectement, par référence à un numéro d’identification (par exemple le numéro de sécurité sociale) ou à un ou plusieurs éléments qui lui sont propres.

    Le cadre juridique général proscrit la diffusion en ligne, sans anonymisation, de documents administratifs contenant des données à caractère personnel. Cependant, trois situations permettent la publication de ces documents sans avoir recours à l'anonymisation :

    • Si une disposition législative spécifique autorise la publication des données sans anonymisation ;

    • Si les personnes concernées ont donné leur accord à la diffusion des données sans anonymisation ;

    • Si les documents administratifs figurent dans la liste prévue par le décret n°2018-1117 du 10 décembre 2018 relatif aux catégories de documents administratifs pouvant être rendus publics sans faire l'objet d'un processus d'anonymisation. Ce sont notamment les documents relatifs aux conditions d’organisation de l’administration, de la vie économique, associative, culturelle et sportive, des professions réglementées, etc.

    Si votre document administratif contenant des données à caractère personnel ne correspond à aucune de ces situations, vous êtes tenus de l'anonymiser. Cette opération ne doit toutefois pas impliquer d'efforts disproportionnés. L'anonymisation ne doit également pas dénaturer ou vider de son sens le document. Le cas échéant, vous n'êtes pas tenu de diffuser le document administratif.

    Lexique : Anonymisation des données

    Processus consistant à traiter des données à caractère personnel afin d’empêcher totalement et de manière irréversible l’identification d’une personne physique. L’anonymisation suppose donc qu’il n’y ait plus aucun lien possible entre l’information concernée et la personne à laquelle elle se rattache.

    Si vous souhaitez obtenir d'avantage d'informations juridiques sur l'articulation entre open data et protection des données à caractère personnel, nous vous invitons à consulter le guide de publication en ligne et de réutilisation des données publiques produit par la CNIL.

    Licence

    • Lorsque les données sont mises à disposition gratuitement, l’usage d’une licence est conseillé, mais pas obligatoire ;

    • Si les données publiées sont mises à disposition contre le paiement d’une redevance, les administrations productrices sont dans l’obligation d’apposer une licence de réutilisation.

    La réutilisation des données doit être libre. La licence doit répondre aux différents critères de libre réutilisation. À ce titre, la libre réutilisation ne peut être restreinte que pour des motifs d’intérêt général. Cette restriction doit être proportionnée et ne doit pas avoir pour effet ou objectif de limiter la concurrence.

    Licences de réutilisation autorisées

    Dans le but d'avoir un nombre restreint de licences, la loi pour une République numérique a prévu la création d’une liste, fixée par décret, de licences qui peuvent être utilisées par les administrations pour la réutilisation à titre gratuit de leurs informations publiques.

    Les administrations peuvent choisir parmi cette liste de licences lorsqu'elles publient des éléments en ligne. Les administrations souhaitant recourir à une licence ne figurant pas dans la liste des licences autorisées par décret doivent au préalable demander son homologation auprès de la direction interministérielle du numérique (DINUM).

    Vous pouvez consulter la liste des licences autorisées par décret.

    OpenDataFrance propose un guide sur le choix d'une licence.

    monthly_visit_reuse

    Nombre de visites sur l’ensemble des réutilisations sur le mois en question

    __id

    Identifiant technique

    reuse_id

    Identifiant de la réutilisation

    metric_month

    Mois durant lequel la mesure a été effectuée

    monthly_visit

    Nombre de visites sur le mois en question

    __id

    Identifiant technique

    reuse_id

    Identifiant de la réutilisation

    metric_month

    Mois durant lequel la mesure a été effectuée

    monthly_visit

    Nombre de visites sur le mois en question

    Ministère de l'Intérieur
    Exemple des statistiques sur le jeu de donnée base Sirene au 4 décembre 2023.
    Exemples des statistiques sur la réutilisation "Visualisation des données sur les prix des carburants" au 4 décembre 2023.

    Gérer un jeu de données

    Une fois un jeu de données publié, vous pouvez réaliser différentes actions.

    Publier une réutilisation

    Une fois votre jeu de données publié, vous pouvez y associer une réutilisation. Cela permettra notamment aux usagers de comprendre le contexte de production des données et de faire connaître vos données. Pour ce faire, nous vous invitons à vous référer à cette page.

    Suivre l'usage d'un jeu de données

    Afin de suivre la vie de votre jeu de données sur data.gouv.fr, vous avez la possibilité de suivre ses statistiques d’utilisation depuis votre compte administrateur. Un tableau de bord centralise les informations relatives au jeu de données. Une méthodologie de suivi des usages d'un jeu de données est explicité sur .

    Suivre la qualité d'un jeu de données

    La qualité de votre jeu de données est fondamentale pour qu’il soit réutilisé par le plus d’utilisateurs possible. Assurez vous notamment que vos données soient à jour et de respecter les critères de qualité de données. Nous vous invitons aussi à améliorer le score de qualité des métadonnées : la procédure à suivre est détaillée sur .

    Mettre à jour ou modifier un jeu de données ou une ressource

    Les données publiées sur data.gouv.fr peuvent être mises à jour après leur publication, que la modification porte sur un jeu de données (sa description, ses tags, etc.) ou sur l’une des ressources qu’il contient.

    Comment modifier un jeu de données ?

    Pour mettre à jour un jeu de données publié avec votre propre compte, à titre personnel :

    1. ;

    2. Rendez-vous sur , en cliquant sur Administration en haut à droite de votre écran ;

    Comment modifier une ressource ?

    Pour modifier une ressource publiée avec votre propre compte, à titre personnel :

    1. ;

    2. Rendez-vous sur , en cliquant sur Administration en haut à droite de votre écran ;

    Répondre aux discussions

    Lorsque vous publiez un jeu de données, tout utilisateur qui dispose d’un compte data.gouv.fr peut ouvrir des discussions sur la page du jeu de données. Ces discussions permettent aux réutilisateurs des données de poser des questions au producteur des données, de faire remonter des erreurs constatées dans le jeu de données ou de proposer des améliorations.

    Vous avez la possibilité de récupérer le lien d’une discussion ou d’un commentaire, d’ajouter un commentaire et de fermer une discussion. Les discussions publiées sont visibles par tous les visiteurs de data.gouv.fr.

    Comment répondre à une discussion ?

    Pour transférer un jeu de données publié avec votre propre compte, à titre personnel :

    1. ;

    2. Rendez-vous sur le jeu de données ;

    Transférer un jeu de données

    Un jeu de données publié au nom d’un individu ou d’une organisation peut être transféré vers un autre individu ou une autre organisation.

    Comment transférer un jeu de données ?

    Pour transférer un jeu de données publié avec votre propre compte, à titre personnel :

    1. ;

    2. Rendez-vous sur , en cliquant sur "Administration" en haut à droite de votre écran ;

    La demande de transfert devra ensuite être acceptée.

    Accepter une demande de transfert

    Pour accepter une demande de transfert vers votre compte :

    1. ;

    2. Rendez-vous sur , en cliquant sur "Administration" en haut à droite de votre écran ;

    Supprimer un jeu de données ou une ressource

    Vous pouvez supprimer un jeu de données, ou l’une des ressources qui le compose, si vous êtes l’auteur du jeu de données en question, ou si vous appartenez à l’organisation qui en est à l’origine.

    La suppression d’un jeu de données ou d’une ressource est irréversible

    Conservation des anciennes ressources

    Il est conseillé de supprimer le moins de ressources possibles de la plateforme data.gouv.fr. Même si vos données ne sont plus mises à jour, il est possible que des utilisateurs utilisent tout de même ces données. De plus, la suppression de certaines ressources peut entraîner la maintenance de nombreux services ou produits qui reposent sur l’exploitation des données publiées.

    Comment supprimer un jeu de données ou une ressource
    1. Rendez-vous sur : ;

    2. Choisissez votre profil ou votre organisation qui possède ce jeu de données dans le bandeau de gauche ;

    Bien documenter un jeu de données

    La bonne documentation d'un jeu de données recouvre, entre autres :

    • une description générale du jeu de données

    • une description du mode de production des données

    • une description du modèle de données

    • une description du schéma de données

    • une description des métadonnées

    • une description des changements majeurs

    Description générale du jeu de données

    Il est conseillé de commencer la documentation par une description synthétique du jeu de données qui donne un aperçu rapide des informations mises à disposition.

    La description générale peut couvrir les points suivants :

    Exemple : Description générale du

    Description du mode de production des données

    La structure d'un jeu de données et son contenu sont liés au contexte de production des données. La description de l'environnement métier est donc indispensable.

    La description du mode de production du jeu de données permet au réutilisateur de comprendre la structure du jeu, la nature des données et les possibles manques ou incohérences du fichier.

    Il est donc conseillé de préciser :

    Certains jeux de données ne peuvent pas être utilisés à certaines fins ou possèdent des limitations qui rendent impossible certaines analyses.

    Par exemple, précise que la réutilisation du jeu de données « » ne peut avoir ni pour objet ni pour effet de permettre la ré-identifications des personnes liés à des transactions immobilières.

    Description du modèle de données

    Eclairage : Schéma de données VS Modèle de données

    S'ils peuvent être utilisés dans des contextes proches, les termes "schéma" et "modèle" sont bien différents :

    • un schéma décrit la structure d'un fichier (ses champs et leur format).

    Exemple : Dans le (infrastructures de recharge des véhicules électriques), on peut identifier que:

    • les champs "id_station_itinerance" et "nom_station" correspondent à des attributs d'une même entité "station",

    • les champs "id_pdc_itinerance" et "puissance nominale" correspondent à des attributs d'une même entité "point de charge".

    Une "station" contient un ou plusieurs "point de charge" (relation entre les deux entités).

    Il est conseillé de :

    Une fois le modèle établi, il convient de définir le découpage en fichiers. Il est possible de :

    • regrouper des entités dans un même fichier

    • créer un fichier par entité

    Exemple : du décrit le modèle de données utilisé. Ce modèle de données permet de comprendre rapidement les relations qui unissent les différentes entités du jeu de données. Dans cet exemple, il a été choisi d'associer un fichier par entité.

    Description du schéma de données

    Si vous publiez des données tabulaires, il est conseillé de produire un tableau récapitulatif indiquant, pour chaque colonne :

    Cela constituera une base solide en vue de la création d'un schéma de données, dont le processus est détaillé .

    Exemple : La documentation du présente un tableau récapitulatif des différentes colonnes. La description des champs permet de faire le lien avec le fichier de données, ce qui facilite la lecture des données.

    Les termes employés dans un jeu de données sont propres à un environnement métier.

    S’il existe des termes complexes ou des énumérations, il est conseillé de :

    • Fournir un lexique de ces valeurs

    Cet effort de définition fait gagner un temps considérable au réutilisateur et permet de prévenir des contre-sens dans l’exploitation des données.

    Exemple : La base de données de recense l’ensemble des transactions immobilières intervenues au cours des cinq dernières années. Le vocabulaire utilisé dans ce jeu de données est issu d’un environnement administratif, parfois difficile à appréhender. La Direction générale des Finances publiques met à disposition une qui comprend notamment un lexique de définition des termes rencontrés. Ce lexique facilite l’appropriation et la réutilisation des données par des acteurs tiers.

    Description des métadonnées

    Lexique : Métadonnée

    Une métadonnée est une donnée qui décrit ou définit une autre donnée.

    Dans la vie courante, l’étiquette d’un produit fournit des informations/métadonnées sur le produit (origine, composition, date de péremption, etc.). Appliqué aux jeux de données, les métadonnées sont des descriptions normalisées du contenu du jeu.

    Des formats standards de métadonnées existent afin de faciliter leur collecte, leur recherche et leur traitement automatique.

    Sur data.gouv.fr, il est possible de renseigner directement les métadonnées d’un jeu de données. Les métadonnées retenues sont les suivantes :

    • Titre

    • Sigle

    • Description

    • Licence

    La description des métadonnées apportera à un jeu de données une meilleure visibilité sur les catalogues.

    Description des changements majeurs

    En pratique, il est souhaitable que le modèle de données et la nature de vos données n’évoluent pas au fil du temps.

    Toutefois, des changements dans la structure des données, dans le mode de collecte ou dans les dispositions réglementaires peuvent affecter le jeu de données.

    Dans cette situation, il est conseillé de tenir une liste de ces changements

    Cette liste peut faire figurer :

    • la date

    • la version des données (si vous versionnez vos données)

    • la nature du changement

    Si nécessaire, il est possible d’indiquer des liens, comme par exemple lorsque des changements sont introduits par une modification du code de transformation des données.

    Exemple : du comporte une section “Changement sur le jeu de données”. Cette section référence les changements du jeu de données en renseignant les informations suivantes :

    • La date du changement

    • La nature du changement

    • Les liens associés au changement

    Points de contact

    Les réutilisateurs des données peuvent avoir des questions à propos des fichiers mis à disposition.

    Il est conseillé de proposer un espace d’échange entre les producteurs et réutilisateurs des données : il est préférable que cet espace d’échange soit public afin qu’il puisse bénéficier aux personnes qui auraient des questions similaires.

    La collecte des retours d’usage permettra d’améliorer votre documentation de manière incrémentale.

    data.gouv.fr
    R. 321-8 du CRPA
    26 mai 2011
    27 avril 2021
    Article L. 311-6 du CRPA

    Mots clés

    Les mots clés caractérisent votre jeu de données. Ils apparaissent sur la page de présentation et apportent un meilleur référencement du jeu de données lors d’une recherche utilisateur.

    Couverture temporelle

    La couverture temporelle indique la portée dans le temps des données publiées.

    Granularité spatiale

    La granularité spatiale indique le niveau de détail géographique le plus fin que peut couvrir vos données.

    Mode brouillon

    L’activation du mode brouillon permet de ne pas mettre en ligne le jeu de données. Cela laisse la possibilité de l’éditer avant sa publication.

    A partir de l’API de data.gouv.fr, vous pouvez réaliser les mêmes actions que sur la plateforme :
    • Créer un jeu de données au nom de votre compte utilisateur ou au nom de votre organisation ;

    • Décrire votre jeu de données et les ressources associées ;

    • Ajouter ou supprimer une ressource ou un jeu de données.

    L’API de data.gouv.fr propose également des fonctionnalité complémentaires à la publication de jeux de données comme la possibilité de récupérer les métadonnées des jeux de données ou de fichiers ou encore d'accéder au contenu des fichiers d’un jeu de données.

    Quand utiliser l’API de data.gouv.fr ?

    À la différence du mode de mise à disposition directe des données sur data.gouv.fr, l’utilisation de l’API permet de réaliser des actions de manière automatisée depuis votre ordinateur ou vos serveurs. Il est par conséquent conseillé d’utiliser une API lorsque la fréquence de publication d’un jeu de données est régulière.

    L’utilisation de l’API de data.gouv.fr se fait par le point d’entrée racine de l’API. Afin de pouvoir exécuter des opérations d’écriture, il est nécessaire d’obtenir une clé API. Cette clé est accessible depuis les paramètres de votre profil administrateur.

    Générer une clé d'API

    Les appels à l’API sont soumis aux mêmes permissions que l’interface web. Par exemple, si vous souhaitez publier ou modifier un jeu de données au nom d’une organisation, vous devez appartenir à cette organisation.

    La procédure pour publier des données sur data.gouv.fr par API est détaillée dans cette sous-section.

    Le service de moissonnage mis à votre disposition permet de référencer sur data.gouv.fr les jeux de données publiés sur d’autres catalogues de données en ligne. De cette manière, vous n’avez pas besoin d’importer à la main sur data.gouv.fr les jeux de données que vous avez déjà importés sur votre propre plateforme.

    Quand utiliser le service de moissonnage ?

    Si vous mettez en ligne des données publiques sur une plateforme ouverte, dans un format dont les métadonnées correspondent à la syntaxe ODS, CKAN, ou DCAT vous pouvez les référencer automatiquement sur data.gouv.fr en utilisant notre service de moissonnage.

    Pour utiliser le service de moissonnage, il est possible de demander au moissonneur d’importer l’ensemble des données ou de ne sélectionner que certains jeux de données au moyen de filtres. Il n’est pas nécessaire de créer un moissonneur par jeu de données à importer, un seul moissonneur par portail suffit.

    Le principe du moissonnage sur data.gouv.fr se décompose en plusieurs étapes :

    1. Vous créez un moissonneur sur data.gouv.fr afin que data.gouv.fr suive l’activité de votre plateforme ;

    2. Vous publiez des données sur votre plateforme open data ;

    3. Vous demandez la validation de votre moissonneur sur le support data.gouv.fr ;

    4. La configuration du moissonneur est validée par l’équipe en charge de data.gouv.fr ;

    5. Le moissonneur de data.gouv.fr vient automatiquement récupérer les données de votre plateforme ;

    6. Les données de votre plateforme sont référencées et visibles sur data.gouv.fr. 🎉

    La procédure de moissonnage est détaillée dans cette sous-section.

    Titre*

    Le titre de votre jeu de données doit être le plus précis et spécifique possible. Il doit également correspondre au vocabulaire employé par les utilisateurs. Ces derniers recherchent les données le plus souvent dans un moteur de recherche.

    Sigle

    Vous avez la possibilité d’apposer un sigle à votre jeu de données. Les lettres qui composent ce sigle n’ont pas besoin d’être séparées par des points.

    Description*

    La description de votre jeu de données permet aux personnes qui le consultent d’obtenir des informations sur le contenu et la structure des ressources publiées, le contexte de production des données, les contacts producteurs etc.

    Licence

    Les licences définissent les règles de réutilisation des jeux de données publiés. En choisissant une licence de réutilisation, vous vous assurez que le jeu de données publié sera réutilisé selon les conditions d’usage que vous avez définies. Afin d’éviter la multiplication des licences, la loi pour une République numérique a prévu la création d’une liste de licences qui peuvent être utilisées par les administrations. Le site data.gouv.fr a référencé la liste des licences applicables aux informations publiques (données, documents…).

    Fréquence de mise à jour*

    La fréquence de mise à jour correspond à la fréquence à laquelle vous prévoyez de mettre à jour les données publiées. Cette fréquence de mise à jour reste indicative.

  • Allez sur la page de suivi de votre compte, en cliquant sur Profil, dans la colonne de gauche ;

  • Naviguez jusqu’à la section Jeux de données située en milieu de page ;

  • Cliquez sur le jeu de données que vous souhaitez modifier ;

  • Cliquez sur le bouton Éditer, en haut à droite de votre écran ;

  • Modifiez les champs que vous souhaitez mettre à jour ;

  • Pour sauvegarder vos modifications, cliquez sur le bouton Enregistrer qui se trouve en bas à droite de la page.

  • Pour modifier un jeu de données publié au nom d’une organisation à laquelle vous appartenez :

    1. Connectez-vous à votre compte ;

    2. Rendez-vous sur votre tableau de bord, en cliquant sur Administration en haut à droite de votre écran ;

    3. Allez sur la page de suivi de votre organisation, en cliquant sur le nom de votre organisation, dans la colonne de gauche ;

    4. Naviguez jusqu’à la section Jeux de données située en milieu de page ;

    5. Cliquez sur le jeu de données que vous souhaitez supprimer ;

    6. Cliquer sur le bouton Éditer, en haut à droite de votre écran ;

    7. Modifiez les champs que vous souhaitez mettre à jour ;

    8. Pour sauvegarder vos modifications, cliquez sur le bouton Enregistrer qui se trouve en bas à droite de la page.

    Allez sur la page de suivi de votre compte, en cliquant sur Profil, dans la colonne de gauche ;

  • Naviguez jusqu’à la section Jeux de données située en milieu de page ;

  • Cliquez sur le jeu de données qui contient la ressource à modifier ;

  • Naviguez jusqu’à la section Ressources située en milieu de page ;

  • Cliquez sur la ressource à modifier ;

  • Cliquez sur le bouton Éditer dans la fenêtre qui s’affiche alors en superposition sur votre écran ;

  • Modifiez les champs que vous souhaitez mettre à jour ;

  • Pour sauvegarder vos modifications, cliquez sur le bouton Enregistrer qui se trouve en bas à droite de la fenêtre.

  • Pour modifier une ressource publiée au nom d’une organisation à laquelle vous appartenez :

    1. Connectez-vous à votre compte ;

    2. Rendez-vous sur votre tableau de bord, en cliquant sur Administration en haut à droite de votre écran ;

    3. Allez sur la page de suivi de votre organisation, en cliquant sur le nom de votre organisation, dans la colonne de gauche ;

    4. Naviguez jusqu’à la section Jeux de données située en milieu de page ;

    5. Cliquez sur le jeu de données qui contient la ressource à modifier ;

    6. Naviguez jusqu’à la section Ressources située en milieu de page ;

    7. Cliquez sur la ressource à modifier ;

    8. Cliquez sur le bouton Éditer dans la fenêtre qui s’affiche alors en superposition sur votre écran ;

    9. Modifiez les champs que vous souhaitez mettre à jour ;

    10. Pour sauvegarder vos modifications, cliquez sur le bouton Enregistrer qui se trouve en bas à droite de la fenêtre.

    Rendez-vous sur l'onglet discussions ;

  • Cliquez sur répondre.

  • Allez sur la page de suivi de votre compte, en cliquant sur "Profil", dans la colonne de gauche ;

  • Naviguez jusqu’à la section "Jeux de données" située en milieu de page ;

  • Cliquez sur le jeu de données que vous souhaitez transférer ;

  • Cliquez sur la flèche située à côté du bouton "Éditer", en haut à droite de votre écran, puis sur "Transférer" dans le menu déroulant qui apparaît alors ;

  • Sélectionnez le type de compte vers lequel vous souhaitez transférer le jeu de données (individu ou organisation) ;

  • Saisissez le nom de l’utilisateur ou de l’organisation vers lequel vous souhaitez transférer les données, puis cliquez sur son profil quand il apparaît à l’écran ;

  • Indiquez une raison éventuelle pour ce transfert dans la zone "Raison" puis cliquez sur "Confirmer" pour valider la demande de transfert ;

  • Votre destinataire reçoit alors une notification. Une fois la demande de transfert acceptée par votre destinataire, le jeu de données lui est effectivement transféré.

  • Cliquez sur l’enveloppe située en haut à droite de votre écran, puis sur le message dont le titre est "Demande de transfert en attente" ;

  • Vérifiez que le jeu de données que vous êtes sur le point d’accepter est le bon puis cliquez sur "Accepter" pour confirmer le transfert.

  • Sélectionnez le jeu de données ;

  • Cliquer sur éditer en haut à droite puis sélectionnez supprimer ;

  • cette page
    cette page
    Connectez-vous à votre compte
    votre tableau de bord
    Connectez-vous à votre compte
    votre tableau de bord
    Connectez-vous à votre compte
    Connectez-vous à votre compte
    votre tableau de bord
    Connectez-vous à votre compte
    votre tableau de bord
    data.gouv.fr/fr/admin/
    .
    les points d'attention et précautions d'usage pour manipuler ces données.
    un modèle décrit la structure logique du jeu de données sous la forme d'objets (ou entités) et de relations (ou associations). Les objets sont définis par une liste d'attributs.

    Les champs d'un schéma sont la traduction physique des attributs des entités du modèle. Le modèle de données est avant tout un outil de dialogue entre les différents intervenants.

    Fréquence de mise à jour

  • Mots clés

  • Couverture temporelle

  • Couverture spatiale

  • Granularité spatiale

  • Mode brouillon

  • jeu de données du Répertoire national des élus
    l’article R112 A-3 du Livre des procédures fiscale
    Demandes de valeurs foncières
    jeu de données des IRVE
    La documentation
    jeu de données des opérations de sauvetage en mer
    ici
    jeu de données des opérations de sauvetage en mer
    demande de valeur foncière
    documentation
    La documentation
    jeu de données des opérations de sauvetage en mer
    Description générale du jeu de données du Répertoire national des élus
    Modèle de données du jeu de données des opérations de sauvetage en mer
    Description du schéma de données du jeu de données des opérations de sauvetage en mer

    Structurer un jeu de données

    Les jeux de données qui ont vocation à circuler seront réutilisés par des acteurs tiers qui ne connaissent pas l’environnement de votre organisation.

    Il est nécessaire de proposer une structure de jeu de données compréhensible et appropriable par tous.

    Deux approches sont possibles pour structurer un jeu de données, selon le cas de figure dans lequel la structure se situe :

    • Cas 1 : La structure de vos données ne correspond à aucun schéma de données existant : un travail de modélisation est nécessaire en amont de la création du jeu de données.

    • Cas 2 : La structure de vos données correspond à un schéma de données existant, comme par exemple s'il s'agit d'une Base Adresse Locale.

    Les préconisations pour structurer une Base Adresse Locale sont détaillées sur .

    Cas 1 : La structure de vos données ne correspond à aucun schéma de données existant

    Il est nécessaire de réfléchir en amont à la meilleure structure pour vos données.

    Tant que les données de votre structure sont dans un environnement logiciel, leur usage reste adapté à des problématiques métiers spécifiques.

    L’ouverture de ces données en dehors de leur environnement impose de structurer le jeu de données en fonction des attentes des réutilisateurs et non plus en fonction des besoins propres à l’organisation.

    ✨ Quelques bonnes pratiques vous permettront de bien structurer votre jeu de données :

    Soigner le contenu du jeu de données

    Les champs du jeu de données

    Il est conseillé de :

    • Occulter l’ensemble des colonnes dont les champs contiennent des données couvertes par un secret légal (cf. Guide juridique) ;

    • Occulter l’ensemble des colonnes dont les champs contiennent des données à caractère personnel dont la publication n’est pas nécessaire à l’information du public (cf. Guide juridique) ;

    • Privilégier la présence de variables pivots : ces variables proposent des identifiants communs qui permettent de lier plusieurs jeux de données entre eux (ex. le numéro SIRET de la base Sirene) (cf. section "Lier des données à un référentiel").

    L’entête des colonnes (pour le format tabulaire)

    Dans un fichier tabulaire, la première ligne du fichier peut être utilisée pour nommer chaque colonne et donner des informations sur les données associées.

    Il est conseillé de :

    • Donner un nom de colonne explicite ;

    • Donner un nom de colonne sans majuscule, abréviation, accents, ni espaces (préférez le caractère _) afin de faciliter la manipulation des fichiers.

    Gestion des champs non attribués

    Il est possible que certaines occurrences d’un champ d'un fichier ne soient pas attribuées.

    Il convient de :

    • Laisser ces occurrences vides plutôt que d’attribuer la valeur 0 (ou une autre valeur par défaut) : le zéro correspond à une valeur, qui peut dénaturer le sens de votre fichier.

    Le titre du jeu de données

    Il est recommandé de choisir un titre qui doit pouvoir renseigner n’importe quel réutilisateur sur le contenu du fichier. Pour cela, il est recommandé de :

    • Ne pas donner un titre trop générique qui obligerait le réutilisateur à ouvrir le jeu de données pour comprendre son contenu (i.e. “liste.csv” ou encore “balance comptable” sans indiquer l’organisation concernée) ;

    • Ne pas donner un titre trop long qui rendrait la manipulation du fichier difficile (i.e. le titre du jeu de données “Fichiers consolidés des données essentielles de la commande publique” est suffisamment générique pour ne pas revenir sur toutes les sources de données utilisées pour agréger le jeu de données) ;

    • Ne pas donner un titre contenant des accents ou caractères spéciaux qui poseraient des problèmes d’interopérabilité des fichiers ;

    • Ne pas donner de titre trop technique issu de nomenclatures métier.

    L’encodage du fichier

    Lexique : Encodage

    L’encodage d’un fichier est la norme utilisée pour coder chaque caractère par une suite de 0 et de 1 compréhensible par une machine.

    Lorsque l’encodage est mal choisi, le réutilisateur des données est souvent contraint de convertir le fichier, notamment afin de faire apparaître les accents et caractères spéciaux.

    Il est conseillé de :

    • Utiliser l’encodage UTF-8 : il permet d’encoder l’ensemble des caractères du répertoire universel de caractères codés (notamment les caractères contenant des accents ou des caractères spéciaux).

    Le séparateur (pour le format tabulaire)

    Dans un fichier tabulaire, le séparateur permet de structurer les données sous forme de cellules.

    Il est conseillé d'utiliser la virgule comme séparateur.

    Séparateurs décimaux

    Dans un fichier CSV, la virgule n’est pas considérée comme un séparateur décimal. Si votre fichier contient des valeurs décimales, il est nécessaire d’encapsuler chaque champ entre des guillemets.

    La plupart des tableurs (Excel, OpenOffice Calc, etc) proposent l’encapsulement des champs entre guillemets.

    Une seconde solution consiste à convertir l’ensemble des virgules utilisées pour des valeurs décimales par un point.

    Granularité du jeu de données

    Il est important de mener une réflexion sur la granularité du jeu de données.

    Faut-il proposer des données fines ou agrégées ? Faut-il proposer un export quotidien, mensuel, trimestriel ou annuel ? Ces questions doivent être posées en amont de l’automatisation des exports.

    Il est conseillé de mener un dialogue avec les réutilisateurs afin de comprendre leurs besoins : certains utilisateurs peuvent souhaiter manipuler des données granulaires tandis que d’autres préfèrent disposer d’agrégats qui permettent une réutilisation simple et rapide. A minima, il est conseillé de proposer un fichier complet unique qui contient l’ensemble des données historiques.

    Choisir le format du jeu de données

    Afin qu'un maximum d’utilisateurs puisse s’approprier les données, il est conseillé de les faire circuler dans un format :

    • ouvert : un format ouvert n’impose pas de spécifications techniques qui entraveraient l’exploitation des données (i.e. l’utilisation d’un logiciel payant) ;

    • aisément réutilisable : un format aisément réutilisable sous-entend que toute personne ou machine peut réutiliser facilement le jeu de données ;

    • exploitable par un système de traitement automatisé : un système de traitement automatisé permet de réaliser des opérations par des moyens automatiques, relatifs à l’exploitation des données (i.e. un fichier CSV est aisément exploitable par un système de traitement automatisé contrairement à un fichier PDF).

    Il est possible de choisir parmi les formats ouverts et communément acceptés suivants :

    Type de données
    Formats conseillés
    Description
    Documentation

    Données tabulaires

    CSV

    Un fichier CSV est constitué de lignes de données, où chaque champ est séparé par une virgule. Ce format est le standard le plus réutilisable, car ouvert et facilement exploitable par une machine.

    Données statiques de transport

    GTFS/NeTEx

    Le format GTFS est le format le plus utilisé en France par les services de mobilité d’information voyageur. Le format NeTEx est le format de référence européen qui vise l’interopérabilité des données entre États membres.

    Cas 2 : La structure des données correspond à un schéma de données existant

    Lexique : Schéma de données

    Un schéma de données est un document qui permet de décrire de manière précise et univoque les différents champs et valeurs possibles qui composent un fichier.

    Il permet notamment de valider qu’un fichier est conforme à une structure communément partagée, de générer de la documentation automatiquement, de générer des jeux de données d’exemple ou de proposer des formulaires de saisie standardisés.

    Ces schémas facilitent la montée en qualité et le croisement des données proposées en open data, surtout lorsque plusieurs producteurs de données sont amenés à produire un même jeu de données.

    ➡️ Pour plus de détails sur les schémas de données, consultez

    Identifier un schéma de données déjà existant

    Il est possible d'identifier un schéma de données déjà existant , qui référence une liste de schémas de données existants. Le site offre aussi la possibilité à tout utilisateur de soumettre de nouveaux schémas de données.

    Lorsque les données que vous souhaitez faire circuler correspondent à un schéma existant, il est conseillé de l’appliquer au plus près.

    Produire des données conforme à un schéma de données identifié

    Si les données ne sont pas extraites d’un système d’information mais saisies manuellement, il est possible d'utiliser qui permet, à partir d’un schéma de données sélectionné, de saisir les valeurs de chaque information et ainsi de produire un fichier exhaustif et conforme.

    📖 Tutoriel : Utiliser pour saisir, valider et publier des données de qualité

    Cet outil vous permet de créer un fichier CSV en vous assurant qu'il est conforme à un schéma, c'est-à-dire que ses données sont complètes, valides et structurées.

    Les étapes à suivre sont les suivantes :

    Valider la conformité d’un fichier avec un schéma de données

    Pour valider la conformité d'un fichier avec un schéma de données, il est possible de :

    • Utiliser la solution : vous pouvez valider la conformité de votre fichier à un schéma parmi la liste déroulante ou via une URL. Vous pouvez ensuite faire valider ce fichier, soit en l'important au format csv, soit en renseignant également son URL.

    Sur l'interface d'administration de data.gouv.fr, il est possible d'indiquer que votre fichier correspond à un schéma.

    • Lorsque vous déposez ou éditez une ressource, vous pouvez sélectionner le schéma correspondant à vos données dans une liste déroulante.

    • Le fait d'indiquer que votre ressource est censée respecter un schéma permet de bénéficier de vérifications de la qualité des données, d'indiquer aux réutilisateurs que vos données respectent un référentiel, ainsi que de contribuer aux fichiers agrégés (i.e. ).

    D'autres solutions en dehors de data.gouv.fr existent : des solutions disponibles en anglais comme ou proposent des validateurs de jeux de données.

    Il est aussi possible d’intégrer une fonction de validation d’un jeu directement dans la procédure de publication (exemple : les données d’adresses locales qui font l’objet d’une validation directement sur le site ).

    cette page

    Gérer un jeu de données par l'API

    Cette page documente les principales interactions que vous pouvez avoir avec un jeu de données par l’API.

    Il est recommandé d’avoir lu l'introduction et la page prise en main de l'API avant de consulter cette page.

    Tous les exemples qui suivent sont réalisés avec un compte :

    • qui est actif

    • dont la clé d’API est my-api-key

    • qui est membre d’une organisation dont l’identifiant est 5bbb6d6cff66bd4dc17bfd5a.

    Les exemples portants sur un jeu de données existant utilisent l’identifiant 5bc04b2cff66bd680e499f4a. Ceux portants sur une ressource existante de ce jeu de données utilisent l’identifiant 54d47250-1daf-483b-965a-3013f8c76617.

    Pour simplifier la lecture de ces exemples, il y sera fait référence par les variables suivantes pour chaque langage:

    Création d’un jeu de données

    Pour créer un jeu de données, nous allons utiliser l’API de création de jeu de données.

    La réponse en JSON contient les métadonnées du jeu de données créé, en particulier l’identifiant et le slug.

    La fiche du jeu de données est maintenant créée et il est maintenant possible d’y ajouter des ressources.

    Par défaut, un jeu de données créé via l’API est public. Afin de créer et maintenir un jeu de données en brouillon, il faut mettre l’attribut private: true dans chaque appel à l’API. Sinon, chaque modification d’un jeu de données par l’API va le passer en public.

    Ajout d’une ressource

    Pour créer une ressource, nous allons utiliser l’API création d’une ressource.

    Il existe 2 cas de création de ressource :

    • avec envoi d’un fichier, dit ressource locale ;

    • avec référencement d’un fichier distant, dit ressource distante.

    En envoyant un fichier

    Nous allons utiliser l’API d’envoi de ressource pour envoyer le fichier.

    La ressource est automatiquement créée et il est possible de modifier a posteriori les métadonnées avec l’API de mise à jour de ressource comme décrit .

    En référençant une URL existante

    L’API de création de ressource permet de créer une ressource distante. Dans notre cas, un fichier csv hébergé sur l’URL .

    NB : pour qu'une ressource distante puisse bénéficier de toutes les fonctionnalités de data.gouv.fr, il faut impérativement que son Content-Type soit correctement exposé par la plateforme qui l'héberge (par exemple : text/csv pour un fichier csv, application/json pour un fichier JSON, etc.).

    Modification d’un jeu de données

    La suite des opérations s’appliquent sur le même jeu de données dont l’identifiant est 5bc04b2cff66bd680e499f4a sur lequel vous avez les permissions nécéssaires à la modification. Ce jeu de données possède une ressource 54d47250-1daf-483b-965a-3013f8c76617 qui est soit distante soit locale suivant les exemples.

    Mise à jour des metadonnées de la fiche

    Cette requête permet de mettre à jour les métadonnées d’un jeu de données en utilisant l’API de mise à jour de jeu de données

    Mise à jour des métadonnées d’une ressource

    Cette requête permet de mettre à jour les métadonnées d’une ressource en utilisant l’API de mise à jour de ressource

    Remplacer un fichier de ressource

    Dans le cas d’une mise à jour de fichier de ressource locale (correction, ajout de données…),il est possible d’utiliser l’API de mise à jour de fichier. L’ancien fichier sera supprimé.

    Signaler une mise à jour de fichier distant

    Dans le cas d’une ressource distante, lorsque le fichier distant est mis à jour, il est important de le signaler afin que la fiche soit mise à jour et que les usagers le sache.

    🚧 A venir 🚧

    Suppression d’une ressource

    l’API de suppression de ressource permet de supprimer une ressource de la fiche d’un jeu de données. Le fichier associé est aussi supprimé.

    Suppression d’un jeu de données

    Pour supprimer un jeu de données, il suffit d’utiliser l’API de suppression de jeu de données:

    Le jeu de données est maintenant marqué comme supprimé, il reste visible uniquement par vous et les membres de votre organisation, ainsi que par l’équipe d’administrateur de data.gouv.fr. Il sera purgé (supprimé définitivement de la plateforme), d’ici la fin de la journée.

    Restauration d’un jeu de données supprimé par erreur

    Tant que le jeu de données n’a pas été purgé, vous avez la possibilité de le restaurer:

    🚧 A venir 🚧

    Lier des données à un référentiel

    Il est important d'intégrer dans vos jeux de données des données pivots relevant d'un référentiel.

    Exemple : Mon jeu de données est une liste d'actions culturelles menées par ma région. Certaines de ces actions sont gérées par des associations. Il peut être intéressant de publier un jeu de données recensant ces actions avec un champ correspondant à l'identification des associations. Cet identifiant existe et est standardisé, il s'agit du numéro RNA, identifiant national des associations dont est opéré par le ministère de l'intérieur.

    plus bas
    https://url.to/ressource.csv
    # Tous les exemples Python sont executés avec cette convention
    
    import requests  # installé avec `pip install requests`
    
    API = 'https://www.data.gouv.fr/api/1'
    API_KEY = 'my-api-key'
    ORG = '5bbb6d6cff66bd4dc17bfd5a'
    DATASET = '5bc04b2cff66bd680e499f4a'
    RESOURCE = '54d47250-1daf-483b-965a-3013f8c76617'
    HEADERS = {
        'X-API-KEY': API_KEY,
    }
    
    
    def api_url(path):
        return ''.join(API, path)
    # Tous les examples CURL sont executés avec cette convention
    # CURL doit être installé
    export API = 'https://www.data.gouv.fr/api/1'
    export API_KEY = 'my-api-key'
    export ORG = '5bbb6d6cff66bd4dc17bfd5a'
    export DATASET = '5bc04b2cff66bd680e499f4a'
    export RESOURCE = '54d47250-1daf-483b-965a-3013f8c76617'
    # Tous les examples HTTPie sont executés avec cette convention
    # HTTPie doit être installé
    export API = 'https://www.data.gouv.fr/api/1'
    export API_KEY = 'my-api-key'
    export ORG = '5bbb6d6cff66bd4dc17bfd5a'
    export DATASET = '5bc04b2cff66bd680e499f4a'
    export RESOURCE = '54d47250-1daf-483b-965a-3013f8c76617'
    # Tous les exemples Python sont executés avec cette convention
    
    from datagouv import Client, Dataset, Resource  # installé avec `pip install datagouv-client`
    
    # vous devez avoir les droits sur les objets que vous souhaitez modifier modifier
    ORG = "5bbb6d6cff66bd4dc17bfd5a"
    DATASET = "5bc04b2cff66bd680e499f4a"
    RESOURCE = "54d47250-1daf-483b-965a-3013f8c76617"
    client = Client(
        environment="www",  # pour cibler la plateforme de production, également possible de cibler demo ou dev
        api_key="my-api-key",  # utilisez bien la clé API de la plateforme spécifiée ci-dessus
    )
    curl -H "Content-Type:application/json" \
         -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         --data '{"title": "my title", "description": "My description", "organization": "$ORG"}' \
         -X POST $API/datasets/
    http POST $API/datasets/ \
         X-Api-Key:$API_KEY \
         title="Mon titre" \
         description="Ma description" \
         organization=$ORG
    url = api_url('/datasets/')
    response = requests.post(url, json={
        'title': 'Mon titre',
        'description': 'Ma description',
        'organization': ORG,
    }, headers=HEADERS)
    dataset = client.dataset().create(
        {
            "title": "Mon titre", 
            "description": "Ma description",
            "organization": ORG,
        },
    )
    curl -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         -F "file=@/chemin/vers/le/fichier" \
         -X POST $API/datasets/$DATASET/upload/
    http -f POST $API/datasets/$DATASET/upload/ \
         X-Api-Key:$API_KEY \
         file@/chemin/vers/le/fichier
    url = api_url('/datasets/{}/upload/'.format(DATASET))
    response = requests.post(url, files={
        'file': open('/chemin/vers/le/fichier', 'rb'),
    }, headers=HEADERS)
    resource = client.resource().create_static(
        file_to_upload="/chemin/vers/le/fichier",
        payload={
            "title": "Nouvelle ressource",
            "type": "main",  # optionnel, "main" par défaut
        },
        dataset_id=DATASET,
    )
    
    # ou alternativement au sein du dataset
    dataset = client.dataset(DATASET)
    resource = dataset.create_static(
        file_to_upload="/chemin/vers/le/fichier",
        payload={
            "title": "Nouvelle ressource",
            "type": "main",  # optionnel, "main" par défaut
        },
    )
    curl -H "Content-Type:application/json" \
         -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         --data '{"title": "my title", "description": "My description", "type": "main", filetype: "remote", "format": "csv",  "url": "https://url.to/ressource.csv"}' \
         -X POST $API/datasets/$DATASET/resources/
    http POST $API/datasets/$DATASET/ressources/ \
         X-Api-Key:$API_KEY \
         title="Mon titre" \
         description="Ma description" \
         url="https://url.to/ressource.csv" \
         type="main" filetype="remote" format="csv"
    url = api_url('/datasets/{}/resources/'.format(DATASET))
    response = requests.post(url, json={
        'title': 'Mon titre',
        'description': 'Ma description',
        'url': 'https://url.to/ressource.csv',
        'type': 'main',
        'filetype': 'remote',
        'format': 'csv',
    }, headers=HEADERS)
    
    resource = client.resource().create_remote(
        payload={
            "url": "https://url.to/ressource.csv",
            "title": "Nouvelle ressource distante",
            "type": "main",  # optionnel, "main" par défaut
        },
        dataset_id=DATASET,
    )
    
    # ou alternativement au sein du dataset
    dataset = client.dataset(DATASET)
    resource = dataset.create_remote(
        payload={
            "url": "https://url.to/ressource.csv",
            "title": "Nouvelle ressource distante",
            "type": "main",  # optionnel, "main" par défaut
        },
    )
    curl -H "Content-Type:application/json" \
         -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         --data '{"title": "Nouveau titre", "description": "Nouvelle description"}' \
         -X PUT $API/datasets/$DATASET/
    http PUT $API/datasets/$DATASET/ \
         X-Api-Key:$API_KEY \
         title="Nouveau titre" \
         description="Nouvelle description"
    url = api_url('/datasets/{}/'.format(DATASET))
    response = requests.put(url, json={
        'title': 'Nouveau titre',
        'description': 'Nouvelle description',
    }, headers=HEADERS)
    dataset = client.dataset(DATASET)
    dataset.update(
        {
            "title": "Nouveau titre",
            "description": "Nouvelle description",
        },
    )
    curl -H "Content-Type:application/json" \
         -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         --data '{"title": "Nouveau titre", "description": "Nouvelle description"}' \
         -X PUT $API/datasets/$DATASET/resources/$RESOURCE/
    http PUT $API/datasets/$DATASET/resources/$RESOURCE/ \
         X-Api-Key:$API_KEY \
         title="Nouveau titre" \
         description="Nouvelle description"
    url = api_url('/datasets/{}/resources/{}/'.format(DATASET, RESOUCE))
    response = requests.put(url, json={
        'title': 'Nouveau titre',
        'description': 'Nouvelle description',
    }, headers=HEADERS)
    resource = client.resource(
        id=RESOURCE,
        dataset_id=DATASET,  # optionnel, il est récupéré si non renseigné 
    )
    resource.update(
        {
            "title": "Nouveau titre",
            "description": "Nouvelle description",
        },
    )
    curl -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         -F "file=@/chemin/vers/le/nouveau/fichier" \
         -X POST $API/datasets/$DATASET/resources/$RESOURCE/upload/
    http -f POST $API/datasets/$DATASET/resources/$RESOURCE/upload/ \
         X-Api-Key:$API_KEY \
         file@/chemin/vers/le/nouveau/fichiers
    url = api_url('/datasets/{}/resources/{}/upload/'.format(DATASET, RESOURCE))
    response = requests.post(url, files={
        'file': open('/chemin/vers/le/nouveau/fichier', 'rb'),
    }, headers=HEADERS)
    resource = client.resource(
        id=RESOURCE,
        dataset_id=DATASET,  # optionnel, il est récupéré si non renseigné 
    )
    resource.update(
        file_to_upload="/chemin/vers/le/nouveau/fichier"
    )
    curl -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         -X DELETE $API/datasets/$DATASET/resources/$RESOURCE
    http DELETE $API/datasets/$DATASET/ressources/$RESOURCE/ X-Api-Key:$API_KEY
    url = api_url('/datasets/{}/resources/{}/'.format(DATASET, RESOURCE))
    response = requests.delete(url, headers=HEADERS)
    resource = client.resource(
        id=RESOURCE,
        dataset_id=DATASET,  # optionnel, il est récupéré si non renseigné 
    )
    resource.delete()
    curl -H "Accept:application/json" \
         -H "X-Api-Key:$API_KEY" \
         -X DELETE $API/datasets/$DATASET/
    http DELETE $API/datasets/$DATASET/ X-Api-Key:$API_KEY
    url = api_url('/datasets/{}/'.format(DATASET))
    response = requests.delete(url, headers=HEADERS)
    dataset = client.dataset(DATASET)
    dataset.delete()

    Sélectionnez le schéma qui vous intéresse dans la liste déroulante (les schémas disponibles sont ceux référencés sur schema.data.gouv.fr).

  • Produisez vos données. Trois modes de production sont possibles :

    • Téléversez (uploadez) votre fichier si les données sont déjà consolidées au bon format ;

    • Saisissez vos données dans un formulaire à l'aide des descriptions des différents champs et des valeurs d'exemples : les champs indiqués par un astérisque rouge doivent obligatoirement être renseignés au moment de la saisie

      • Une fois votre formulaire valide, les valeurs apparaissent sous la forme d'une ligne dans un tableau récapitulatif

      • Vous pouvez alors choisir d'ajouter une ou plusieurs lignes ou télécharger le fichier CSV correspondant au tableau récapitulatif

    • Saisissez vos données sur un tableur en ligne

  • La conformité de vos données par rapport au schéma choisi est vérifiée/validée. En cas d'erreur de validation, vous pouvez les corriger.

  • Une fois les données conforme au schéma correspondant, publiez-les sur data.gouv.fr grâce à un formulaire de publication simplifié permettant une authentification tierce.

  • Données géographiques

    GeoJSON, Shapefile, MapInfo MIF/MID, MapInfo TAB et GML, pour les vecteurs / ECW, JPEG2000 et GeoTIFF, pour les données pixelisées (raster)

    Les données géographiques sont organisées sous forme d’ensemble de données hiérarchisées. Les formats proposés sont conçus spécifiquement pour être largement exploitables et être intégrés facilement dans des outils de cartographie.

    Ici

    Données hiérarchiques

    JSON / XML / YAML

    Les données hiérarchiques décrivent des relations hiérarchiques entre différentes données. Le format JSON est préconisé lorsque les données sont liées entre elles sous forme d’arbres verticaux.

    indisponible

    la section "Maîtriser les schémas de données"
    en consultant le site schema.data.gouv.fr
    l’outil publier.etalab.studio
    publier.etalab.studio
    Validata
    pour les données IRVE
    goodtables.io
    CSV Lint
    adresse.data.gouv.fr
    Ici
    Ici
    Page d'accueil de publier.etalab.studio
    Schéma synthétisant la procédure pour saisir, valider et publier des données à l'aide de publier.etalab.studio
    Capture d'écran du menu de validata
    Capture d'écran de la sélection d'un schéma depuis l'interface d'administration de data.gouv.fr
    Pourquoi intégrer des données pivots dans un jeu de données ?

    L'intégration dans un jeu de données de données pivots qui correspondent à un référentiel présente plusieurs avantages :

    • Une meilleure formalisation : en se basant sur un référentiel, le producteur de données a l'assurance d'utiliser un format de données standard et partagé par un grand nombre de jeux de données ;

    • Une meilleure synthèse : en se basant sur un référentiel, le producteur évite l’abondance de détails et va à l’essentiel. L’obtention d’informations complémentaires se fera par le biais de la consultation du référentiel lui-même ;

    • Une meilleure compréhension : en intégrant dans son jeu de données des données correspondant à un référentiel, le producteur facilite la compréhension de celui-ci par les utilisateurs car il se réfère à un standard largement adopté ;

    • Une meilleure réutilisation : intégrer des données liées à un référentiel facilitera la réutilisation du jeu de données et permettra son enrichissement avec d'autres données partageant la même donnée pivot ;

    • Une meilleure interopérabilité : intégrer des données pivots facilite le lien avec des données de référence fiables et à jour.

    Quels référentiels utiliser pour intégrer des données pivots ?

    Voici une liste non exhaustive de référentiels sur lesquels il est possible de s'appuyer pour l'intégration de variables pivots :

    Le service public de la donnée

    Le service public de la donnée (SPD) vise à mettre à disposition avec un haut niveau de qualité les jeux de données de référence qui présentent un fort impact économique et social.

    À ce jour, 9 jeux de données ont été identifiés comme des données de référence :

    Nom du jeu de données
    Variable(s) pivot(s)
    Description
    Producteur

    SIRET, SIREN

    Liste des établissements (SIRET) et unités légales (SIREN) françaises

    BAN

    Référencement de l'intégralité des adresses du territoire français

    Exemple : Afin de lister l'ensemble des actions culturelles de ma région, nous avons vu que le numéro RNA pouvait être utile pour identifier les associations. Grâce à celui-ci, il est également possible de récupérer le numéro SIRET de l'association si celle-ci en possède un. Il est également possible de détailler dans le jeu de données le code commune et le code département de chaque action. Pour cela, il convient de se référer au Code officiel géographique. Attention à bien respecter celui-ci. Par exemple, le code département de l'Ariège est le "09" et pas le "9". Ce type d'erreur pourrait entraîner des difficultés lors de la réutilisation des données.

    Autres référentiels

    Des jeux de données standardisées et communément partagées avec le plus grand nombre peuvent aussi être utilisés comme référentiels.

    Exemple : L'identifiant unique d'une certification professionnelle est le numéro RNCP. Ce jeu de données ne fait pas partie du service public de la donnée mais est largement partagé par les acteurs du domaine de la formation professionnelle.

    Référentiels métiers

    Nom du jeu de données
    Variable(s) pivot(s)
    Description
    Producteur

    Code NAF

    Nomenclature des activités économiques productives, principalement élaborée pour faciliter l'organisation de l'information économique et sociale

    N°RNCP / N°RS

    Répertoire des certifications officielles inscrites au RNCP et au RS

    Référentiels techniques

    Les référentiels techniques n'ont pas de significations métiers mais ils permettent de décrire une donnée de manière standardisée. Ces standards permettent aux utilisateurs et aux algorithmes de pouvoir interpréter automatiquement la donnée de manière correcte.

    Voici deux exemples de référentiels techniques :

    Nom du référentiel
    Description
    Information

    WGS84

    Coordonnées géodésiques d'un lieu

    ISO8601

    Représentation numérique d'une date et d'une heure

    Partager ses propres référentiels

    Cadre Commun d'Architecture des référentiels de données de l'État

    Le Cadre Commun d'Architecture des référentiels de données de l'État fait spécifiquement mention de l'importance des variables pivots dans le partage et la publication de données. Il stipule notamment que :

    • Les données sont un bien, un actif de l’État, elles doivent être gérées et valorisées en conséquence ;

    • Les données doivent être standardisées, définies sur la base d’un vocabulaire commun, contextualisées, et combinables les unes aux autres ;

    • Les données doivent être facilement réutilisables, partageables et accessibles à travers les frontières des administrations ;

    • Les données publiques doivent être mises à disposition librement et ouvertement sur internet ;

    • La sécurité et l'archivage des données doit être assuré.

    Les acteurs sont encouragés à mettre en place leurs propres référentiels internes ou à les partager s'ils existent déjà pour favoriser au mieux le partage et l'interopérabilité des données.

    Il est pertinent de diffuser, en même temps qu'un jeu de données, la liste des valeurs possibles correspondant à votre propre référentiel métier. Celui-ci sera connu et potentiellement réutilisé par d'autres acteurs.

    La mise en place de référentiels fait partie d'une stratégie de montée en qualité de la donnée. Néanmoins ce n'est souvent pas suffisant : il est ensuite nécessaire de diffuser, former et vérifier que les données produites intègrent ces référentiels et n'en dérivent pas (à partir d'un contrôle humain ou de tests automatiques).

    Exemple : J'utilise en interne un numéro unique permettant d'identifier chaque type d'action culturelle (arts du spectacle, cirque, arts plastiques...). Il peut être pertinent de diffuser en parallèle à la diffusion de mon jeu de données la liste de mon référentiel. Des communes de ma région pourraient potentiellement le réutiliser pour décrire leurs actions culturelles à une maille plus fine.

    Comment intégrer des adresses dans un jeu de données ?

    Il existe des référentiels pour décrire une adresse de manière unique.

    Le référentiel officiel d'adresse est la Base Adresse Nationale (ou BAN).

    • Si vous partez de zéro pour constituer un jeu de données --> il est pertinent de partir de la Base Adresse Nationale pour décrire vos adresses.

    • Si vous travaillez sur un jeu de données qui contient déjà des adresses saisies --> il peut s'avérer fastidieux de corriger manuellement l'ensemble des adresses erronées et vous pouvez obtenir une base d'adresse normalisée grâce à la méthode décrite ci-dessous.

    Le géocodage

    Lexique : Géocodage

    Le géocodage consiste à affecter des coordonnées géographiques à une adresse postale.

    Le géocodage peut être en partie automatisé grâce à des outils proposés par Etalab.

    Le site https://adresse.data.gouv.fr/ permet de géocoder une liste d'adresse via un appel à une API ou par le dépôt de fichier csv.

    Il permet aussi, à partir d'un jeu de données contenant des adresses déjà saisies, de retourner un jeu de données enrichi :

    • de coordonnées géographiques (longitude/latitude) ;

    • des adresses « corrigées » récupérées de la BAN.

    Le site adresse.data.gouv.fr est limité à des utilisations ponctuelles et des volumétries de données considérées faibles (moins d'un million de lignes).

    Page d'accueil d'adresse.data.gouv.fr

    Pour géocoder davantage de données (plusieurs millions de lignes), il est recommandé d'installer votre propre environnement de géocodage, en utilisant par exemple le géocodeur Addok. Des ressources sont disponibles sur GitHub pour vous aider dans l'installation de votre environnement.

    Quelle que soit la méthode utilisée, le processus de géocodage retournera une liste d'adresses standardisées avec leurs coordonnées géographiques associées. Il donne aussi accès à une information geo_score correspondant au score de confiance que le géocodeur accorde à l'adresse retournée. Cet indicateur peut être utile à garder dans un jeu de données final, il donnera une indication aux utilisateurs sur la performance du géocodage de chaque adresse.

    le répertoire
    Lexique des données du jeu de données Demande de valeur foncière

    Code Officiel Géographique (COG)

    Codes et libellés

    Liste des communes, cantons, arrondissements, départements, régions, pays et territoires étrangers

    INSEE

    Plan Cadastral Informatisé (PCI)

    Identifiant

    Représentation de chacune des sections du cadastre français

    Ministère de l'Économie et des Finances

    Registre parcellaire graphique (RPG)

    Identifiant

    Base de données géographique de référence pour l'instruction des aides de la politique agricole commune (PAC)

    IGN

    Référentiel de l'organisation administrative de l'Etat

    Identifiant

    Liste des institutions régies par la Constitution de la Ve république ainsi que les administrations qui en dépendent

    DILA

    Référentiel à grande échelle (RGE)

    Identifiant

    Composantes orthophotographique, topographique et adresse, parcellaire et altimétrique des territoires de l'Etat français

    IGN

    Répertoire National des Associations (RNA)

    N° RNA / N° Waldec

    Ensemble des associations relevant de la loi du 1er juillet 1901 relative au contrat d’association, dont le siège est en France

    Ministère de l'Intérieur

    Répertoire Opérationnel des Métiers et des Emplois (ROME)

    Code ROME

    Inventaire des dénominations d’emplois/métiers les plus courantes, analyse des activités et compétences, regroupement des emplois selon un principe d’équivalence ou de proximité

    Pôle Emploi

    Fichier FANTOIR des voies et lieux-dits

    N° FANTOIR

    Nom des lieux-dits et des voies pour chaque commune, y compris celles situées dans les lotissements et les copropriétés

    Ministère de l'Économie et des Finances

    Etats et capitales du monde

    Code Pays

    Liste des états indépendants reconnus par la France

    Ministère de l'Europe et des Affaires Etrangères

    Nomenclatures des professions et catégories socioprofessionnelles

    Code PCS / Code PCS-ESE

    Nomenclatures des professions et catégories socioprofessionnelles

    INSEE

    Liste des établissements d'enseignements supérieurs Liste des établissements d'enseignements secondaires

    N°UAI

    Liste des unités administratives immatriculées

    ONISEP

    Base SIRENE
    INSEE
    Base Adresse Nationale (BAN)
    BAN
    Nomenclature d’activités française (NAF)
    INSEE
    Répertoire National des Certifications Professionnelles (RNCP) et Répertoire Spécifique (RS)
    France Compétences
    Wikipedia
    Wikipedia
    Liste des modifications réalisées sur le jeu de données SECMAR

    Focus : Construire un schéma TableSchema

    La pertinence de la mise en place d'un standard de données réside dans son adéquation entre les capacités de sa mise en oeuvre par les producteurs de données et les outils permettant l'automatisation des jeux de données valides par rapport à cette spécification.

    Cette standardisation doit permettre de faciliter la mise en relation des jeux de données issus de différents producteurs.

    Cette page détaille des recommandations, visant à faciliter la création de nouveaux schémas et leur intégration dans une chaîne de validation et de publication généralisable, notamment :

    • Des recommandations pour le formatage des fichiers csv

    • Des recommandations de formatage des données

    • Des recommandations de champs obligatoires

    • Des recommandations pour le nommage des fichiers

    • Des recommandations pour le nommage des champs

    • Des recommandations pour la mise en conformité

    Recommandations pour le formatage des fichiers csv

    Un des formats privilégiés pour les standards de données est le (Comma Separated Values, valeurs séparées par des virgules). Il s'agit d'un format de données "à plat", adéquat pour les structures de données simples.

    Cependant, ce format simple ne dispose pas de spécifications contraignant la saisie des données. Pour cela un schéma en Json est ajouté dont la structure est défini par le standard . TableSchema permet d'indiquer les formats des données attendus, de spécifier des contraintes (types de valeurs, cardinalité) et de documenter les différents champs composant le schéma.

    L'outil de validation utilisé pour vérifier la conformité d'un fichier csv au standard auquel il fait référence s'appuie sur la structure tabulaire des données. Elles peuvent donc être contenues dans un tableur numérique au format .xls, .xlsx ou .ods ou dans un fichier texte au format .csv, .txt ou autre.

    La question du séparateur utilisé pour séparer deux champs de données dans un fichier .csv n'est donc pas essentielle. Cependant, certains outils se basent sur la valeur de ce séparateur pour traiter et publier des jeux de données. Nous vous proposons donc un certain nombre de recommandations afin de favoriser la généralisation d'un usage contribuant à l'interopérabilité des données produites.

    Format de fichier csv

    Bien que de nombreux jeux de données en CSV utilisent le point-virgule comme séparateur de champs, il a été décidé de privilégier le séparateur virgule car plus conforme à l'esprit du format csv.

    Les tableurs numériques courants (Excel et Calc) peuvent produire et lire des fichiers csv. Lors de l'enregistrement d'un fichier créé avec l'outil Calc, l'utilisatrice ou utilisateur doit spécifier le format d'encodage des données ainsi que le séparateur de champs. Lorsque le séparateur de champs retenu est la virgule, il est recommandé d'utiliser les guillemets double " comme séparateur de chaîne de caractères. De cette manière, si une virgule est présente à l'intérieur d'une cellule elle ne sera pas considérée comme un séparateur de champs.

    Lors de l'ouverture d'un fichier csv dans Calc, une fenêtre modale propose plusieurs options permettant de spécifier un caractère de séparation et un encodage des données.

    Dans Excel, il faut aller dans l'onglet données et sélectionner l'option Fichier texte pour accéder à l'assistant d'import des données.

    L’encodage des caractères à privilégier est l' de manière à garantir une meilleure interopérabilité des données.

    Pour faciliter la lecture des fichiers publiés en CSV il est recommandé d'y associer dans les outils de publication le type MIME ou Content-Type "text/csv".

    Chaque ligne du fichier doit avoir le même nombre de champs, ce qui signifie que lorsqu'une cellule est vide elle doit quand même être présente soit avec la valeur Null, soit avec des crochets vides [] dans le cas des champs de type tableau (array), soit laissée vide mais apparaître à l'export avec 2 virgules qui se suivent ,, .

    Recommandations de formatage des données

    Les recommandations de formatage pour les données sont généralement issues du standard , lui-même inspiré des spécifications du format , dans lequel sont exprimés les schémas de données permettant l'automatisation de leur validation.

    Ce standard dispose des types de données suivants :

    • string : s'applique pour toutes les chaînes de caractères

    • number : s'applique pour les chiffres et nombres contenant éventuellement des décimales

    • integer : s'applique pour les chiffres et nombres entiers

    Les types de données peuvent être assortis de formats de données facilitant l'automatisation de leur validation.

    Pour déclarer un format de données dans un schéma JSON il est possible d'utiliser différentes propriétés permettant de le caractériser :

    • name : le nom du champ

    • title : le titre du champ

    • description : la description des valeurs attendues dans ce champ

    • format

    Il est également possible de contraindre les valeurs autorisées dans ce champ à l'aide de plusieurs proriétés :

    • required : indique l'obligation de la présence d'une valeur pour ce champ dans toutes les lignes du fichier

    • unique : indique que chaque valeur de ce champ à l'intérieur du fichier doit être unique

    • minLength : indique la taille minimale des valeurs de ce champ

    Ci-dessous quelques exemples tirés du .

    Le champ permettant d'indiquer le numéro SIRET d'une collectivité est spécifiée de la manière suivante :

    Le champ permettant d'indiquer la date de publication d'un enregistrement du jeu de données est spécifié de la manière suivante :

    Les informations ci-dessous décrivent les différents types de champs disponibles dans la spécification TableSchema.

    Données de type string

    Pour le type string, les formats de données suivants sont disponibles :

    • default : n'importe quelle chaîne de caractère

    • email : une adresse email valide.

      • motif de validation :

    Données de type décimal

    • Description : Les valeurs décimales doivent utiliser le point afin d'être plus facilement exploitables par les tableurs numériques.

    • Type : number

    • Exemple : 3900.50

    Données de type date

    • Description : date au format AAAA-MM-JJ suivant la norme internationale .

    • Type : date

    • Exemple : 2017-10-15

    Données de type date avec heure

    • Description : date au format aaaa-mm-jjThh:mi:ssZZZZZZ suivant la norme internationale . On considérera que ZZZZZZ (+ou- décalage horaire GMT), est par défaut +01:00 en France et qu'il est inutile de le préciser dans les formats.

    • Type : datetime

    • Exemple : 1997−07−16T19:20:00

    Données de type date avec heure de début et de fin

    • Description : date au format aaaa-mm-jjThh:mi/hh:mi suivant la norme internationale ISO 8601. Ce type de données s'applique pour un créneau horaire dans la même journée, sans les secondes. Pour une extension de ces conditions, voir la norme .

    • Type : datetime

    • Exemple : 1997−07−16T08:30/17:30

    Données de type horaires d'ouverture

    • Description : horaires indiquant les heures d'ouverture d'un service ou d'un commerce. Ce type de données permet de préciser les différents horaires d'ouverture pour les différents jours de la semaine. Il s'agit donc d'un type de données multi-valeur au sein duquel le nom du jour de la semaine est abrégé et suivi par les heures d'ouvertures. Les abréviations pour les jours sont en anglais (Mo, Tu, We, Th, Fr, Sa, Su) et les horaires sont sous la forme HH:MM

    Un assistant graphique en ligne permet de générer simplement cette structure de données

    • Type : string (chaîne de caractères)

    • Exemple : Mo 08:15-13:15; Tu 03:15-06:15; We 03:15-09:30; Th 02:30-07:15; Fr 01:30-05:45; Sa 00:30-05:00; Su 02:45-08:30

    • Nommage : abreviation-du-schemaHoraires

    Données de type géolocalisation

    La possibilité est laissée de décrire les points de géolocalisation d'une donnée à l'intérieur d'un champ unique (geopoint) ou à l'aide de 2 champs (latitude et longitude).

    Latitude

    • Description : ce type de données permet de saisir la coordonnée de latitude exprimée en permettant de localiser un équipement. Le signe de séparation entre les parties entière et décimale du nombre est le point. Précision : 6 décimales maximum.

    • Type : number

    • Exemple : 48.563433

    Longitude

    • Description : ce type de données permet de saisir la coordonnée de longitude exprimée en permettant de localiser un équipement. Le signe de séparation entre les parties entière et décimale du nombre est le point. Précision : 6 décimales max.

    • Type : number

    • Exemple : 2.572875

    Geopoint

    • Description : ce type de données permet de saisir les coordonnées de latitude et de longitude exprimée en permettant de localiser un équipement. Le signe de séparation entre les parties entière et décimale du nombre est le point. Précision : 6 décimales max. Le séparateur de valeur est la virgule. Il est donc nécessaire d'entourer ces valeurs de guillemets. La première valeur est la latitude

    • Type : number

    • Exemple : "48.563433, 2.572875"

    Geoshape

    • Description : ce type de données permet de décrire la forme géographique d'un équipement. La forme est décrite à l'aide de paires de coordonnées, séparées par un espace vide et chaque paire séparée par une virgule. La description d'une ligne est exprimée à l'aide de 2 ou plus paires de points séparés par des virgules. La description d'un polygone est exprimée par 4 ou plus paires de points séparés par des virgules dont la dernière est identique à la première.

    • Type : string

    • Exemple : "48.563433 2.572875, 49.234933 2.134432, 49.885311 2.134003, 48.974635 2.1134567, 48.563433 2.572875"

    Données de type adresse

    Ce type de champ permet de décrire l'adresse postale d'un équipement. Il est décomposé entre 3 champs permettant de distinguer et de faciliter le tri à l'intérieur des informations de voirie, de code postal et de commune. Le numéro et le nom de la voie sont séparés par une virgule.

    Voie

    • Description : ce type de champs permet de saisir le numéro et le nom de la voie

    • Type : string

    • Exemple : 34, rue de Latresne

    • Nommage

    Code postal ou Code INSEE

    • Description : ce type de champs permet de saisir le code postal (ou le code INSEE) de la commune

    • Type : number

    • Exemple : 45800

    • Nommage

    Commune

    • Description : ce type de champs permet de saisir le nom de la commune

    • Type : string

    • Exemple : Saint-Jean-de-Braye

    • Nommage

    Recommandations de champs obligatoires

    Afin d'unifier la description des données au travers des différentes thématiques abordées par le propositions de standard de données, il est fortement recommandé de rendre obligatoire la présence d'un certains nombre de champs.

    Ceux-ci contribuent à la portabilité des données (qui produit la donnée) ou à leur fiabilité (quand a été produite la donnée).

    Identification du producteur

    Pour l'identification des autorités publiques à l'origine de la production et de la publication des jeux de données, il est recommandé d'indiquer le nom et le numéro de SIRET sur chaque ligne de chaque jeu de données.

    Nom de la collectivité

    • Description : ce champs permet de saisir le nom de l'autorité publique responsable de la production des données

    • Type : string

    • Exemple : Conseil départemental de la Creuse

    Par exemple

    SIRET de la collectivité

    • Description : ce champ permet d'indiquer le numéro d'identification de l'autorité publique au sein de la base nationale des établissements.

    • Type : string

    • Exemple : 21330063500017

    Par exemple :

    Horodatage des données

    Pour faciliter la réutilisation et la mise à jour des données, il est recommandé de fournir aux réutilisatrices et réutilisateurs potentiels des dates de première publication et de dernière modification pour chaque entité du jeu de données.

    Ces informations au format Date avec horaire peuvent correspondre à la date de première publication et faire apparaître les dates de dernière modification pour l'ensemble des lignes ou en cas de mise à jour partielle pour une ligne de données particulière.

    Il est également recommandé d'y associer un champ permettant de décrire la raison ayant entraîné une mise à jour des données depuis leur publication.

    Date de création/publication

    • Description : ce champs permet de décrire la date de première publication de la donnée

    • Type : datetime

    • Exemple : 2020-05-11T14:08:32Z

    • Nommage

    Par exemple :

    Date de dernière modification

    • Description : ce champs permet de décrire la date de dernière modification de la donnée

    • Type : datetime

    • Exemple : 2020-05-11T14:08:32Z

    • Nommage

    Par exemple :

    Information sur les modifications

    • Description : ce champs permet de décrire la raison d'une modification de la donnée depuis sa publication initiale

    • Type : string

    • Exemple : changement dû à un aléa de livraison

    Par exemple :

    Recommandations pour le nommage des fichiers

    Les fichiers doivent, sauf exception et autant que possible, respecter les règles de nommage suivantes :

    AAAAMMJJ_idProducteur_nom-du-fichier.extension

    • AAAAMMJJ : Date de création du fichier

    • idProducteur : Numéro sur 9 chiffres pour identifier le producteur

    • nom-du-fichier Chaîne de caractères dont les termes, en minuscules non accentuées, sont séparés par un tiret du milieu

    Les 3 éléments constitutifs de la chaîne principale avant l'extension sont assemblés en un seul tenant et séparés par un tiret du bas.

    • Exemple : '20180314_213502388_prenoms-nouveaux-nes-rennes-2017.csv'

    Recommandations pour le nommage des champs

    Afin d'uniformiser les fichiers produits dans le cadre de schémas de standardisation, il est recommandé de normaliser les intitulés des champs composant chaque standard.

    La règle générale préconisée est l'utilisation de l'écriture camelCase où chaque mot composant l'intitulé du champ est écrit avec une majuscule à l'exception du premier.

    En complément il est recommandé d'utiliser un préfixe (mot complet ou abréviation) pour l'ensemble des champs d'un standard.

    En conséquence, pour le standard des menus, les intitulés des champs sont préfixés par le mot menu suivi des intitulés à proprement dit. Par exemple :

    • menuCollNom

    • menuRestaurantIdType

    • menuRepasType

    Aucun caractère accentué ou spécial ne doit être utilisé dans l'intitulé d'un champ. Il est également préconisé de ne pas dépasser 50 caractères pour l'intitulé d'un champ et d'utiliser le singulier pour les mots composant l'intitulé du champ.

    Recommandations pour la mise en conformité

    Pour garantir la conformité des jeux de données, il est demandé aux producteurs de s'assurer que la structure, les champs et les contenus attendus sont effectivement respectés.

    De fait, les fichiers tabulaires doivent, autant que possible, contenir :

    • Toutes les colonnes, y compris celles dont les cellules ne sont pas renseignées, dans le bon ordre, et avec des en-têtes correctement nommées sur la première ligne ;

    • Autant de lignes que nécessaire comprenant des cellules dont les valeurs peuvent être obligatoires (elles doivent être impérativement renseignées) ou optionnelles (elles sont seulement recommandées ou soumises à condition de disponibilité / pertinence).

    List each zone for a given level with their datasets count

    get
    Paramètres de chemin
    levelstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /spatial/coverage/{level}/
    200

    Success

    List all known spatial granularities

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /spatial/granularities/
    200

    Success

    List all known levels

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /spatial/levels/
    200

    Success

    Fetch a zone

    get
    Paramètres de chemin
    idstringRequis

    A zone identifier

    Réponses
    200

    Success

    Aucun contenu

    get
    /spatial/zone/{id}/
    200

    Success

    Aucun contenu

    Fetch datasets for a given zone

    get
    Paramètres de chemin
    idstringRequis

    A zone identifier

    Paramètres de requête
    dynamicbooleanOptionnel

    Append dynamic datasets

    sizeintegerOptionnel

    The amount of datasets to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /spatial/zone/{id}/datasets/
    200

    Success

    Geospatial zones suggest endpoint using mongoDB contains

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /spatial/zones/suggest/
    200

    Success

    Fetch a zone list as GeoJSON

    get
    Paramètres de chemin
    idsstringRequis

    A zone identifiers list (comma separated)

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /spatial/zones/{ids}/
    200

    Success

    List all posts

    get
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    sortstringOptionnel

    The sorting attribute

    with_draftsbooleanOptionnel

    True also returns the unpublished posts (only for super-admins)

    qstringOptionnel

    query string to search through resources titles

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /posts/
    200

    Success

    Create a post

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    body_typestringOptionnel

    HTML or markdown body type

    Default: markdown
    contentstring · markdownRequis

    The post content in Markdown

    created_atstring · date-timeLecture seuleOptionnel

    The post creation date

    credit_tostringOptionnel

    An optional credit line (associated to the image)

    credit_urlstringOptionnel

    An optional link associated to the credits

    headlinestringRequis

    The post headline

    idstringOptionnel

    The post identifier

    imagestringLecture seuleOptionnel

    The post image

    last_modifiedstring · date-timeLecture seuleOptionnel

    The post last modification date

    namestringRequis

    The post name

    pagestringLecture seuleOptionnel

    The post web page URL

    publishedstring · date-timeLecture seuleOptionnel

    The post publication date

    slugstringLecture seuleOptionnel

    The post permalink string

    tagsstring[]Optionnel

    Some keywords to help in search

    uristringLecture seuleOptionnel

    The API URI for this post

    Réponses
    200

    Success

    application/json
    400

    Validation error

    post
    /posts/

    Get a given post

    get
    Paramètres de chemin
    poststringRequis

    The post ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    404

    Object not found

    get
    /posts/{post}/

    Update a given post

    put
    Paramètres de chemin
    poststringRequis

    The post ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    body_typestringOptionnel

    HTML or markdown body type

    Default: markdown
    contentstring · markdownRequis

    The post content in Markdown

    created_atstring · date-timeLecture seuleOptionnel

    The post creation date

    credit_tostringOptionnel

    An optional credit line (associated to the image)

    credit_urlstringOptionnel

    An optional link associated to the credits

    headlinestringRequis

    The post headline

    idstringOptionnel

    The post identifier

    imagestringLecture seuleOptionnel

    The post image

    last_modifiedstring · date-timeLecture seuleOptionnel

    The post last modification date

    namestringRequis

    The post name

    pagestringLecture seuleOptionnel

    The post web page URL

    publishedstring · date-timeLecture seuleOptionnel

    The post publication date

    slugstringLecture seuleOptionnel

    The post permalink string

    tagsstring[]Optionnel

    Some keywords to help in search

    uristringLecture seuleOptionnel

    The API URI for this post

    Réponses
    200

    Success

    application/json
    400

    Validation error

    404

    Object not found

    put
    /posts/{post}/

    Delete a given post

    delete
    Paramètres de chemin
    poststringRequis

    The post ID or slug

    Réponses
    204

    Object deleted

    404

    Object not found

    delete
    /posts/{post}/

    Aucun contenu

    Get a single job given an ID

    get
    Paramètres de chemin
    identstringRequis
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /harvest/job/{ident}/
    200

    Success

    List all harvest sources

    get
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    ownerstringOptionnel

    The organization or user ID to filter on

    deletedbooleanOptionnel

    Include sources flaggued as deleted

    qstringOptionnel

    The search query

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /harvest/sources/
    200

    Success

    Create a new harvest source

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    activebooleanRequis

    Is this source active

    Default: false
    autoarchivebooleanRequis

    If enabled, datasets not present on the remote source will be automatically archived

    Default: true
    backendstring · enumRequis

    The source backend

    Example: ckanValeurs possibles:
    configobjectOptionnel

    The configuration as key-value pairs

    created_atstring · date-timeLecture seuleRequis

    The source creation date

    deletedstring · date-timeLecture seuleOptionnel

    The source deletion date

    descriptionstring · markdownOptionnel

    The source description

    idstringLecture seuleOptionnel

    The source unique identifier

    namestringRequis

    The source display name

    schedulestringLecture seuleOptionnel

    The source schedule (interval or cron expression)

    urlstringRequis

    The source base URL

    Réponses
    200

    Success

    application/json
    post
    /harvest/sources/

    Site-wide variables

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /site/
    200

    Success

    Root RDF endpoint with content negociation handling

    get
    Paramètres de requête
    qstringOptionnel

    The search query

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    pageintegerOptionnel

    The page to display

    tagstring[]Optionnel
    licensestringOptionnel
    featuredbooleanOptionnel

    If set to true, it will filter on featured datasets only. If set to false, it will exclude featured datasets.

    geozonestringOptionnel
    granularitystringOptionnel
    temporal_coveragestringOptionnel
    organizationstringOptionnel
    badgestring · enumOptionnelValeurs possibles:
    organization_badgestring · enumOptionnelValeurs possibles:
    ownerstringOptionnel
    followed_bystringOptionnel

    (beta, subject to change/be removed)

    formatstringOptionnel
    schemastringOptionnel
    schema_versionstringOptionnel
    topicstringOptionnel
    creditstringOptionnel
    dataservicestringOptionnel
    reusestringOptionnel
    archivedbooleanOptionnel

    If set to true, it will filter on archived datasets only. If set to false, it will exclude archived datasets. User must be authenticated and results are limited to user visibility

    deletedbooleanOptionnel

    If set to true, it will filter on deleted datasets only. If set to false, it will exclude deleted datasets. User must be authenticated and results are limited to user visibility

    privatebooleanOptionnel

    If set to true, it will filter on private datasets only. If set to false, it will exclude private datasets. User must be authenticated and results are limited to user visibility

    page_sizeintegerOptionnel

    The page size

    Réponses
    200

    Success

    Aucun contenu

    get
    /site/catalog
    get
    Réponses
    200

    Success

    Aucun contenu

    get
    /site/context.jsonld
    200

    Success

    Aucun contenu

    List all scheduled jobs

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /workers/jobs/
    200

    Success

    Create a new scheduled job

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    argsobject[]Optionnel

    The job execution arguments

    Default: []
    descriptionstringOptionnel

    The job description

    enabledbooleanOptionnel

    Is this job enabled

    Default: false
    idstringLecture seuleOptionnel

    The job unique identifier

    kwargsobjectOptionnel

    The job execution keyword arguments

    Default: {}
    last_run_atstring · date-timeLecture seuleOptionnel

    The last job execution date

    last_run_idstringLecture seuleOptionnel

    The last execution task id

    namestringRequis

    The job unique name

    schedulestringLecture seuleOptionnel

    The schedule display

    taskstring · enumRequis

    The task name

    Example: test-high-queueValeurs possibles:
    Réponses
    200

    Success

    application/json
    post
    /workers/jobs/

    List all Discussions

    get
    Paramètres de requête
    qstringOptionnel

    The search query

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    closedbooleanOptionnel

    Filters discussions on their closed status if specified

    forstring[]Optionnel

    Filter discussions for a given subject

    orgstringOptionnel

    Filter discussions for a given organization

    userstringOptionnel

    Filter discussions created by a user

    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /discussions/
    200

    Success

    Create a new Discussion

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    commentstringRequis

    The content of the initial comment

    extrasobjectOptionnel

    Extras attributes as key-value pairs

    titlestringRequis

    The title of the discussion to open

    Réponses
    200

    Success

    application/json
    post
    /discussions/

    Get a discussion given its ID

    get
    Paramètres de chemin
    idstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /discussions/{id}/
    200

    Success

    Add comment and optionally close a discussion given its ID

    post
    Paramètres de chemin
    idstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    closebooleanOptionnel

    Is this a closing response. Only subject owner can close

    commentstringRequis

    The comment to submit

    Réponses
    200

    Success

    application/json
    403

    Not allowed to close this discussion OR can't add comments on a closed discussion

    post
    /discussions/{id}/

    Delete a discussion given its ID

    delete
    Paramètres de chemin
    idstringRequis
    Réponses
    403

    Not allowed to delete this discussion

    delete
    /discussions/{id}/
    403

    Not allowed to delete this discussion

    Aucun contenu

    Creates a contact point

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    contact_formstringOptionnel

    The contact point's contact form

    emailstringRequis

    The contact point's email

    idstringLecture seuleOptionnel

    The contact point's identifier

    namestringRequis

    The contact point's name

    rolestringRequis

    The role of the contact

    Réponses
    200

    Success

    application/json
    400

    Validation error

    post
    /contacts/

    Deletes a contact point given its identifier

    delete
    Paramètres de chemin
    contact_pointstringRequis
    Réponses
    204

    Contact point deleted

    404

    Contact point not found

    delete
    /contacts/{contact_point}/

    Aucun contenu

    Get a contact point given its identifier

    get
    Paramètres de chemin
    contact_pointstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    404

    Contact point not found

    get
    /contacts/{contact_point}/
    parameters
    Paramètres de chemin
    contact_pointstringRequis
    parameters
    /contacts/{contact_point}/

    Updates a contact point given its identifier

    put
    Paramètres de chemin
    contact_pointstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    contact_formstringOptionnel

    The contact point's contact form

    emailstringRequis

    The contact point's email

    idstringLecture seuleOptionnel

    The contact point's identifier

    namestringRequis

    The contact point's name

    rolestringRequis

    The role of the contact

    Réponses
    200

    Success

    application/json
    400

    Validation error

    404

    Contact point not found

    put
    /contacts/{contact_point}/
    get
    Paramètres de requête
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    qstringOptionnel
    ownerstringOptionnel
    organizationstringOptionnel
    organization_badgestring · my-custom-formatOptionnel
    typestring · enumOptionnelValeurs possibles:
    datasetstringOptionnel
    dataservicestringOptionnel
    tagstringOptionnel
    topicstring · enumOptionnelValeurs possibles:
    privatebooleanOptionnel
    featuredbooleanOptionnel
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /reuses/
    200

    Success

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    archivedstring · date-timeOptionnel
    dataservicesstring[]Optionnel

    ID of the reference

    datasetsstring[]Optionnel

    ID of the reference

    deletedstring · date-timeOptionnel
    descriptionstring · markdownRequis
    extrasobjectOptionnel
    organizationstringOptionnel

    Only present if owner is not set. Can only be set to an organization of the current authenticated user.

    ownerstringOptionnel

    Only present if organization is not set. Can only be set to the current authenticated user.

    privatebooleanOptionnel
    tagsstring[]Optionnel
    titlestringRequis
    topicstring · enumRequisExample: healthValeurs possibles:
    typestring · enumRequisExample: apiValeurs possibles:
    urlstringRequis

    The remote URL (website)

    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /reuses/

    List all available reuse badges and their labels

    get
    Réponses
    200

    Success

    Aucun contenu

    get
    /reuses/badges/
    200

    Success

    Aucun contenu

    Reuses suggest endpoint using mongoDB contains

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /reuses/suggest/
    200

    Success

    List all reuse topics

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /reuses/topics/
    200

    Success

    List all reuse types

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /reuses/types/
    200

    Success

    List all followers for a given object

    get
    Paramètres de chemin
    idstringRequis
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    userstringOptionnel

    Filter follower by user, it allows to check if a user is following the object

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /reuses/{id}/followers/
    200

    Success

    Follow an object given its ID

    post

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    post
    /reuses/{id}/followers/
    200

    Success

    Aucun contenu

    Unfollow an object given its ID

    delete

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    delete
    /reuses/{id}/followers/
    200

    Success

    Aucun contenu

    Fetch a given reuse

    get
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    404

    Reuse not found

    410

    Reuse has been deleted

    get
    /reuses/{reuse}/

    Update a given reuse

    put
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    archivedstring · date-timeOptionnel
    dataservicesstring[]Optionnel

    ID of the reference

    datasetsstring[]Optionnel

    ID of the reference

    deletedstring · date-timeOptionnel
    descriptionstring · markdownRequis
    extrasobjectOptionnel
    organizationstringOptionnel

    Only present if owner is not set. Can only be set to an organization of the current authenticated user.

    ownerstringOptionnel

    Only present if organization is not set. Can only be set to the current authenticated user.

    privatebooleanOptionnel
    tagsstring[]Optionnel
    titlestringRequis
    topicstring · enumRequisExample: healthValeurs possibles:
    typestring · enumRequisExample: apiValeurs possibles:
    urlstringRequis

    The remote URL (website)

    Réponses
    200

    Success

    application/json
    400

    Validation error: your data cannot be updated for now, we have been notified of the error and we will fix it as soon as possible.

    404

    Reuse not found

    410

    Reuse has been deleted

    put
    /reuses/{reuse}/

    Delete a given reuse

    delete
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Réponses
    204

    Reuse deleted

    404

    Reuse not found

    410

    Reuse has been deleted

    delete
    /reuses/{reuse}/

    Aucun contenu

    Create a new badge for a given reuse

    post
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    kindstringRequis

    Kind of badge (certified, etc), specific to each model

    Réponses
    200

    Success

    application/json
    post
    /reuses/{reuse}/badges/
    200

    Delete a badge for a given reuse

    delete
    Paramètres de chemin
    badge_kindstringRequis
    reusestringRequis

    The reuse ID or slug

    Réponses
    200

    Success

    Aucun contenu

    delete
    /reuses/{reuse}/badges/{badge_kind}/
    200

    Success

    Aucun contenu

    Add a dataset to a given reuse

    post
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    Réponses
    200

    The dataset is already present

    application/json
    201

    Success

    application/json
    post
    /reuses/{reuse}/datasets/

    Mark a reuse as featured

    post
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    post
    /reuses/{reuse}/featured/
    200

    Success

    Unmark a reuse as featured

    delete
    Paramètres de chemin
    reusestringRequis

    The reuse ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    delete
    /reuses/{reuse}/featured/
    200

    Success

    Fetch the current user (me) identity

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/
    200

    Success

    Update my profile

    put
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    Réponses
    200

    Success

    application/json
    400

    Validation error

    put
    /me/

    Delete my profile

    delete
    Réponses
    204

    Object deleted

    delete
    /me/
    204

    Object deleted

    Aucun contenu

    List all my datasets (including private ones)

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/datasets/
    200

    Success

    Fetch the current user (me) metrics

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/metrics/
    200

    Success

    List all community resources related to me and my organizations

    get
    Paramètres de requête
    qstringOptionnel

    The string to filter items

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/org_community_resources/
    200

    Success

    List all datasets related to me and my organizations

    get
    Paramètres de requête
    qstringOptionnel

    The string to filter items

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/org_datasets/
    200

    Success

    List all discussions related to my organizations

    get
    Paramètres de requête
    qstringOptionnel

    The string to filter items

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/org_discussions/
    200

    Success

    List all reuses related to me and my organizations

    get
    Paramètres de requête
    qstringOptionnel

    The string to filter items

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/org_reuses/
    200

    Success

    List all my reuses (including private ones)

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /me/reuses/
    200

    Success

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /transfer/
    200

    Success

    Initiate transfer request

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    commentstringRequis

    An explanation about the transfer request

    Réponses
    200

    Success

    application/json
    post
    /transfer/
    200

    Success

    Fetch a transfer request given its identifier

    get
    Paramètres de chemin
    idstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /transfer/{id}/
    200

    Success

    Respond to a transfer request

    post
    Paramètres de chemin
    idstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    commentstringOptionnel

    An optional comment about the transfer response

    responsestring · enumRequis

    The response

    Example: acceptValeurs possibles:
    Réponses
    200

    Success

    application/json
    post
    /transfer/{id}/
    200

    Success

    List all current user pending notifications

    get
    Paramètres de requête
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    handledbooleanOptionnel
    userstringOptionnel
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /notifications/
    200

    Success

    List all users

    get
    Paramètres de requête
    qstringOptionnel

    The search query

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /users/
    200

    Success

    Create a new object

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    aboutstring · markdownOptionnel

    The user self description

    activebooleanOptionnel
    avatarstringOptionnel

    The user avatar URL

    avatar_thumbnailstringOptionnel

    The user avatar thumbnail URL. This is the square (500x500) and cropped version.

    emailobjectLecture seuleOptionnel

    The user email

    first_namestringRequis

    The user first name

    idstringRequis

    The user identifier

    last_login_atobjectLecture seuleOptionnel

    The user last connection date (only present for global admins and on /me)

    last_namestringRequis

    The user last name

    metricsobjectLecture seuleOptionnel

    The user metrics

    pagestringLecture seuleOptionnel

    The user web page URL

    rolesstring[]Optionnel

    Site wide user roles

    sincestring · date-timeRequis

    The registeration date

    slugstringRequis

    The user permalink string

    uristringLecture seuleOptionnel

    The API URI for this user

    websitestringOptionnel

    The user website

    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /users/

    List all possible user roles

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /users/roles/
    200

    Success

    Suggest users

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizestringOptionnel

    The amount of suggestion to fetch (between 1 and 20)

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /users/suggest/
    200

    Success

    List all followers for a given object

    get
    Paramètres de chemin
    idstringRequis
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    userstringOptionnel

    Filter follower by user, it allows to check if a user is following the object

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /users/{id}/followers/
    200

    Success

    Follow a user given its ID

    post
    Paramètres de chemin
    idstringRequis
    Réponses
    403

    When trying to follow yourself

    post
    /users/{id}/followers/
    403

    When trying to follow yourself

    Aucun contenu

    Unfollow an object given its ID

    delete

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    delete
    /users/{id}/followers/
    200

    Success

    Aucun contenu

    Get a user given its identifier

    get
    Paramètres de chemin
    userstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    404

    User not found

    410

    User is not active or has been deleted

    get
    /users/{user}/

    Update a user given its identifier

    put
    Paramètres de chemin
    userstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    aboutstring · markdownOptionnel

    The user self description

    activebooleanOptionnel
    avatarstringOptionnel

    The user avatar URL

    avatar_thumbnailstringOptionnel

    The user avatar thumbnail URL. This is the square (500x500) and cropped version.

    emailobjectLecture seuleOptionnel

    The user email

    first_namestringRequis

    The user first name

    idstringRequis

    The user identifier

    last_login_atobjectLecture seuleOptionnel

    The user last connection date (only present for global admins and on /me)

    last_namestringRequis

    The user last name

    metricsobjectLecture seuleOptionnel

    The user metrics

    pagestringLecture seuleOptionnel

    The user web page URL

    rolesstring[]Optionnel

    Site wide user roles

    sincestring · date-timeRequis

    The registeration date

    slugstringRequis

    The user permalink string

    uristringLecture seuleOptionnel

    The API URI for this user

    websitestringOptionnel

    The user website

    Réponses
    200

    Success

    application/json
    400

    Validation error

    404

    User not found

    410

    User is not active or has been deleted

    put
    /users/{user}/

    Delete a user given its identifier

    delete
    Paramètres de chemin
    userstringRequis
    Paramètres de requête
    no_mailbooleanOptionnel

    Do not send a mail to notify the user of the deletion

    delete_commentsbooleanOptionnel

    Delete comments posted by the user upon user deletion

    Réponses
    204

    Object deleted

    403

    When trying to delete yourself

    404

    User not found

    410

    User is not active or has been deleted

    delete
    /users/{user}/

    Aucun contenu

    Suggest tags

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Réponses
    200

    Success

    Aucun contenu

    get
    /tags/suggest/
    200

    Success

    Aucun contenu

    List or search all organizations

    get
    Paramètres de requête
    qstringOptionnel

    The search query

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    badgestring · enumOptionnelValeurs possibles:
    namestringOptionnel
    business_number_idstringOptionnel
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/
    200

    Success

    Create a new organization

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    acronymstringOptionnel

    The organization acronym

    business_number_idstringOptionnel

    The organization's business identification number.

    created_atstring · date-timeLecture seuleOptionnel

    The organization creation date

    deletedstring · date-timeLecture seuleOptionnel

    The organization deletion date if deleted

    descriptionstring · markdownRequis

    The organization description in Markdown

    extrasobjectOptionnel

    Extras attributes as key-value pairs

    idstringRequis

    The organization identifier

    last_modifiedstring · date-timeLecture seuleOptionnel

    The organization last modification date

    logostringOptionnel

    The organization logo URL

    logo_thumbnailstringOptionnel

    The organization logo thumbnail URL. This is the square (100x100) and cropped version.

    metricsobjectLecture seuleOptionnel

    The organization metrics

    namestringRequis

    The organization name

    pagestringLecture seuleOptionnel

    The organization web page URL

    slugstringRequis

    The organization string used as permalink

    uristringLecture seuleOptionnel

    The API URI for this organization

    urlstringOptionnel

    The organization website URL

    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /organizations/

    List all available organization badges and their labels

    get
    Réponses
    200

    Success

    Aucun contenu

    get
    /organizations/badges/
    200

    Success

    Aucun contenu

    List all possible organization roles

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/roles/
    200

    Success

    Organizations suggest endpoint using mongoDB contains

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/suggest/
    200

    Success

    List all followers for a given object

    get
    Paramètres de chemin
    idstringRequis
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    userstringOptionnel

    Filter follower by user, it allows to check if a user is following the object

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/{id}/followers/
    200

    Success

    Follow an object given its ID

    post

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    post
    /organizations/{id}/followers/
    200

    Success

    Aucun contenu

    Unfollow an object given its ID

    delete

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    delete
    /organizations/{id}/followers/
    200

    Success

    Aucun contenu

    Get a organization given its identifier

    get
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    404

    Organization not found

    410

    Organization has been deleted

    get
    /organizations/{org}/

    Update a organization given its identifier

    put
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    acronymstringOptionnel

    The organization acronym

    business_number_idstringOptionnel

    The organization's business identification number.

    created_atstring · date-timeLecture seuleOptionnel

    The organization creation date

    deletedstring · date-timeLecture seuleOptionnel

    The organization deletion date if deleted

    descriptionstring · markdownRequis

    The organization description in Markdown

    extrasobjectOptionnel

    Extras attributes as key-value pairs

    idstringRequis

    The organization identifier

    last_modifiedstring · date-timeLecture seuleOptionnel

    The organization last modification date

    logostringOptionnel

    The organization logo URL

    logo_thumbnailstringOptionnel

    The organization logo thumbnail URL. This is the square (100x100) and cropped version.

    metricsobjectLecture seuleOptionnel

    The organization metrics

    namestringRequis

    The organization name

    pagestringLecture seuleOptionnel

    The organization web page URL

    slugstringRequis

    The organization string used as permalink

    uristringLecture seuleOptionnel

    The API URI for this organization

    urlstringOptionnel

    The organization website URL

    Réponses
    200

    Success

    application/json
    400

    Validation error: your data cannot be updated for now, we have been notified of the error and we will fix it as soon as possible.

    403

    Error occuring when the user does not have the required permissions

    404

    Organization not found

    410

    Organization has been deleted

    put
    /organizations/{org}/

    Delete a organization given its identifier

    delete
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Réponses
    204

    Organization deleted

    404

    Organization not found

    410

    Organization has been deleted

    delete
    /organizations/{org}/

    Aucun contenu

    Create a new badge for a given organization

    post
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    kindstringRequis

    Kind of badge (certified, etc), specific to each model

    Réponses
    200

    Success

    application/json
    post
    /organizations/{org}/badges/

    Delete a badge for a given organization

    delete
    Paramètres de chemin
    badge_kindstringRequis
    orgstringRequis

    The organization ID or slug

    Réponses
    200

    Success

    Aucun contenu

    delete
    /organizations/{org}/badges/{badge_kind}/
    200

    Success

    Aucun contenu

    get
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Réponses
    404

    Organization not found

    410

    Organization has been deleted

    get
    /organizations/{org}/catalog

    Aucun contenu

    List organization datasets (including private ones when member)

    get
    Paramètres de chemin
    orgstringRequis
    Paramètres de requête
    qstringOptionnel

    The search query

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    tagstring[]Optionnel
    licensestringOptionnel
    featuredbooleanOptionnel

    If set to true, it will filter on featured datasets only. If set to false, it will exclude featured datasets.

    geozonestringOptionnel
    granularitystringOptionnel
    temporal_coveragestringOptionnel
    organizationstringOptionnel
    badgestring · enumOptionnelValeurs possibles:
    organization_badgestring · enumOptionnelValeurs possibles:
    ownerstringOptionnel
    followed_bystringOptionnel

    (beta, subject to change/be removed)

    formatstringOptionnel
    schemastringOptionnel
    schema_versionstringOptionnel
    topicstringOptionnel
    creditstringOptionnel
    dataservicestringOptionnel
    reusestringOptionnel
    archivedbooleanOptionnel

    If set to true, it will filter on archived datasets only. If set to false, it will exclude archived datasets. User must be authenticated and results are limited to user visibility

    deletedbooleanOptionnel

    If set to true, it will filter on deleted datasets only. If set to false, it will exclude deleted datasets. User must be authenticated and results are limited to user visibility

    privatebooleanOptionnel

    If set to true, it will filter on private datasets only. If set to false, it will exclude private datasets. User must be authenticated and results are limited to user visibility

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/{org}/datasets/

    List organization discussions

    get
    Paramètres de chemin
    orgstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/{org}/discussions/
    200

    Success

    List membership requests for a given organization

    get
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Paramètres de requête
    statusstringOptionnel

    If provided, only return requests in a given status

    userstringOptionnel

    If provided, only return requests for this user

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    403

    Not Authorized

    get
    /organizations/{org}/membership/

    Apply for membership to a given organization

    post
    Paramètres de chemin
    orgstringRequis

    The organization ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    post
    /organizations/{org}/membership/
    200

    Success

    Accept user membership to a given organization

    post
    Paramètres de chemin
    idstringRequis
    orgstringRequis

    The organization ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    post
    /organizations/{org}/membership/{id}/accept/
    200

    Success

    Refuse user membership to a given organization

    post
    Paramètres de chemin
    idstringRequis
    orgstringRequis

    The organization ID or slug

    Corps
    commentstringOptionnel

    The refusal comment.

    Réponses
    200

    Success

    Aucun contenu

    post
    /organizations/{org}/membership/{id}/refuse/

    List organization reuses (including private ones when member)

    get
    Paramètres de chemin
    orgstringRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /organizations/{org}/reuses/
    200

    Success

    List or search all datasets

    get
    Paramètres de requête
    qstringOptionnel

    The search query

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    tagstring[]Optionnel
    licensestringOptionnel
    featuredbooleanOptionnel

    If set to true, it will filter on featured datasets only. If set to false, it will exclude featured datasets.

    geozonestringOptionnel
    granularitystringOptionnel
    temporal_coveragestringOptionnel
    organizationstringOptionnel
    badgestring · enumOptionnelValeurs possibles:
    organization_badgestring · enumOptionnelValeurs possibles:
    ownerstringOptionnel
    followed_bystringOptionnel

    (beta, subject to change/be removed)

    formatstringOptionnel
    schemastringOptionnel
    schema_versionstringOptionnel
    topicstringOptionnel
    creditstringOptionnel
    dataservicestringOptionnel
    reusestringOptionnel
    archivedbooleanOptionnel

    If set to true, it will filter on archived datasets only. If set to false, it will exclude archived datasets. User must be authenticated and results are limited to user visibility

    deletedbooleanOptionnel

    If set to true, it will filter on deleted datasets only. If set to false, it will exclude deleted datasets. User must be authenticated and results are limited to user visibility

    privatebooleanOptionnel

    If set to true, it will filter on private datasets only. If set to false, it will exclude private datasets. User must be authenticated and results are limited to user visibility

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/

    Create a new dataset

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    access_typestringOptionnel
    access_type_reasonstringOptionnel
    access_type_reason_categorystringOptionnel
    acronymstringOptionnel

    An optional dataset acronym

    archivedstring · date-timeOptionnel

    The archival date if archived

    authorization_request_urlstringOptionnel
    created_atstring · date-timeLecture seuleRequis

    This date is computed between harvested creation date if any and site's internal creation date

    deletedstring · date-timeLecture seuleOptionnel

    The deletion date if deleted

    descriptionstring · markdownRequis

    The dataset description in markdown

    description_shortstringOptionnel

    The dataset short description

    extrasobjectOptionnel

    Extras attributes as key-value pairs

    featuredbooleanOptionnel

    Is the dataset featured

    frequencystring · enumRequis

    The update frequency

    Default: unknownExample: continuousValeurs possibles:
    frequency_datestring · date-timeOptionnel

    Next expected update date, you will be notified once that date is reached.

    idstringLecture seuleOptionnel

    The dataset identifier

    last_modifiedstring · date-timeLecture seuleRequis

    The dataset last modification date

    last_updatestring · date-timeRequis

    The resources last modification date

    licensestringOptionnel

    The dataset license

    Default: notspecified
    metricsobjectOptionnel

    The dataset metrics

    pagestringLecture seuleOptionnel

    The dataset web page URL

    privatebooleanOptionnel

    Is the dataset private to the owner or the organization

    qualityobjectLecture seuleOptionnel

    The dataset quality

    slugstringRequis

    The dataset permalink string

    tagsstring[]Optionnel
    titlestringRequis

    The dataset title

    uristringLecture seuleOptionnel

    The API URI for this dataset

    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /datasets/

    List all available dataset badges and their labels

    get
    Réponses
    200

    Success

    Aucun contenu

    get
    /datasets/badges/
    200

    Success

    Aucun contenu

    List all community resources

    get
    Paramètres de requête
    sortstringOptionnel

    The sorting attribute

    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    organizationstringOptionnel

    Filter activities for that particular organization

    datasetstringOptionnel

    Filter activities for that particular dataset

    ownerstringOptionnel

    Filter activities for that particular user

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/community_resources/
    200

    Success

    Create a new community resource

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /datasets/community_resources/

    Retrieve a community resource given its identifier

    get
    Paramètres de chemin
    communitystringRequis

    The community resource unique identifier

    Paramètres de requête
    datasetstringOptionnel

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/community_resources/{community}/
    200

    Success

    Update a given community resource

    put
    Paramètres de chemin
    communitystringRequis

    The community resource unique identifier

    Paramètres de requête
    datasetstringOptionnel

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    Réponses
    200

    Success

    application/json
    400

    Validation error

    put
    /datasets/community_resources/{community}/

    Delete a given community resource

    delete
    Paramètres de chemin
    communitystringRequis

    The community resource unique identifier

    Paramètres de requête
    datasetstringOptionnel

    The dataset ID or slug

    Réponses
    200

    Success

    Aucun contenu

    delete
    /datasets/community_resources/{community}/
    200

    Success

    Aucun contenu

    Update the file related to a given community resource

    post
    Paramètres de chemin
    communitystringRequis

    The community resource unique identifier

    Paramètres de requête
    datasetstringOptionnel

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    400

    Upload error

    415

    Incorrect file content type

    post
    /datasets/community_resources/{community}/upload/

    List all allowed resources extensions

    get
    Réponses
    200

    Success

    application/json
    Réponsestring[]
    get
    /datasets/extensions/
    200

    Success

    List all available frequencies

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/frequencies/
    200

    Success

    List all available licenses

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/licenses/
    200

    Success

    Redirect to the latest version of a resource given its identifier

    get
    Paramètres de chemin
    idstringRequis
    Paramètres de requête
    datasetstringOptionnel

    The dataset ID or slug

    Réponses
    200

    Success

    Aucun contenu

    get
    /datasets/r/{id}
    200

    Success

    Aucun contenu

    List all resource types

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/resource_types/
    200

    Success

    List all available schemas

    get
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/schemas/
    200

    Success

    Datasets suggest endpoint using mongoDB contains

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/suggest/
    200

    Success

    Suggest file formats

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Réponses
    200

    Success

    Aucun contenu

    get
    /datasets/suggest/formats/
    200

    Success

    Aucun contenu

    Suggest mime types

    get
    Paramètres de requête
    qstringRequis

    The string to autocomplete/suggest

    sizeintegerOptionnel

    The amount of suggestion to fetch

    Réponses
    200

    Success

    Aucun contenu

    get
    /datasets/suggest/mime/
    200

    Success

    Aucun contenu

    Get a dataset given its identifier

    get
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    404

    Dataset not found

    410

    Dataset has been deleted

    get
    /datasets/{dataset}/

    Update a dataset given its identifier

    put
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    access_typestringOptionnel
    access_type_reasonstringOptionnel
    access_type_reason_categorystringOptionnel
    acronymstringOptionnel

    An optional dataset acronym

    archivedstring · date-timeOptionnel

    The archival date if archived

    authorization_request_urlstringOptionnel
    created_atstring · date-timeLecture seuleRequis

    This date is computed between harvested creation date if any and site's internal creation date

    deletedstring · date-timeLecture seuleOptionnel

    The deletion date if deleted

    descriptionstring · markdownRequis

    The dataset description in markdown

    description_shortstringOptionnel

    The dataset short description

    extrasobjectOptionnel

    Extras attributes as key-value pairs

    featuredbooleanOptionnel

    Is the dataset featured

    frequencystring · enumRequis

    The update frequency

    Default: unknownExample: continuousValeurs possibles:
    frequency_datestring · date-timeOptionnel

    Next expected update date, you will be notified once that date is reached.

    idstringLecture seuleOptionnel

    The dataset identifier

    last_modifiedstring · date-timeLecture seuleRequis

    The dataset last modification date

    last_updatestring · date-timeRequis

    The resources last modification date

    licensestringOptionnel

    The dataset license

    Default: notspecified
    metricsobjectOptionnel

    The dataset metrics

    pagestringLecture seuleOptionnel

    The dataset web page URL

    privatebooleanOptionnel

    Is the dataset private to the owner or the organization

    qualityobjectLecture seuleOptionnel

    The dataset quality

    slugstringRequis

    The dataset permalink string

    tagsstring[]Optionnel
    titlestringRequis

    The dataset title

    uristringLecture seuleOptionnel

    The API URI for this dataset

    Réponses
    200

    Success

    application/json
    400

    Validation error: your data cannot be updated for now, we have been notified of the error and we will fix it as soon as possible.

    404

    Dataset not found

    410

    Dataset has been deleted

    put
    /datasets/{dataset}/

    Delete a dataset given its identifier

    delete
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Réponses
    204

    Dataset deleted

    404

    Dataset not found

    410

    Dataset has been deleted

    delete
    /datasets/{dataset}/

    Aucun contenu

    Create a new badge for a given dataset

    post
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    kindstringRequis

    Kind of badge (certified, etc), specific to each model

    Réponses
    200

    Success

    application/json
    post
    /datasets/{dataset}/badges/

    Delete a badge for a given dataset

    delete
    Paramètres de chemin
    badge_kindstringRequis
    datasetstringRequis

    The dataset ID or slug

    Réponses
    200

    Success

    Aucun contenu

    delete
    /datasets/{dataset}/badges/{badge_kind}/
    200

    Success

    Aucun contenu

    Mark the dataset as featured

    post
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    post
    /datasets/{dataset}/featured/
    200

    Success

    Unmark the dataset as featured

    delete
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    delete
    /datasets/{dataset}/featured/
    200

    Success

    get
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Réponses
    404

    Dataset not found

    410

    Dataset has been deleted

    get
    /datasets/{dataset}/rdf

    Aucun contenu

    Create a new resource for a given dataset

    post
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    created_atstring · date-timeLecture seuleOptionnel

    The resource creation date

    descriptionstring · markdownOptionnel

    The resource markdown description

    extrasobjectOptionnel

    Extra attributes as key-value pairs

    filesizeintegerOptionnel

    The resource file size in bytes

    filetypestring · enumRequis

    Whether the resource is an uploaded file, a remote file or an API

    Example: fileValeurs possibles:
    formatstringRequis

    The resource format

    idstringLecture seuleOptionnel

    The resource unique ID

    last_modifiedstring · date-timeLecture seuleOptionnel

    The resource last modification date

    lateststringLecture seuleOptionnel

    The permanent URL redirecting to the latest version of the resource. When the resource data is updated, the URL will change, the latest URL won't.

    metricsobjectLecture seuleOptionnel

    The resource metrics

    mimestringOptionnel

    The resource mime type

    preview_urlstringLecture seuleOptionnel

    An optional preview URL to be loaded as a standalone page (ie. iframe or new page)

    titlestringRequis

    The resource title

    typestring · enumRequis

    Resource type (documentation, API...)

    Example: mainValeurs possibles:
    urlstringRequis

    The resource URL

    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /datasets/{dataset}/resources/

    Reorder resources

    put
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corpsobject[]
    created_atstring · date-timeLecture seuleOptionnel

    The resource creation date

    descriptionstring · markdownOptionnel

    The resource markdown description

    extrasobjectOptionnel

    Extra attributes as key-value pairs

    filesizeintegerOptionnel

    The resource file size in bytes

    filetypestring · enumRequis

    Whether the resource is an uploaded file, a remote file or an API

    Example: fileValeurs possibles:
    formatstringRequis

    The resource format

    idstringLecture seuleOptionnel

    The resource unique ID

    last_modifiedstring · date-timeLecture seuleOptionnel

    The resource last modification date

    lateststringLecture seuleOptionnel

    The permanent URL redirecting to the latest version of the resource. When the resource data is updated, the URL will change, the latest URL won't.

    metricsobjectLecture seuleOptionnel

    The resource metrics

    mimestringOptionnel

    The resource mime type

    preview_urlstringLecture seuleOptionnel

    An optional preview URL to be loaded as a standalone page (ie. iframe or new page)

    titlestringRequis

    The resource title

    typestring · enumRequis

    Resource type (documentation, API...)

    Example: mainValeurs possibles:
    urlstringRequis

    The resource URL

    Réponses
    200

    Success

    application/json
    400

    Validation error

    put
    /datasets/{dataset}/resources/

    Get a resource given its identifier

    get
    Paramètres de chemin
    ridstringRequis

    The resource unique identifier

    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/{dataset}/resources/{rid}/
    200

    Success

    Update a given resource on a given dataset

    put
    Paramètres de chemin
    ridstringRequis

    The resource unique identifier

    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    created_atstring · date-timeLecture seuleOptionnel

    The resource creation date

    descriptionstring · markdownOptionnel

    The resource markdown description

    extrasobjectOptionnel

    Extra attributes as key-value pairs

    filesizeintegerOptionnel

    The resource file size in bytes

    filetypestring · enumRequis

    Whether the resource is an uploaded file, a remote file or an API

    Example: fileValeurs possibles:
    formatstringRequis

    The resource format

    idstringLecture seuleOptionnel

    The resource unique ID

    last_modifiedstring · date-timeLecture seuleOptionnel

    The resource last modification date

    lateststringLecture seuleOptionnel

    The permanent URL redirecting to the latest version of the resource. When the resource data is updated, the URL will change, the latest URL won't.

    metricsobjectLecture seuleOptionnel

    The resource metrics

    mimestringOptionnel

    The resource mime type

    preview_urlstringLecture seuleOptionnel

    An optional preview URL to be loaded as a standalone page (ie. iframe or new page)

    titlestringRequis

    The resource title

    typestring · enumRequis

    Resource type (documentation, API...)

    Example: mainValeurs possibles:
    urlstringRequis

    The resource URL

    Réponses
    200

    Success

    application/json
    400

    Validation error

    put
    /datasets/{dataset}/resources/{rid}/

    Delete a given resource on a given dataset

    delete
    Paramètres de chemin
    ridstringRequis

    The resource unique identifier

    datasetstringRequis

    The dataset ID or slug

    Réponses
    200

    Success

    Aucun contenu

    delete
    /datasets/{dataset}/resources/{rid}/
    200

    Success

    Aucun contenu

    Upload a file related to a given resource on a given dataset

    post
    Paramètres de chemin
    ridstringRequis

    The resource unique identifier

    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    400

    Upload error

    415

    Incorrect file content type

    post
    /datasets/{dataset}/resources/{rid}/upload/

    Upload a file for a new dataset resource

    post
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    filestringOptionnel
    uuidstringOptionnel
    filenamestringOptionnel
    partindexintegerOptionnel
    partbyteoffsetintegerOptionnel
    totalpartsintegerOptionnel
    chunksizeintegerOptionnel
    Réponses
    201

    Success

    application/json
    400

    Upload error

    415

    Incorrect file content type

    post
    /datasets/{dataset}/upload/

    Upload a new community resource

    post
    Paramètres de chemin
    datasetstringRequis

    The dataset ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    filestringOptionnel
    uuidstringOptionnel
    filenamestringOptionnel
    partindexintegerOptionnel
    partbyteoffsetintegerOptionnel
    totalpartsintegerOptionnel
    chunksizeintegerOptionnel
    Réponses
    201

    Success

    application/json
    400

    Upload error

    415

    Incorrect file content type

    post
    /datasets/{dataset}/upload/community/

    List all followers for a given object

    get
    Paramètres de chemin
    idstringRequis
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    userstringOptionnel

    Filter follower by user, it allows to check if a user is following the object

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /datasets/{id}/followers/
    200

    Success

    Follow an object given its ID

    post

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    post
    /datasets/{id}/followers/
    200

    Success

    Aucun contenu

    Unfollow an object given its ID

    delete

    Returns the number of followers left after the operation

    Paramètres de chemin
    idstringRequis
    Réponses
    200

    Success

    Aucun contenu

    delete
    /datasets/{id}/followers/
    200

    Success

    Aucun contenu

    Les différents types de moissonneurs

    Les différents moissonneurs

    Aujourd’hui, data.gouv.fr peut moissonner les plateformes ou formats suivants :

    • DCAT (GeoNetwork, OpenDataSoft, etc.)

    GET /api/1/site/context.jsonld HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    PARAMETERS /api/1/contacts/{contact_point}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/reuses/badges/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/me/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/organizations/badges/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/organizations/{org}/catalog HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/badges/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/extensions/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/{dataset}/rdf HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    boolean : s'applique pour indiquer que la valeur d'un champs ne peut être égale qu'à "vrai" ou "faux" (ou "1" et "0" ou "oui" ou "non")
  • object : s'applique pour les données de type objet

  • array : s'applique pour les tableaux de données

  • : le format du champ
  • type : le type du champ

  • maxLength : indique la taille maximale des valeurs de ce champ
  • minimum : indique la valeur minimum autorisée pour ce champ (par exemple pour une date on peut indiquer une année en deça de laquelle les valeurs ne sont pas autorisées)

  • maximum : indique la valeur maximale autorisée pour ce champ

  • pattern : indique une expression régulière à laquelle doivent être conforme les valeurs de ce champ (par exemple pour un numéro SIRET on peut indiquer ^\\d{14}$ ce qui signifie que les valeurs de ce champ doivent contenir exactement 14 chiffres)

  • enum : indique une liste de valeurs autorisées pour ce champ

  • uri : une URI valide
  • binary : une chaîne de caractère encodées en base 64 représentant des données binaires.

  • uuid : une chaîne de caractère représentant un identifiant unique.

  • Format
    : "%Y-%m-%d"
  • Nommage : abreviation-du-schemaDate

  • Nommage : abreviation-du-schemaLat
    Nommage : abreviation-du-schemaLon

    Nommage : abreviation-du-schemaGeo

    : abreviation-du-schemaVoie
    : abreviation-du-schemaCodePostal
    : abreviation-du-schemaCommune
    Nommage
    : abreviation-du-schemaColl
    Motif
    : ^\d{14}$
  • Nommage : nom-ou-abreviation-du-schemaCollSiret

  • : nom-ou-abreviation-du-schemaPublicationDate
    : nom-ou-abreviation-du-schemaModificationDate
    Nommage
    : nom-ou-abreviation-du-schemaModificationInfo
    .extension : Si les règles de formatage sont respectées, l'extension est .csv
    CSV
    TableSchema
    UTF-8
    TableSchema
    Json
    schéma des menus de la restauration collective
    ISO 8601
    ISO 8601
    ISO 8601
    yohours
    WGS 84
    WGS 84
    WGS 84
    SIREN
    200

    Success

    200

    Success

    Success

    Success

    The dataset is already present

    GET /api/1/tags/suggest/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    200

    Success

    Aucun contenu

    200

    Success

    200

    Success

    200

    Success

    200

    Success

    Aucun contenu

    200

    Success

    200

    Success

    {
        "name": "menuCollSiret",
        "title": "Code SIRET de la collectivité qui produit les données.",
        "description": "Identifiant du Système d'Identification du Répertoire des Etablissements (SIRET) de la collectivité qui commandé le menu. Ce code doit obligatoirement être composé de 9 chiffres SIREN + 5 chiffres NIC d’un seul tenant.",
        "type": "string",
        "examples": "21330063500017",
        "constraints": {
            "required": true,
            "pattern":	"^\\d{14}$"
        }
    }
    {
        "name": "menuPublicationDate",
        "title": "Date de publication de l'enregistrement d'un menu",
        "description": "Lors de la publication ce champ d'horodatage permet d'indiquer la date de publication de la donnée présente dans le fichier.",
        "type": "datetime",
        "examples": "2020-05-11T14:08:32Z",
        "constraints": {
        "required": true
        }
    }
    {
        "name": "menuCollNom",
        "title": "Nom de la collectivité qui produit les données",
        "description": "Nom officiel de la collectivité ou de l'établissement public responsable de l'offre de restauration collective et qui produit les données.",
        "type": "string",
        "examples": "Grand Poitiers Communauté urbaine",
        "constraints": {
            "required": true 
        }
    }
    {
        "name": "menuCollSiret",
        "title": "Code SIRET de la collectivité qui produit les données.",
        "description": "Identifiant du Système d'Identification du Répertoire des Etablissements (SIRET) de la collectivité qui commandé le menu. Ce code doit obligatoirement être composé de 9 chiffres SIREN + 5 chiffres NIC d’un seul tenant.",
        "type": "string",
        "examples": "21330063500017",
        "constraints": {
            "required": true,
            "pattern":	"^\\d{14}$"
        }
    }
    {
        "name": "menuPublicationDate",
        "title": "Date de publication de l'enregistrement d'un menu",
        "description": "Lors de la publication ce champ d'horodatage permet d'indiquer la date de publication de la donnée présente dans le fichier.",
        "type": "datetime",
        "examples": "2020-05-11T14:08:32Z",
        "constraints": {
            "required": true
        }
    }
    {
        "name": "menuModificationDate",
        "title": "Date de dernière modification de l'enregistrement d'un menu",
        "description": "Lors de la modification ce champ d'horodatage permet d'indiquer la date de dernière modification de la donnée présente dans le fichier.",
        "type": "datetime",
        "examples": "2020-05-11T14:08:32Z",
        "constraints": {
        "required": false
        }
    }
    {
        "name": "menuModificationInfo",
        "title": "Information sur la modification ayant entraîné une mise à jour de la donnée",
        "description": "Afin de renseigner les usagers de la donnée, il est possible de préciser dans ce champ la raison de la mise à jour effectuée.",
        "type": "string",
        "examples": "changement dû à un aléa de livraison",
        "constraints": {
            "required": false
        }
    }
    GET /api/1/spatial/coverage/{level}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "features": [
          {
            "geometry": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "id": "text",
            "properties": {},
            "type": "Feature"
          }
        ],
        "type": "FeatureCollection"
      }
    ]
    GET /api/1/spatial/granularities/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "name": "text"
      }
    ]
    GET /api/1/spatial/levels/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "name": "text"
      }
    ]
    GET /api/1/spatial/zone/{id}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/spatial/zone/{id}/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "class": "text",
      "id": "text",
      "acronym": "text",
      "page": "text",
      "title": "text",
      "uri": "text"
    }
    GET /api/1/spatial/zones/suggest/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "code": "text",
        "id": "text",
        "level": "text",
        "name": "text",
        "uri": "text"
      }
    ]
    GET /api/1/spatial/zones/{ids}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "features": [
        {
          "geometry": {
            "coordinates": [
              {}
            ],
            "type": "Point"
          },
          "id": "text",
          "properties": {},
          "type": "Feature"
        }
      ],
      "type": "FeatureCollection"
    }
    {
      "body_type": "markdown",
      "content": "text",
      "created_at": "2025-12-18T02:58:17.175Z",
      "credit_to": "text",
      "credit_url": "text",
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "headline": "text",
      "id": "text",
      "image": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "name": "text",
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "published": "2025-12-18T02:58:17.175Z",
      "reuses": [
        {
          "archived": "2025-12-18T02:58:17.175Z",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "dataservices": [
            {
              "class": "text",
              "id": "text",
              "self_api_url": "text",
              "self_web_url": "text",
              "title": "My awesome API"
            }
          ],
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "page": "text",
                    "title": "text",
                    "uri": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "id": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "role": "text"
                }
              ],
              "created_at": "2025-12-18T02:58:17.175Z",
              "deleted": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "harvest": {
                "archived": "text",
                "archived_at": "2025-12-18T02:58:17.175Z",
                "backend": "text",
                "created_at": "2025-12-18T02:58:17.175Z",
                "dct_identifier": "text",
                "domain": "text",
                "issued_at": "2025-12-18T02:58:17.175Z",
                "last_update": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "remote_id": "text",
                "remote_url": "text",
                "source_id": "text",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "page": "text",
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "quality": {},
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text",
              "uri": "text"
            }
          ],
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "featured": true,
          "id": "text",
          "image": "text",
          "image_thumbnail": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true
          },
          "private": true,
          "slug": "text",
          "tags": [
            "text"
          ],
          "title": "text",
          "topic": "health",
          "type": "api",
          "uri": "text",
          "url": "text"
        }
      ],
      "slug": "text",
      "tags": [
        "text"
      ],
      "uri": "text"
    }
    {
      "body_type": "markdown",
      "content": "text",
      "created_at": "2025-12-18T02:58:17.175Z",
      "credit_to": "text",
      "credit_url": "text",
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "headline": "text",
      "id": "text",
      "image": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "name": "text",
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "published": "2025-12-18T02:58:17.175Z",
      "reuses": [
        {
          "archived": "2025-12-18T02:58:17.175Z",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "dataservices": [
            {
              "class": "text",
              "id": "text",
              "self_api_url": "text",
              "self_web_url": "text",
              "title": "My awesome API"
            }
          ],
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "page": "text",
                    "title": "text",
                    "uri": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "id": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "role": "text"
                }
              ],
              "created_at": "2025-12-18T02:58:17.175Z",
              "deleted": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "harvest": {
                "archived": "text",
                "archived_at": "2025-12-18T02:58:17.175Z",
                "backend": "text",
                "created_at": "2025-12-18T02:58:17.175Z",
                "dct_identifier": "text",
                "domain": "text",
                "issued_at": "2025-12-18T02:58:17.175Z",
                "last_update": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "remote_id": "text",
                "remote_url": "text",
                "source_id": "text",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "page": "text",
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "quality": {},
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text",
              "uri": "text"
            }
          ],
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "featured": true,
          "id": "text",
          "image": "text",
          "image_thumbnail": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true
          },
          "private": true,
          "slug": "text",
          "tags": [
            "text"
          ],
          "title": "text",
          "topic": "health",
          "type": "api",
          "uri": "text",
          "url": "text"
        }
      ],
      "slug": "text",
      "tags": [
        "text"
      ],
      "uri": "text"
    }
    GET /api/1/posts/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "body_type": "markdown",
          "content": "text",
          "created_at": "2025-12-18T02:58:17.175Z",
          "credit_to": "text",
          "credit_url": "text",
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "page": "text",
                    "title": "text",
                    "uri": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "id": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "role": "text"
                }
              ],
              "created_at": "2025-12-18T02:58:17.175Z",
              "deleted": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "harvest": {
                "archived": "text",
                "archived_at": "2025-12-18T02:58:17.175Z",
                "backend": "text",
                "created_at": "2025-12-18T02:58:17.175Z",
                "dct_identifier": "text",
                "domain": "text",
                "issued_at": "2025-12-18T02:58:17.175Z",
                "last_update": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "remote_id": "text",
                "remote_url": "text",
                "source_id": "text",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "page": "text",
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "quality": {},
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text",
              "uri": "text"
            }
          ],
          "headline": "text",
          "id": "text",
          "image": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "name": "text",
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "published": "2025-12-18T02:58:17.175Z",
          "reuses": [
            {
              "archived": "2025-12-18T02:58:17.175Z",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "created_at": "2025-12-18T02:58:17.175Z",
              "dataservices": [
                {
                  "class": "text",
                  "id": "text",
                  "self_api_url": "text",
                  "self_web_url": "text",
                  "title": "My awesome API"
                }
              ],
              "datasets": [
                {
                  "access_audiences": [
                    {
                      "condition": "yes",
                      "role": "local_authority_and_administration"
                    }
                  ],
                  "access_type": "text",
                  "access_type_reason": "text",
                  "access_type_reason_category": "text",
                  "acronym": "text",
                  "archived": "2025-12-18T02:58:17.175Z",
                  "authorization_request_url": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "community_resources": [
                    {
                      "checksum": {
                        "type": "sha1",
                        "value": "text"
                      },
                      "created_at": "2025-12-18T02:58:17.175Z",
                      "description": "text",
                      "extras": {},
                      "filesize": 1,
                      "filetype": "file",
                      "format": "text",
                      "harvest": {
                        "issued_at": "2025-12-18T02:58:17.175Z",
                        "modified_at": "2025-12-18T02:58:17.175Z",
                        "uri": "text"
                      },
                      "id": "text",
                      "internal": {
                        "created_at_internal": "2025-12-18T02:58:17.175Z",
                        "last_modified_internal": "2025-12-18T02:58:17.175Z"
                      },
                      "last_modified": "2025-12-18T02:58:17.175Z",
                      "latest": "text",
                      "metrics": {},
                      "mime": "text",
                      "preview_url": "text",
                      "schema": {
                        "name": "text",
                        "url": "text",
                        "version": "text"
                      },
                      "title": "text",
                      "type": "main",
                      "url": "text",
                      "dataset": {
                        "class": "text",
                        "id": "text",
                        "acronym": "text",
                        "page": "text",
                        "title": "text",
                        "uri": "text"
                      },
                      "organization": {
                        "class": "text",
                        "id": "text",
                        "acronym": "text",
                        "badges": [
                          {
                            "kind": "text"
                          }
                        ],
                        "logo": "text",
                        "logo_thumbnail": "text",
                        "name": "text",
                        "page": "text",
                        "slug": "text",
                        "uri": "text"
                      },
                      "owner": {
                        "class": "text",
                        "id": "text",
                        "avatar": "text",
                        "avatar_thumbnail": "text",
                        "first_name": "text",
                        "last_name": "text",
                        "page": "text",
                        "slug": "text",
                        "uri": "text"
                      },
                      "permissions": {
                        "delete": true,
                        "edit": true,
                        "edit_resources": true
                      }
                    }
                  ],
                  "contact_points": [
                    {
                      "contact_form": "text",
                      "email": "text",
                      "id": "text",
                      "name": "text",
                      "organization": {
                        "class": "text",
                        "id": "text",
                        "acronym": "text",
                        "badges": [
                          {
                            "kind": "text"
                          }
                        ],
                        "logo": "text",
                        "logo_thumbnail": "text",
                        "name": "text",
                        "page": "text",
                        "slug": "text",
                        "uri": "text"
                      },
                      "owner": {
                        "class": "text",
                        "id": "text",
                        "avatar": "text",
                        "avatar_thumbnail": "text",
                        "first_name": "text",
                        "last_name": "text",
                        "page": "text",
                        "slug": "text",
                        "uri": "text"
                      },
                      "role": "text"
                    }
                  ],
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "deleted": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "description_short": "text",
                  "extras": {},
                  "featured": true,
                  "frequency": "continuous",
                  "frequency_date": "2025-12-18T02:58:17.175Z",
                  "harvest": {
                    "archived": "text",
                    "archived_at": "2025-12-18T02:58:17.175Z",
                    "backend": "text",
                    "created_at": "2025-12-18T02:58:17.175Z",
                    "dct_identifier": "text",
                    "domain": "text",
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "last_update": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "remote_id": "text",
                    "remote_url": "text",
                    "source_id": "text",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "last_update": "2025-12-18T02:58:17.175Z",
                  "license": "notspecified",
                  "metrics": {},
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "page": "text",
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  },
                  "private": true,
                  "quality": {},
                  "resources": [
                    {
                      "checksum": {
                        "type": "sha1",
                        "value": "text"
                      },
                      "created_at": "2025-12-18T02:58:17.175Z",
                      "description": "text",
                      "extras": {},
                      "filesize": 1,
                      "filetype": "file",
                      "format": "text",
                      "harvest": {
                        "issued_at": "2025-12-18T02:58:17.175Z",
                        "modified_at": "2025-12-18T02:58:17.175Z",
                        "uri": "text"
                      },
                      "id": "text",
                      "internal": {
                        "created_at_internal": "2025-12-18T02:58:17.175Z",
                        "last_modified_internal": "2025-12-18T02:58:17.175Z"
                      },
                      "last_modified": "2025-12-18T02:58:17.175Z",
                      "latest": "text",
                      "metrics": {},
                      "mime": "text",
                      "preview_url": "text",
                      "schema": {
                        "name": "text",
                        "url": "text",
                        "version": "text"
                      },
                      "title": "text",
                      "type": "main",
                      "url": "text"
                    }
                  ],
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "slug": "text",
                  "spatial": {
                    "geom": {
                      "coordinates": [
                        {}
                      ],
                      "type": "Point"
                    },
                    "granularity": "other",
                    "zones": {}
                  },
                  "tags": [
                    "text"
                  ],
                  "temporal_coverage": {
                    "end": "2025-12-18T02:58:17.175Z",
                    "start": "2025-12-18T02:58:17.175Z"
                  },
                  "title": "text",
                  "uri": "text"
                }
              ],
              "deleted": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "featured": true,
              "id": "text",
              "image": "text",
              "image_thumbnail": "text",
              "last_modified": "2025-12-18T02:58:17.175Z",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "page": "text",
              "permissions": {
                "delete": true,
                "edit": true
              },
              "private": true,
              "slug": "text",
              "tags": [
                "text"
              ],
              "title": "text",
              "topic": "health",
              "type": "api",
              "uri": "text",
              "url": "text"
            }
          ],
          "slug": "text",
          "tags": [
            "text"
          ],
          "uri": "text"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/posts/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 4971
    
    {
      "body_type": "markdown",
      "content": "text",
      "credit_to": "text",
      "credit_url": "text",
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "mime": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "logo": "text",
                "logo_thumbnail": "text",
                "slug": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "slug": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "logo": "text",
                "logo_thumbnail": "text",
                "slug": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "slug": "text"
              },
              "role": "text"
            }
          ],
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "mime": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text"
        }
      ],
      "headline": "text",
      "id": "text",
      "name": "text",
      "reuses": [
        {
          "archived": "2025-12-18T02:58:17.175Z",
          "dataservices": [
            {
              "class": "text",
              "id": "text",
              "title": "My awesome API"
            }
          ],
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "mime": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "slug": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "slug": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "slug": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "slug": "text"
                  },
                  "role": "text"
                }
              ],
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "logo": "text",
                "logo_thumbnail": "text",
                "slug": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "slug": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "mime": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text"
            }
          ],
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "private": true,
          "tags": [
            "text"
          ],
          "title": "text",
          "topic": "health",
          "type": "api",
          "url": "text"
        }
      ],
      "tags": [
        "text"
      ]
    }
    GET /api/1/posts/{post}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "body_type": "markdown",
      "content": "text",
      "created_at": "2025-12-18T02:58:17.175Z",
      "credit_to": "text",
      "credit_url": "text",
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "headline": "text",
      "id": "text",
      "image": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "name": "text",
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "published": "2025-12-18T02:58:17.175Z",
      "reuses": [
        {
          "archived": "2025-12-18T02:58:17.175Z",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "dataservices": [
            {
              "class": "text",
              "id": "text",
              "self_api_url": "text",
              "self_web_url": "text",
              "title": "My awesome API"
            }
          ],
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "page": "text",
                    "title": "text",
                    "uri": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "id": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "role": "text"
                }
              ],
              "created_at": "2025-12-18T02:58:17.175Z",
              "deleted": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "harvest": {
                "archived": "text",
                "archived_at": "2025-12-18T02:58:17.175Z",
                "backend": "text",
                "created_at": "2025-12-18T02:58:17.175Z",
                "dct_identifier": "text",
                "domain": "text",
                "issued_at": "2025-12-18T02:58:17.175Z",
                "last_update": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "remote_id": "text",
                "remote_url": "text",
                "source_id": "text",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "page": "text",
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "quality": {},
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text",
              "uri": "text"
            }
          ],
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "featured": true,
          "id": "text",
          "image": "text",
          "image_thumbnail": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true
          },
          "private": true,
          "slug": "text",
          "tags": [
            "text"
          ],
          "title": "text",
          "topic": "health",
          "type": "api",
          "uri": "text",
          "url": "text"
        }
      ],
      "slug": "text",
      "tags": [
        "text"
      ],
      "uri": "text"
    }
    PUT /api/1/posts/{post}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 4971
    
    {
      "body_type": "markdown",
      "content": "text",
      "credit_to": "text",
      "credit_url": "text",
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "mime": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "logo": "text",
                "logo_thumbnail": "text",
                "slug": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "slug": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "logo": "text",
                "logo_thumbnail": "text",
                "slug": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "slug": "text"
              },
              "role": "text"
            }
          ],
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "mime": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text"
        }
      ],
      "headline": "text",
      "id": "text",
      "name": "text",
      "reuses": [
        {
          "archived": "2025-12-18T02:58:17.175Z",
          "dataservices": [
            {
              "class": "text",
              "id": "text",
              "title": "My awesome API"
            }
          ],
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "mime": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "slug": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "slug": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "slug": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "slug": "text"
                  },
                  "role": "text"
                }
              ],
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "logo": "text",
                "logo_thumbnail": "text",
                "slug": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "slug": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "mime": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text"
            }
          ],
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "private": true,
          "tags": [
            "text"
          ],
          "title": "text",
          "topic": "health",
          "type": "api",
          "url": "text"
        }
      ],
      "tags": [
        "text"
      ]
    }
    DELETE /api/1/posts/{post}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "active": false,
      "autoarchive": true,
      "backend": "ckan",
      "config": {},
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "id": "text",
      "last_job": {
        "created": "2025-12-18T02:58:17.175Z",
        "ended": "2025-12-18T02:58:17.175Z",
        "errors": [
          {
            "level": "text",
            "message": "text"
          }
        ],
        "id": "text",
        "items": [
          {
            "args": [
              "text"
            ],
            "created": "2025-12-18T02:58:17.175Z",
            "dataservice": {
              "class": "text",
              "id": "text",
              "self_api_url": "text",
              "self_web_url": "text",
              "title": "My awesome API"
            },
            "dataset": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "page": "text",
              "title": "text",
              "uri": "text"
            },
            "ended": "2025-12-18T02:58:17.175Z",
            "errors": [
              {
                "level": "text",
                "message": "text"
              }
            ],
            "kwargs": {},
            "logs": [
              {
                "level": "text",
                "message": "text"
              }
            ],
            "remote_id": "text",
            "remote_url": "text",
            "started": "2025-12-18T02:58:17.175Z",
            "status": "pending"
          }
        ],
        "source": "text",
        "started": "2025-12-18T02:58:17.175Z",
        "status": "pending"
      },
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "preview": true,
        "run": true,
        "schedule": true,
        "validate": true
      },
      "schedule": "text",
      "url": "text",
      "validation": {
        "by": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "comment": "text",
        "on": "2025-12-18T02:58:17.175Z",
        "state": "pending"
      }
    }
    GET /api/1/harvest/job/{ident}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "created": "2025-12-18T02:58:17.175Z",
      "ended": "2025-12-18T02:58:17.175Z",
      "errors": [
        {
          "level": "text",
          "message": "text"
        }
      ],
      "id": "text",
      "items": [
        {
          "args": [
            "text"
          ],
          "created": "2025-12-18T02:58:17.175Z",
          "dataservice": {
            "class": "text",
            "id": "text",
            "self_api_url": "text",
            "self_web_url": "text",
            "title": "My awesome API"
          },
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "ended": "2025-12-18T02:58:17.175Z",
          "errors": [
            {
              "level": "text",
              "message": "text"
            }
          ],
          "kwargs": {},
          "logs": [
            {
              "level": "text",
              "message": "text"
            }
          ],
          "remote_id": "text",
          "remote_url": "text",
          "started": "2025-12-18T02:58:17.175Z",
          "status": "pending"
        }
      ],
      "source": "text",
      "started": "2025-12-18T02:58:17.175Z",
      "status": "pending"
    }
    GET /api/1/harvest/sources/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "data": [
          {
            "active": false,
            "autoarchive": true,
            "backend": "ckan",
            "config": {},
            "created_at": "2025-12-18T02:58:17.175Z",
            "deleted": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "id": "text",
            "last_job": {
              "created": "2025-12-18T02:58:17.175Z",
              "ended": "2025-12-18T02:58:17.175Z",
              "errors": [
                {
                  "level": "text",
                  "message": "text"
                }
              ],
              "id": "text",
              "items": [
                {
                  "args": [
                    "text"
                  ],
                  "created": "2025-12-18T02:58:17.175Z",
                  "dataservice": {
                    "class": "text",
                    "id": "text",
                    "self_api_url": "text",
                    "self_web_url": "text",
                    "title": "My awesome API"
                  },
                  "dataset": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "page": "text",
                    "title": "text",
                    "uri": "text"
                  },
                  "ended": "2025-12-18T02:58:17.175Z",
                  "errors": [
                    {
                      "level": "text",
                      "message": "text"
                    }
                  ],
                  "kwargs": {},
                  "logs": [
                    {
                      "level": "text",
                      "message": "text"
                    }
                  ],
                  "remote_id": "text",
                  "remote_url": "text",
                  "started": "2025-12-18T02:58:17.175Z",
                  "status": "pending"
                }
              ],
              "source": "text",
              "started": "2025-12-18T02:58:17.175Z",
              "status": "pending"
            },
            "name": "text",
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "permissions": {
              "delete": true,
              "edit": true,
              "preview": true,
              "run": true,
              "schedule": true,
              "validate": true
            },
            "schedule": "text",
            "url": "text",
            "validation": {
              "by": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "comment": "text",
              "on": "2025-12-18T02:58:17.175Z",
              "state": "pending"
            }
          }
        ],
        "next_page": "text",
        "page": 1,
        "page_size": 1,
        "previous_page": "text",
        "total": 1
      }
    ]
    POST /api/1/harvest/sources/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 318
    
    {
      "active": false,
      "autoarchive": true,
      "backend": "ckan",
      "config": {},
      "description": "text",
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "url": "text"
    }
    {
      "args": [
        {}
      ],
      "crontab": {
        "day_of_month": "*",
        "day_of_week": "*",
        "hour": "*",
        "minute": "*",
        "month_of_year": "*"
      },
      "description": "text",
      "enabled": false,
      "id": "text",
      "interval": {
        "every": 1,
        "period": "days"
      },
      "kwargs": {},
      "last_run_at": "2025-12-18T02:58:17.175Z",
      "last_run_id": "text",
      "name": "text",
      "schedule": "text",
      "task": "test-high-queue"
    }
    GET /api/1/workers/jobs/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "args": [
          {}
        ],
        "crontab": {
          "day_of_month": "*",
          "day_of_week": "*",
          "hour": "*",
          "minute": "*",
          "month_of_year": "*"
        },
        "description": "text",
        "enabled": false,
        "id": "text",
        "interval": {
          "every": 1,
          "period": "days"
        },
        "kwargs": {},
        "last_run_at": "2025-12-18T02:58:17.175Z",
        "last_run_id": "text",
        "name": "text",
        "schedule": "text",
        "task": "test-high-queue"
      }
    ]
    POST /api/1/workers/jobs/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 233
    
    {
      "args": [
        {}
      ],
      "crontab": {
        "day_of_month": "*",
        "day_of_week": "*",
        "hour": "*",
        "minute": "*",
        "month_of_year": "*"
      },
      "description": "text",
      "enabled": false,
      "interval": {
        "every": 1,
        "period": "days"
      },
      "kwargs": {},
      "name": "text",
      "task": "test-high-queue"
    }
    {
      "contact_form": "text",
      "email": "text",
      "id": "text",
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "role": "text"
    }
    {
      "contact_form": "text",
      "email": "text",
      "id": "text",
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "role": "text"
    }
    POST /api/1/contacts/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 272
    
    {
      "contact_form": "text",
      "email": "text",
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "role": "text"
    }
    DELETE /api/1/contacts/{contact_point}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/contacts/{contact_point}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "contact_form": "text",
      "email": "text",
      "id": "text",
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "role": "text"
    }
    PUT /api/1/contacts/{contact_point}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 272
    
    {
      "contact_form": "text",
      "email": "text",
      "name": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "role": "text"
    }
    {
      "data": [
        {
          "archived": "2025-12-18T02:58:17.175Z",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "dataservices": [
            {
              "class": "text",
              "id": "text",
              "self_api_url": "text",
              "self_web_url": "text",
              "title": "My awesome API"
            }
          ],
          "datasets": [
            {
              "access_audiences": [
                {
                  "condition": "yes",
                  "role": "local_authority_and_administration"
                }
              ],
              "access_type": "text",
              "access_type_reason": "text",
              "access_type_reason_category": "text",
              "acronym": "text",
              "archived": "2025-12-18T02:58:17.175Z",
              "authorization_request_url": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "community_resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text",
                  "dataset": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "page": "text",
                    "title": "text",
                    "uri": "text"
                  },
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "permissions": {
                    "delete": true,
                    "edit": true,
                    "edit_resources": true
                  }
                }
              ],
              "contact_points": [
                {
                  "contact_form": "text",
                  "email": "text",
                  "id": "text",
                  "name": "text",
                  "organization": {
                    "class": "text",
                    "id": "text",
                    "acronym": "text",
                    "badges": [
                      {
                        "kind": "text"
                      }
                    ],
                    "logo": "text",
                    "logo_thumbnail": "text",
                    "name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "owner": {
                    "class": "text",
                    "id": "text",
                    "avatar": "text",
                    "avatar_thumbnail": "text",
                    "first_name": "text",
                    "last_name": "text",
                    "page": "text",
                    "slug": "text",
                    "uri": "text"
                  },
                  "role": "text"
                }
              ],
              "created_at": "2025-12-18T02:58:17.175Z",
              "deleted": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "description_short": "text",
              "extras": {},
              "featured": true,
              "frequency": "continuous",
              "frequency_date": "2025-12-18T02:58:17.175Z",
              "harvest": {
                "archived": "text",
                "archived_at": "2025-12-18T02:58:17.175Z",
                "backend": "text",
                "created_at": "2025-12-18T02:58:17.175Z",
                "dct_identifier": "text",
                "domain": "text",
                "issued_at": "2025-12-18T02:58:17.175Z",
                "last_update": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "remote_id": "text",
                "remote_url": "text",
                "source_id": "text",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "license": "notspecified",
              "metrics": {},
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "page": "text",
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              },
              "private": true,
              "quality": {},
              "resources": [
                {
                  "checksum": {
                    "type": "sha1",
                    "value": "text"
                  },
                  "created_at": "2025-12-18T02:58:17.175Z",
                  "description": "text",
                  "extras": {},
                  "filesize": 1,
                  "filetype": "file",
                  "format": "text",
                  "harvest": {
                    "issued_at": "2025-12-18T02:58:17.175Z",
                    "modified_at": "2025-12-18T02:58:17.175Z",
                    "uri": "text"
                  },
                  "id": "text",
                  "internal": {
                    "created_at_internal": "2025-12-18T02:58:17.175Z",
                    "last_modified_internal": "2025-12-18T02:58:17.175Z"
                  },
                  "last_modified": "2025-12-18T02:58:17.175Z",
                  "latest": "text",
                  "metrics": {},
                  "mime": "text",
                  "preview_url": "text",
                  "schema": {
                    "name": "text",
                    "url": "text",
                    "version": "text"
                  },
                  "title": "text",
                  "type": "main",
                  "url": "text"
                }
              ],
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "slug": "text",
              "spatial": {
                "geom": {
                  "coordinates": [
                    {}
                  ],
                  "type": "Point"
                },
                "granularity": "other",
                "zones": {}
              },
              "tags": [
                "text"
              ],
              "temporal_coverage": {
                "end": "2025-12-18T02:58:17.175Z",
                "start": "2025-12-18T02:58:17.175Z"
              },
              "title": "text",
              "uri": "text"
            }
          ],
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "featured": true,
          "id": "text",
          "image": "text",
          "image_thumbnail": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true
          },
          "private": true,
          "slug": "text",
          "tags": [
            "text"
          ],
          "title": "text",
          "topic": "health",
          "type": "api",
          "uri": "text",
          "url": "text"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        {
          "class": "text",
          "id": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "title": "My awesome API"
        }
      ],
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "id": "text",
      "image": "text",
      "image_thumbnail": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "slug": "text",
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "uri": "text",
      "url": "text"
    }
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        {
          "class": "text",
          "id": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "title": "My awesome API"
        }
      ],
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "id": "text",
      "image": "text",
      "image_thumbnail": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "slug": "text",
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "uri": "text",
      "url": "text"
    }
    {
      "kind": "text"
    }
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        {
          "class": "text",
          "id": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "title": "My awesome API"
        }
      ],
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "id": "text",
      "image": "text",
      "image_thumbnail": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "slug": "text",
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "uri": "text",
      "url": "text"
    }
    GET /api/1/reuses/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/reuses/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 279
    
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        "text"
      ],
      "datasets": [
        "text"
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "organization": "text",
      "owner": "text",
      "private": true,
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "url": "text"
    }
    GET /api/1/reuses/suggest/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "image_url": "text",
        "page": "text",
        "slug": "text",
        "title": "text"
      }
    ]
    GET /api/1/reuses/topics/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "label": "text"
      }
    ]
    GET /api/1/reuses/types/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "label": "text"
      }
    ]
    GET /api/1/reuses/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "follower": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "id": "text",
          "since": "2025-12-18T02:58:17.175Z"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/reuses/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/reuses/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/reuses/{reuse}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        {
          "class": "text",
          "id": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "title": "My awesome API"
        }
      ],
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "id": "text",
      "image": "text",
      "image_thumbnail": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "slug": "text",
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "uri": "text",
      "url": "text"
    }
    PUT /api/1/reuses/{reuse}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 279
    
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        "text"
      ],
      "datasets": [
        "text"
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "organization": "text",
      "owner": "text",
      "private": true,
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "url": "text"
    }
    DELETE /api/1/reuses/{reuse}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/reuses/{reuse}/badges/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    {
      "kind": "text"
    }
    DELETE /api/1/reuses/{reuse}/badges/{badge_kind}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/reuses/{reuse}/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 28
    
    {
      "class": "text",
      "id": "text"
    }
    POST /api/1/reuses/{reuse}/featured/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        {
          "class": "text",
          "id": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "title": "My awesome API"
        }
      ],
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "id": "text",
      "image": "text",
      "image_thumbnail": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "slug": "text",
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "uri": "text",
      "url": "text"
    }
    DELETE /api/1/reuses/{reuse}/featured/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "archived": "2025-12-18T02:58:17.175Z",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "dataservices": [
        {
          "class": "text",
          "id": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "title": "My awesome API"
        }
      ],
      "datasets": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "id": "text",
      "image": "text",
      "image_thumbnail": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "slug": "text",
      "tags": [
        "text"
      ],
      "title": "text",
      "topic": "health",
      "type": "api",
      "uri": "text",
      "url": "text"
    }
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "email": {},
      "first_name": "text",
      "id": "text",
      "last_login_at": {},
      "last_name": "text",
      "metrics": {},
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      ],
      "page": "text",
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "uri": "text",
      "website": "text",
      "apikey": "text"
    }
    GET /api/1/me/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "email": {},
      "first_name": "text",
      "id": "text",
      "last_login_at": {},
      "last_name": "text",
      "metrics": {},
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      ],
      "page": "text",
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "uri": "text",
      "website": "text",
      "apikey": "text"
    }
    PUT /api/1/me/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 322
    
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "first_name": "text",
      "id": "text",
      "last_name": "text",
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "logo": "text",
          "logo_thumbnail": "text",
          "slug": "text"
        }
      ],
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "website": "text"
    }
    GET /api/1/me/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "access_audiences": [
          {
            "condition": "yes",
            "role": "local_authority_and_administration"
          }
        ],
        "access_type": "text",
        "access_type_reason": "text",
        "access_type_reason_category": "text",
        "acronym": "text",
        "archived": "2025-12-18T02:58:17.175Z",
        "authorization_request_url": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "community_resources": [
          {
            "checksum": {
              "type": "sha1",
              "value": "text"
            },
            "created_at": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "extras": {},
            "filesize": 1,
            "filetype": "file",
            "format": "text",
            "harvest": {
              "issued_at": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "latest": "text",
            "metrics": {},
            "mime": "text",
            "preview_url": "text",
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "title": "text",
            "type": "main",
            "url": "text",
            "dataset": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "page": "text",
              "title": "text",
              "uri": "text"
            },
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "permissions": {
              "delete": true,
              "edit": true,
              "edit_resources": true
            }
          }
        ],
        "contact_points": [
          {
            "contact_form": "text",
            "email": "text",
            "id": "text",
            "name": "text",
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "role": "text"
          }
        ],
        "created_at": "2025-12-18T02:58:17.175Z",
        "deleted": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "description_short": "text",
        "extras": {},
        "featured": true,
        "frequency": "continuous",
        "frequency_date": "2025-12-18T02:58:17.175Z",
        "harvest": {
          "archived": "text",
          "archived_at": "2025-12-18T02:58:17.175Z",
          "backend": "text",
          "created_at": "2025-12-18T02:58:17.175Z",
          "dct_identifier": "text",
          "domain": "text",
          "issued_at": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "modified_at": "2025-12-18T02:58:17.175Z",
          "remote_id": "text",
          "remote_url": "text",
          "source_id": "text",
          "uri": "text"
        },
        "id": "text",
        "internal": {
          "created_at_internal": "2025-12-18T02:58:17.175Z",
          "last_modified_internal": "2025-12-18T02:58:17.175Z"
        },
        "last_modified": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "license": "notspecified",
        "metrics": {},
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "owner": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "page": "text",
        "permissions": {
          "delete": true,
          "edit": true,
          "edit_resources": true
        },
        "private": true,
        "quality": {},
        "resources": [
          {
            "checksum": {
              "type": "sha1",
              "value": "text"
            },
            "created_at": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "extras": {},
            "filesize": 1,
            "filetype": "file",
            "format": "text",
            "harvest": {
              "issued_at": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "latest": "text",
            "metrics": {},
            "mime": "text",
            "preview_url": "text",
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "title": "text",
            "type": "main",
            "url": "text"
          }
        ],
        "schema": {
          "name": "text",
          "url": "text",
          "version": "text"
        },
        "slug": "text",
        "spatial": {
          "geom": {
            "coordinates": [
              {}
            ],
            "type": "Point"
          },
          "granularity": "other",
          "zones": {}
        },
        "tags": [
          "text"
        ],
        "temporal_coverage": {
          "end": "2025-12-18T02:58:17.175Z",
          "start": "2025-12-18T02:58:17.175Z"
        },
        "title": "text",
        "uri": "text"
      }
    ]
    GET /api/1/me/metrics/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "datasets_count": 1,
        "datasets_org_count": 1,
        "followers_count": 1,
        "followers_org_count": 1,
        "id": "text",
        "resources_availability": 1
      }
    ]
    GET /api/1/me/org_community_resources/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "checksum": {
          "type": "sha1",
          "value": "text"
        },
        "created_at": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "extras": {},
        "filesize": 1,
        "filetype": "file",
        "format": "text",
        "harvest": {
          "issued_at": "2025-12-18T02:58:17.175Z",
          "modified_at": "2025-12-18T02:58:17.175Z",
          "uri": "text"
        },
        "id": "text",
        "internal": {
          "created_at_internal": "2025-12-18T02:58:17.175Z",
          "last_modified_internal": "2025-12-18T02:58:17.175Z"
        },
        "last_modified": "2025-12-18T02:58:17.175Z",
        "latest": "text",
        "metrics": {},
        "mime": "text",
        "preview_url": "text",
        "schema": {
          "name": "text",
          "url": "text",
          "version": "text"
        },
        "title": "text",
        "type": "main",
        "url": "text",
        "dataset": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "page": "text",
          "title": "text",
          "uri": "text"
        },
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "owner": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "permissions": {
          "delete": true,
          "edit": true,
          "edit_resources": true
        }
      }
    ]
    GET /api/1/me/org_datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "access_audiences": [
          {
            "condition": "yes",
            "role": "local_authority_and_administration"
          }
        ],
        "access_type": "text",
        "access_type_reason": "text",
        "access_type_reason_category": "text",
        "acronym": "text",
        "archived": "2025-12-18T02:58:17.175Z",
        "authorization_request_url": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "community_resources": [
          {
            "checksum": {
              "type": "sha1",
              "value": "text"
            },
            "created_at": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "extras": {},
            "filesize": 1,
            "filetype": "file",
            "format": "text",
            "harvest": {
              "issued_at": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "latest": "text",
            "metrics": {},
            "mime": "text",
            "preview_url": "text",
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "title": "text",
            "type": "main",
            "url": "text",
            "dataset": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "page": "text",
              "title": "text",
              "uri": "text"
            },
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "permissions": {
              "delete": true,
              "edit": true,
              "edit_resources": true
            }
          }
        ],
        "contact_points": [
          {
            "contact_form": "text",
            "email": "text",
            "id": "text",
            "name": "text",
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "role": "text"
          }
        ],
        "created_at": "2025-12-18T02:58:17.175Z",
        "deleted": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "description_short": "text",
        "extras": {},
        "featured": true,
        "frequency": "continuous",
        "frequency_date": "2025-12-18T02:58:17.175Z",
        "harvest": {
          "archived": "text",
          "archived_at": "2025-12-18T02:58:17.175Z",
          "backend": "text",
          "created_at": "2025-12-18T02:58:17.175Z",
          "dct_identifier": "text",
          "domain": "text",
          "issued_at": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "modified_at": "2025-12-18T02:58:17.175Z",
          "remote_id": "text",
          "remote_url": "text",
          "source_id": "text",
          "uri": "text"
        },
        "id": "text",
        "internal": {
          "created_at_internal": "2025-12-18T02:58:17.175Z",
          "last_modified_internal": "2025-12-18T02:58:17.175Z"
        },
        "last_modified": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "license": "notspecified",
        "metrics": {},
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "owner": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "page": "text",
        "permissions": {
          "delete": true,
          "edit": true,
          "edit_resources": true
        },
        "private": true,
        "quality": {},
        "resources": [
          {
            "checksum": {
              "type": "sha1",
              "value": "text"
            },
            "created_at": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "extras": {},
            "filesize": 1,
            "filetype": "file",
            "format": "text",
            "harvest": {
              "issued_at": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "latest": "text",
            "metrics": {},
            "mime": "text",
            "preview_url": "text",
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "title": "text",
            "type": "main",
            "url": "text"
          }
        ],
        "schema": {
          "name": "text",
          "url": "text",
          "version": "text"
        },
        "slug": "text",
        "spatial": {
          "geom": {
            "coordinates": [
              {}
            ],
            "type": "Point"
          },
          "granularity": "other",
          "zones": {}
        },
        "tags": [
          "text"
        ],
        "temporal_coverage": {
          "end": "2025-12-18T02:58:17.175Z",
          "start": "2025-12-18T02:58:17.175Z"
        },
        "title": "text",
        "uri": "text"
      }
    ]
    GET /api/1/me/org_discussions/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "class": "text",
        "closed": "2025-12-18T02:58:17.175Z",
        "closed_by": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "closed_by_organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "created": "2025-12-18T02:58:17.175Z",
        "discussion": {
          "content": "text",
          "last_modified_at": "2025-12-18T02:58:17.175Z",
          "permissions": {
            "delete": true,
            "edit": true
          },
          "posted_by": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "posted_by_organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "posted_on": "2025-12-18T02:58:17.175Z",
          "spam": {
            "status": "not_checked"
          }
        },
        "extras": {},
        "id": "text",
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "permissions": {
          "close": true,
          "delete": true,
          "edit": true
        },
        "self_web_url": "text",
        "spam": {
          "status": "not_checked"
        },
        "subject": {
          "class": "text",
          "id": "text"
        },
        "title": "text",
        "url": "text",
        "user": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      }
    ]
    GET /api/1/me/org_reuses/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "archived": "2025-12-18T02:58:17.175Z",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "created_at": "2025-12-18T02:58:17.175Z",
        "dataservices": [
          {
            "class": "text",
            "id": "text",
            "self_api_url": "text",
            "self_web_url": "text",
            "title": "My awesome API"
          }
        ],
        "datasets": [
          {
            "access_audiences": [
              {
                "condition": "yes",
                "role": "local_authority_and_administration"
              }
            ],
            "access_type": "text",
            "access_type_reason": "text",
            "access_type_reason_category": "text",
            "acronym": "text",
            "archived": "2025-12-18T02:58:17.175Z",
            "authorization_request_url": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "community_resources": [
              {
                "checksum": {
                  "type": "sha1",
                  "value": "text"
                },
                "created_at": "2025-12-18T02:58:17.175Z",
                "description": "text",
                "extras": {},
                "filesize": 1,
                "filetype": "file",
                "format": "text",
                "harvest": {
                  "issued_at": "2025-12-18T02:58:17.175Z",
                  "modified_at": "2025-12-18T02:58:17.175Z",
                  "uri": "text"
                },
                "id": "text",
                "internal": {
                  "created_at_internal": "2025-12-18T02:58:17.175Z",
                  "last_modified_internal": "2025-12-18T02:58:17.175Z"
                },
                "last_modified": "2025-12-18T02:58:17.175Z",
                "latest": "text",
                "metrics": {},
                "mime": "text",
                "preview_url": "text",
                "schema": {
                  "name": "text",
                  "url": "text",
                  "version": "text"
                },
                "title": "text",
                "type": "main",
                "url": "text",
                "dataset": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "page": "text",
                  "title": "text",
                  "uri": "text"
                },
                "organization": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "logo": "text",
                  "logo_thumbnail": "text",
                  "name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "owner": {
                  "class": "text",
                  "id": "text",
                  "avatar": "text",
                  "avatar_thumbnail": "text",
                  "first_name": "text",
                  "last_name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "permissions": {
                  "delete": true,
                  "edit": true,
                  "edit_resources": true
                }
              }
            ],
            "contact_points": [
              {
                "contact_form": "text",
                "email": "text",
                "id": "text",
                "name": "text",
                "organization": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "logo": "text",
                  "logo_thumbnail": "text",
                  "name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "owner": {
                  "class": "text",
                  "id": "text",
                  "avatar": "text",
                  "avatar_thumbnail": "text",
                  "first_name": "text",
                  "last_name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "role": "text"
              }
            ],
            "created_at": "2025-12-18T02:58:17.175Z",
            "deleted": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "description_short": "text",
            "extras": {},
            "featured": true,
            "frequency": "continuous",
            "frequency_date": "2025-12-18T02:58:17.175Z",
            "harvest": {
              "archived": "text",
              "archived_at": "2025-12-18T02:58:17.175Z",
              "backend": "text",
              "created_at": "2025-12-18T02:58:17.175Z",
              "dct_identifier": "text",
              "domain": "text",
              "issued_at": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "remote_id": "text",
              "remote_url": "text",
              "source_id": "text",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "license": "notspecified",
            "metrics": {},
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "page": "text",
            "permissions": {
              "delete": true,
              "edit": true,
              "edit_resources": true
            },
            "private": true,
            "quality": {},
            "resources": [
              {
                "checksum": {
                  "type": "sha1",
                  "value": "text"
                },
                "created_at": "2025-12-18T02:58:17.175Z",
                "description": "text",
                "extras": {},
                "filesize": 1,
                "filetype": "file",
                "format": "text",
                "harvest": {
                  "issued_at": "2025-12-18T02:58:17.175Z",
                  "modified_at": "2025-12-18T02:58:17.175Z",
                  "uri": "text"
                },
                "id": "text",
                "internal": {
                  "created_at_internal": "2025-12-18T02:58:17.175Z",
                  "last_modified_internal": "2025-12-18T02:58:17.175Z"
                },
                "last_modified": "2025-12-18T02:58:17.175Z",
                "latest": "text",
                "metrics": {},
                "mime": "text",
                "preview_url": "text",
                "schema": {
                  "name": "text",
                  "url": "text",
                  "version": "text"
                },
                "title": "text",
                "type": "main",
                "url": "text"
              }
            ],
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "slug": "text",
            "spatial": {
              "geom": {
                "coordinates": [
                  {}
                ],
                "type": "Point"
              },
              "granularity": "other",
              "zones": {}
            },
            "tags": [
              "text"
            ],
            "temporal_coverage": {
              "end": "2025-12-18T02:58:17.175Z",
              "start": "2025-12-18T02:58:17.175Z"
            },
            "title": "text",
            "uri": "text"
          }
        ],
        "deleted": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "extras": {},
        "featured": true,
        "id": "text",
        "image": "text",
        "image_thumbnail": "text",
        "last_modified": "2025-12-18T02:58:17.175Z",
        "metrics": {},
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "owner": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "page": "text",
        "permissions": {
          "delete": true,
          "edit": true
        },
        "private": true,
        "slug": "text",
        "tags": [
          "text"
        ],
        "title": "text",
        "topic": "health",
        "type": "api",
        "uri": "text",
        "url": "text"
      }
    ]
    GET /api/1/me/reuses/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "archived": "2025-12-18T02:58:17.175Z",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "created_at": "2025-12-18T02:58:17.175Z",
        "dataservices": [
          {
            "class": "text",
            "id": "text",
            "self_api_url": "text",
            "self_web_url": "text",
            "title": "My awesome API"
          }
        ],
        "datasets": [
          {
            "access_audiences": [
              {
                "condition": "yes",
                "role": "local_authority_and_administration"
              }
            ],
            "access_type": "text",
            "access_type_reason": "text",
            "access_type_reason_category": "text",
            "acronym": "text",
            "archived": "2025-12-18T02:58:17.175Z",
            "authorization_request_url": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "community_resources": [
              {
                "checksum": {
                  "type": "sha1",
                  "value": "text"
                },
                "created_at": "2025-12-18T02:58:17.175Z",
                "description": "text",
                "extras": {},
                "filesize": 1,
                "filetype": "file",
                "format": "text",
                "harvest": {
                  "issued_at": "2025-12-18T02:58:17.175Z",
                  "modified_at": "2025-12-18T02:58:17.175Z",
                  "uri": "text"
                },
                "id": "text",
                "internal": {
                  "created_at_internal": "2025-12-18T02:58:17.175Z",
                  "last_modified_internal": "2025-12-18T02:58:17.175Z"
                },
                "last_modified": "2025-12-18T02:58:17.175Z",
                "latest": "text",
                "metrics": {},
                "mime": "text",
                "preview_url": "text",
                "schema": {
                  "name": "text",
                  "url": "text",
                  "version": "text"
                },
                "title": "text",
                "type": "main",
                "url": "text",
                "dataset": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "page": "text",
                  "title": "text",
                  "uri": "text"
                },
                "organization": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "logo": "text",
                  "logo_thumbnail": "text",
                  "name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "owner": {
                  "class": "text",
                  "id": "text",
                  "avatar": "text",
                  "avatar_thumbnail": "text",
                  "first_name": "text",
                  "last_name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "permissions": {
                  "delete": true,
                  "edit": true,
                  "edit_resources": true
                }
              }
            ],
            "contact_points": [
              {
                "contact_form": "text",
                "email": "text",
                "id": "text",
                "name": "text",
                "organization": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "logo": "text",
                  "logo_thumbnail": "text",
                  "name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "owner": {
                  "class": "text",
                  "id": "text",
                  "avatar": "text",
                  "avatar_thumbnail": "text",
                  "first_name": "text",
                  "last_name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "role": "text"
              }
            ],
            "created_at": "2025-12-18T02:58:17.175Z",
            "deleted": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "description_short": "text",
            "extras": {},
            "featured": true,
            "frequency": "continuous",
            "frequency_date": "2025-12-18T02:58:17.175Z",
            "harvest": {
              "archived": "text",
              "archived_at": "2025-12-18T02:58:17.175Z",
              "backend": "text",
              "created_at": "2025-12-18T02:58:17.175Z",
              "dct_identifier": "text",
              "domain": "text",
              "issued_at": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "remote_id": "text",
              "remote_url": "text",
              "source_id": "text",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "license": "notspecified",
            "metrics": {},
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "page": "text",
            "permissions": {
              "delete": true,
              "edit": true,
              "edit_resources": true
            },
            "private": true,
            "quality": {},
            "resources": [
              {
                "checksum": {
                  "type": "sha1",
                  "value": "text"
                },
                "created_at": "2025-12-18T02:58:17.175Z",
                "description": "text",
                "extras": {},
                "filesize": 1,
                "filetype": "file",
                "format": "text",
                "harvest": {
                  "issued_at": "2025-12-18T02:58:17.175Z",
                  "modified_at": "2025-12-18T02:58:17.175Z",
                  "uri": "text"
                },
                "id": "text",
                "internal": {
                  "created_at_internal": "2025-12-18T02:58:17.175Z",
                  "last_modified_internal": "2025-12-18T02:58:17.175Z"
                },
                "last_modified": "2025-12-18T02:58:17.175Z",
                "latest": "text",
                "metrics": {},
                "mime": "text",
                "preview_url": "text",
                "schema": {
                  "name": "text",
                  "url": "text",
                  "version": "text"
                },
                "title": "text",
                "type": "main",
                "url": "text"
              }
            ],
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "slug": "text",
            "spatial": {
              "geom": {
                "coordinates": [
                  {}
                ],
                "type": "Point"
              },
              "granularity": "other",
              "zones": {}
            },
            "tags": [
              "text"
            ],
            "temporal_coverage": {
              "end": "2025-12-18T02:58:17.175Z",
              "start": "2025-12-18T02:58:17.175Z"
            },
            "title": "text",
            "uri": "text"
          }
        ],
        "deleted": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "extras": {},
        "featured": true,
        "id": "text",
        "image": "text",
        "image_thumbnail": "text",
        "last_modified": "2025-12-18T02:58:17.175Z",
        "metrics": {},
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "owner": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "page": "text",
        "permissions": {
          "delete": true,
          "edit": true
        },
        "private": true,
        "slug": "text",
        "tags": [
          "text"
        ],
        "title": "text",
        "topic": "health",
        "type": "api",
        "uri": "text",
        "url": "text"
      }
    ]
    GET /api/1/notifications/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "created_at": "2025-12-18T02:58:17.175Z",
          "details": {},
          "handled_at": "2025-12-18T02:58:17.175Z",
          "id": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          }
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "email": {},
      "first_name": "text",
      "id": "text",
      "last_login_at": {},
      "last_name": "text",
      "metrics": {},
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      ],
      "page": "text",
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "uri": "text",
      "website": "text"
    }
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "email": {},
      "first_name": "text",
      "id": "text",
      "last_login_at": {},
      "last_name": "text",
      "metrics": {},
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      ],
      "page": "text",
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "uri": "text",
      "website": "text"
    }
    GET /api/1/users/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "about": "text",
          "active": true,
          "avatar": "text",
          "avatar_thumbnail": "text",
          "email": {},
          "first_name": "text",
          "id": "text",
          "last_login_at": {},
          "last_name": "text",
          "metrics": {},
          "organizations": [
            {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            }
          ],
          "page": "text",
          "roles": [
            "text"
          ],
          "since": "2025-12-18T02:58:17.175Z",
          "slug": "text",
          "uri": "text",
          "website": "text"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/users/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 322
    
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "first_name": "text",
      "id": "text",
      "last_name": "text",
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "logo": "text",
          "logo_thumbnail": "text",
          "slug": "text"
        }
      ],
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "website": "text"
    }
    GET /api/1/users/roles/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "name": "text"
      }
    ]
    GET /api/1/users/suggest/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "avatar_url": "text",
        "email": {},
        "first_name": "text",
        "id": "text",
        "last_name": "text",
        "slug": "text"
      }
    ]
    GET /api/1/users/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "follower": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "id": "text",
          "since": "2025-12-18T02:58:17.175Z"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/users/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/users/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/users/{user}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "email": {},
      "first_name": "text",
      "id": "text",
      "last_login_at": {},
      "last_name": "text",
      "metrics": {},
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      ],
      "page": "text",
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "uri": "text",
      "website": "text"
    }
    PUT /api/1/users/{user}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 322
    
    {
      "about": "text",
      "active": true,
      "avatar": "text",
      "avatar_thumbnail": "text",
      "first_name": "text",
      "id": "text",
      "last_name": "text",
      "organizations": [
        {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "logo": "text",
          "logo_thumbnail": "text",
          "slug": "text"
        }
      ],
      "roles": [
        "text"
      ],
      "since": "2025-12-18T02:58:17.175Z",
      "slug": "text",
      "website": "text"
    }
    DELETE /api/1/users/{user}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/site/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "dataservices_page": "text",
      "datasets_page": "text",
      "feed_size": 1,
      "id": "text",
      "keywords": [
        "text"
      ],
      "metrics": {},
      "reuses_page": "text",
      "title": "text",
      "version": "text"
    }
    GET /api/1/site/catalog HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "class": "text",
          "closed": "2025-12-18T02:58:17.175Z",
          "closed_by": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "closed_by_organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "created": "2025-12-18T02:58:17.175Z",
          "discussion": {
            "content": "text",
            "last_modified_at": "2025-12-18T02:58:17.175Z",
            "permissions": {
              "delete": true,
              "edit": true
            },
            "posted_by": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "posted_by_organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "posted_on": "2025-12-18T02:58:17.175Z",
            "spam": {
              "status": "not_checked"
            }
          },
          "extras": {},
          "id": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "close": true,
            "delete": true,
            "edit": true
          },
          "self_web_url": "text",
          "spam": {
            "status": "not_checked"
          },
          "subject": {
            "class": "text",
            "id": "text"
          },
          "title": "text",
          "url": "text",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          }
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    {
      "class": "text",
      "closed": "2025-12-18T02:58:17.175Z",
      "closed_by": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "closed_by_organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "created": "2025-12-18T02:58:17.175Z",
      "discussion": {
        "content": "text",
        "last_modified_at": "2025-12-18T02:58:17.175Z",
        "permissions": {
          "delete": true,
          "edit": true
        },
        "posted_by": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "posted_by_organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "posted_on": "2025-12-18T02:58:17.175Z",
        "spam": {
          "status": "not_checked"
        }
      },
      "extras": {},
      "id": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "close": true,
        "delete": true,
        "edit": true
      },
      "self_web_url": "text",
      "spam": {
        "status": "not_checked"
      },
      "subject": {
        "class": "text",
        "id": "text"
      },
      "title": "text",
      "url": "text",
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      }
    }
    GET /api/1/discussions/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/discussions/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 197
    
    {
      "comment": "text",
      "extras": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "subject": {
        "class": "text",
        "id": "text"
      },
      "title": "text"
    }
    GET /api/1/discussions/{id}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "class": "text",
      "closed": "2025-12-18T02:58:17.175Z",
      "closed_by": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "closed_by_organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "created": "2025-12-18T02:58:17.175Z",
      "discussion": {
        "content": "text",
        "last_modified_at": "2025-12-18T02:58:17.175Z",
        "permissions": {
          "delete": true,
          "edit": true
        },
        "posted_by": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "posted_by_organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "posted_on": "2025-12-18T02:58:17.175Z",
        "spam": {
          "status": "not_checked"
        }
      },
      "extras": {},
      "id": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "close": true,
        "delete": true,
        "edit": true
      },
      "self_web_url": "text",
      "spam": {
        "status": "not_checked"
      },
      "subject": {
        "class": "text",
        "id": "text"
      },
      "title": "text",
      "url": "text",
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      }
    }
    POST /api/1/discussions/{id}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 31
    
    {
      "close": true,
      "comment": "text"
    }
    DELETE /api/1/discussions/{id}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "class": "text",
      "closed": "2025-12-18T02:58:17.175Z",
      "closed_by": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "closed_by_organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "created": "2025-12-18T02:58:17.175Z",
      "discussion": {
        "content": "text",
        "last_modified_at": "2025-12-18T02:58:17.175Z",
        "permissions": {
          "delete": true,
          "edit": true
        },
        "posted_by": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "posted_by_organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "posted_on": "2025-12-18T02:58:17.175Z",
        "spam": {
          "status": "not_checked"
        }
      },
      "extras": {},
      "id": "text",
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "close": true,
        "delete": true,
        "edit": true
      },
      "self_web_url": "text",
      "spam": {
        "status": "not_checked"
      },
      "subject": {
        "class": "text",
        "id": "text"
      },
      "title": "text",
      "url": "text",
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      }
    }
    GET /api/1/transfer/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "comment": "text",
        "created": "2025-12-18T02:58:17.175Z",
        "id": "text",
        "owner": {
          "class": "text",
          "id": "text"
        },
        "recipient": {
          "class": "text",
          "id": "text"
        },
        "reponse_comment": "text",
        "responded": "2025-12-18T02:58:17.175Z",
        "status": "pending",
        "subject": {
          "class": "text",
          "id": "text"
        },
        "user": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      }
    ]
    POST /api/1/transfer/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 98
    
    {
      "comment": "text",
      "recipient": {
        "class": "text",
        "id": "text"
      },
      "subject": {
        "class": "text",
        "id": "text"
      }
    }
    GET /api/1/transfer/{id}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "comment": "text",
      "created": "2025-12-18T02:58:17.175Z",
      "id": "text",
      "owner": {
        "class": "text",
        "id": "text"
      },
      "recipient": {
        "class": "text",
        "id": "text"
      },
      "reponse_comment": "text",
      "responded": "2025-12-18T02:58:17.175Z",
      "status": "pending",
      "subject": {
        "class": "text",
        "id": "text"
      },
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      }
    }
    POST /api/1/transfer/{id}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 38
    
    {
      "comment": "text",
      "response": "accept"
    }
    {
      "comment": "text",
      "created": "2025-12-18T02:58:17.175Z",
      "id": "text",
      "owner": {
        "class": "text",
        "id": "text"
      },
      "recipient": {
        "class": "text",
        "id": "text"
      },
      "reponse_comment": "text",
      "responded": "2025-12-18T02:58:17.175Z",
      "status": "pending",
      "subject": {
        "class": "text",
        "id": "text"
      },
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      }
    }
    {
      "comment": "text",
      "created": "2025-12-18T02:58:17.175Z",
      "id": "text",
      "owner": {
        "class": "text",
        "id": "text"
      },
      "recipient": {
        "class": "text",
        "id": "text"
      },
      "reponse_comment": "text",
      "responded": "2025-12-18T02:58:17.175Z",
      "status": "pending",
      "subject": {
        "class": "text",
        "id": "text"
      },
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      }
    }
    {
      "acronym": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "business_number_id": "text",
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "id": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "logo": "text",
      "logo_thumbnail": "text",
      "members": [
        {
          "label": "text",
          "role": "admin",
          "since": "2025-12-18T02:58:17.175Z",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text",
            "email": {},
            "last_login_at": {}
          }
        }
      ],
      "metrics": {},
      "name": "text",
      "page": "text",
      "slug": "text",
      "uri": "text",
      "url": "text"
    }
    {
      "acronym": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "business_number_id": "text",
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "id": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "logo": "text",
      "logo_thumbnail": "text",
      "members": [
        {
          "label": "text",
          "role": "admin",
          "since": "2025-12-18T02:58:17.175Z",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text",
            "email": {},
            "last_login_at": {}
          }
        }
      ],
      "metrics": {},
      "name": "text",
      "page": "text",
      "slug": "text",
      "uri": "text",
      "url": "text"
    }
    {
      "kind": "text"
    }
    {
      "data": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    GET /api/1/organizations/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "business_number_id": "text",
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "id": "text",
          "last_modified": "2025-12-18T02:58:17.175Z",
          "logo": "text",
          "logo_thumbnail": "text",
          "members": [
            {
              "label": "text",
              "role": "admin",
              "since": "2025-12-18T02:58:17.175Z",
              "user": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text",
                "email": {},
                "last_login_at": {}
              }
            }
          ],
          "metrics": {},
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text",
          "url": "text"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/organizations/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 291
    
    {
      "acronym": "text",
      "business_number_id": "text",
      "description": "text",
      "extras": {},
      "id": "text",
      "logo": "text",
      "logo_thumbnail": "text",
      "members": [
        {
          "role": "admin",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          }
        }
      ],
      "name": "text",
      "slug": "text",
      "url": "text"
    }
    GET /api/1/organizations/roles/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "label": "text"
      }
    ]
    GET /api/1/organizations/suggest/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "acronym": "text",
        "id": "text",
        "image_url": "text",
        "name": "text",
        "page": "text",
        "slug": "text"
      }
    ]
    GET /api/1/organizations/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "follower": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "id": "text",
          "since": "2025-12-18T02:58:17.175Z"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/organizations/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/organizations/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/organizations/{org}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "acronym": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "business_number_id": "text",
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "id": "text",
      "last_modified": "2025-12-18T02:58:17.175Z",
      "logo": "text",
      "logo_thumbnail": "text",
      "members": [
        {
          "label": "text",
          "role": "admin",
          "since": "2025-12-18T02:58:17.175Z",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text",
            "email": {},
            "last_login_at": {}
          }
        }
      ],
      "metrics": {},
      "name": "text",
      "page": "text",
      "slug": "text",
      "uri": "text",
      "url": "text"
    }
    PUT /api/1/organizations/{org}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 291
    
    {
      "acronym": "text",
      "business_number_id": "text",
      "description": "text",
      "extras": {},
      "id": "text",
      "logo": "text",
      "logo_thumbnail": "text",
      "members": [
        {
          "role": "admin",
          "user": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          }
        }
      ],
      "name": "text",
      "slug": "text",
      "url": "text"
    }
    DELETE /api/1/organizations/{org}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/organizations/{org}/badges/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    {
      "kind": "text"
    }
    DELETE /api/1/organizations/{org}/badges/{badge_kind}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/organizations/{org}/discussions/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "class": "text",
        "closed": "2025-12-18T02:58:17.175Z",
        "closed_by": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "closed_by_organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "created": "2025-12-18T02:58:17.175Z",
        "discussion": {
          "content": "text",
          "last_modified_at": "2025-12-18T02:58:17.175Z",
          "permissions": {
            "delete": true,
            "edit": true
          },
          "posted_by": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "posted_by_organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "posted_on": "2025-12-18T02:58:17.175Z",
          "spam": {
            "status": "not_checked"
          }
        },
        "extras": {},
        "id": "text",
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "permissions": {
          "close": true,
          "delete": true,
          "edit": true
        },
        "self_web_url": "text",
        "spam": {
          "status": "not_checked"
        },
        "subject": {
          "class": "text",
          "id": "text"
        },
        "title": "text",
        "url": "text",
        "user": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        }
      }
    ]
    GET /api/1/organizations/{org}/membership/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "comment": "text",
        "created": "2025-12-18T02:58:17.175Z",
        "id": "text",
        "status": "pending",
        "user": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text",
          "email": {},
          "last_login_at": {}
        }
      }
    ]
    POST /api/1/organizations/{org}/membership/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "comment": "text",
      "created": "2025-12-18T02:58:17.175Z",
      "id": "text",
      "status": "pending",
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text",
        "email": {},
        "last_login_at": {}
      }
    }
    POST /api/1/organizations/{org}/membership/{id}/accept/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "label": "text",
      "role": "admin",
      "since": "2025-12-18T02:58:17.175Z",
      "user": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text",
        "email": {},
        "last_login_at": {}
      }
    }
    POST /api/1/organizations/{org}/membership/{id}/refuse/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 18
    
    {
      "comment": "text"
    }
    GET /api/1/organizations/{org}/reuses/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "archived": "2025-12-18T02:58:17.175Z",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "created_at": "2025-12-18T02:58:17.175Z",
        "dataservices": [
          {
            "class": "text",
            "id": "text",
            "self_api_url": "text",
            "self_web_url": "text",
            "title": "My awesome API"
          }
        ],
        "datasets": [
          {
            "access_audiences": [
              {
                "condition": "yes",
                "role": "local_authority_and_administration"
              }
            ],
            "access_type": "text",
            "access_type_reason": "text",
            "access_type_reason_category": "text",
            "acronym": "text",
            "archived": "2025-12-18T02:58:17.175Z",
            "authorization_request_url": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "community_resources": [
              {
                "checksum": {
                  "type": "sha1",
                  "value": "text"
                },
                "created_at": "2025-12-18T02:58:17.175Z",
                "description": "text",
                "extras": {},
                "filesize": 1,
                "filetype": "file",
                "format": "text",
                "harvest": {
                  "issued_at": "2025-12-18T02:58:17.175Z",
                  "modified_at": "2025-12-18T02:58:17.175Z",
                  "uri": "text"
                },
                "id": "text",
                "internal": {
                  "created_at_internal": "2025-12-18T02:58:17.175Z",
                  "last_modified_internal": "2025-12-18T02:58:17.175Z"
                },
                "last_modified": "2025-12-18T02:58:17.175Z",
                "latest": "text",
                "metrics": {},
                "mime": "text",
                "preview_url": "text",
                "schema": {
                  "name": "text",
                  "url": "text",
                  "version": "text"
                },
                "title": "text",
                "type": "main",
                "url": "text",
                "dataset": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "page": "text",
                  "title": "text",
                  "uri": "text"
                },
                "organization": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "logo": "text",
                  "logo_thumbnail": "text",
                  "name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "owner": {
                  "class": "text",
                  "id": "text",
                  "avatar": "text",
                  "avatar_thumbnail": "text",
                  "first_name": "text",
                  "last_name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "permissions": {
                  "delete": true,
                  "edit": true,
                  "edit_resources": true
                }
              }
            ],
            "contact_points": [
              {
                "contact_form": "text",
                "email": "text",
                "id": "text",
                "name": "text",
                "organization": {
                  "class": "text",
                  "id": "text",
                  "acronym": "text",
                  "badges": [
                    {
                      "kind": "text"
                    }
                  ],
                  "logo": "text",
                  "logo_thumbnail": "text",
                  "name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "owner": {
                  "class": "text",
                  "id": "text",
                  "avatar": "text",
                  "avatar_thumbnail": "text",
                  "first_name": "text",
                  "last_name": "text",
                  "page": "text",
                  "slug": "text",
                  "uri": "text"
                },
                "role": "text"
              }
            ],
            "created_at": "2025-12-18T02:58:17.175Z",
            "deleted": "2025-12-18T02:58:17.175Z",
            "description": "text",
            "description_short": "text",
            "extras": {},
            "featured": true,
            "frequency": "continuous",
            "frequency_date": "2025-12-18T02:58:17.175Z",
            "harvest": {
              "archived": "text",
              "archived_at": "2025-12-18T02:58:17.175Z",
              "backend": "text",
              "created_at": "2025-12-18T02:58:17.175Z",
              "dct_identifier": "text",
              "domain": "text",
              "issued_at": "2025-12-18T02:58:17.175Z",
              "last_update": "2025-12-18T02:58:17.175Z",
              "modified_at": "2025-12-18T02:58:17.175Z",
              "remote_id": "text",
              "remote_url": "text",
              "source_id": "text",
              "uri": "text"
            },
            "id": "text",
            "internal": {
              "created_at_internal": "2025-12-18T02:58:17.175Z",
              "last_modified_internal": "2025-12-18T02:58:17.175Z"
            },
            "last_modified": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "license": "notspecified",
            "metrics": {},
            "organization": {
              "class": "text",
              "id": "text",
              "acronym": "text",
              "badges": [
                {
                  "kind": "text"
                }
              ],
              "logo": "text",
              "logo_thumbnail": "text",
              "name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "owner": {
              "class": "text",
              "id": "text",
              "avatar": "text",
              "avatar_thumbnail": "text",
              "first_name": "text",
              "last_name": "text",
              "page": "text",
              "slug": "text",
              "uri": "text"
            },
            "page": "text",
            "permissions": {
              "delete": true,
              "edit": true,
              "edit_resources": true
            },
            "private": true,
            "quality": {},
            "resources": [
              {
                "checksum": {
                  "type": "sha1",
                  "value": "text"
                },
                "created_at": "2025-12-18T02:58:17.175Z",
                "description": "text",
                "extras": {},
                "filesize": 1,
                "filetype": "file",
                "format": "text",
                "harvest": {
                  "issued_at": "2025-12-18T02:58:17.175Z",
                  "modified_at": "2025-12-18T02:58:17.175Z",
                  "uri": "text"
                },
                "id": "text",
                "internal": {
                  "created_at_internal": "2025-12-18T02:58:17.175Z",
                  "last_modified_internal": "2025-12-18T02:58:17.175Z"
                },
                "last_modified": "2025-12-18T02:58:17.175Z",
                "latest": "text",
                "metrics": {},
                "mime": "text",
                "preview_url": "text",
                "schema": {
                  "name": "text",
                  "url": "text",
                  "version": "text"
                },
                "title": "text",
                "type": "main",
                "url": "text"
              }
            ],
            "schema": {
              "name": "text",
              "url": "text",
              "version": "text"
            },
            "slug": "text",
            "spatial": {
              "geom": {
                "coordinates": [
                  {}
                ],
                "type": "Point"
              },
              "granularity": "other",
              "zones": {}
            },
            "tags": [
              "text"
            ],
            "temporal_coverage": {
              "end": "2025-12-18T02:58:17.175Z",
              "start": "2025-12-18T02:58:17.175Z"
            },
            "title": "text",
            "uri": "text"
          }
        ],
        "deleted": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "extras": {},
        "featured": true,
        "id": "text",
        "image": "text",
        "image_thumbnail": "text",
        "last_modified": "2025-12-18T02:58:17.175Z",
        "metrics": {},
        "organization": {
          "class": "text",
          "id": "text",
          "acronym": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "logo": "text",
          "logo_thumbnail": "text",
          "name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "owner": {
          "class": "text",
          "id": "text",
          "avatar": "text",
          "avatar_thumbnail": "text",
          "first_name": "text",
          "last_name": "text",
          "page": "text",
          "slug": "text",
          "uri": "text"
        },
        "page": "text",
        "permissions": {
          "delete": true,
          "edit": true
        },
        "private": true,
        "slug": "text",
        "tags": [
          "text"
        ],
        "title": "text",
        "topic": "health",
        "type": "api",
        "uri": "text",
        "url": "text"
      }
    ]
    GET /api/1/organizations/{org}/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "text",
          "access_type_reason": "text",
          "access_type_reason_category": "text",
          "acronym": "text",
          "archived": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "community_resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text",
              "dataset": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "page": "text",
                "title": "text",
                "uri": "text"
              },
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "permissions": {
                "delete": true,
                "edit": true,
                "edit_resources": true
              }
            }
          ],
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "deleted": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "description_short": "text",
          "extras": {},
          "featured": true,
          "frequency": "continuous",
          "frequency_date": "2025-12-18T02:58:17.175Z",
          "harvest": {
            "archived": "text",
            "archived_at": "2025-12-18T02:58:17.175Z",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "dct_identifier": "text",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "last_update": "2025-12-18T02:58:17.175Z",
          "license": "notspecified",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "page": "text",
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          },
          "private": true,
          "quality": {},
          "resources": [
            {
              "checksum": {
                "type": "sha1",
                "value": "text"
              },
              "created_at": "2025-12-18T02:58:17.175Z",
              "description": "text",
              "extras": {},
              "filesize": 1,
              "filetype": "file",
              "format": "text",
              "harvest": {
                "issued_at": "2025-12-18T02:58:17.175Z",
                "modified_at": "2025-12-18T02:58:17.175Z",
                "uri": "text"
              },
              "id": "text",
              "internal": {
                "created_at_internal": "2025-12-18T02:58:17.175Z",
                "last_modified_internal": "2025-12-18T02:58:17.175Z"
              },
              "last_modified": "2025-12-18T02:58:17.175Z",
              "latest": "text",
              "metrics": {},
              "mime": "text",
              "preview_url": "text",
              "schema": {
                "name": "text",
                "url": "text",
                "version": "text"
              },
              "title": "text",
              "type": "main",
              "url": "text"
            }
          ],
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "slug": "text",
          "spatial": {
            "geom": {
              "coordinates": [
                {}
              ],
              "type": "Point"
            },
            "granularity": "other",
            "zones": {}
          },
          "tags": [
            "text"
          ],
          "temporal_coverage": {
            "end": "2025-12-18T02:58:17.175Z",
            "start": "2025-12-18T02:58:17.175Z"
          },
          "title": "text",
          "uri": "text"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "harvest": {
        "archived": "text",
        "archived_at": "2025-12-18T02:58:17.175Z",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "dct_identifier": "text",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "quality": {},
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text",
      "uri": "text"
    }
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "page": "text",
        "title": "text",
        "uri": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      }
    }
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "page": "text",
        "title": "text",
        "uri": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      }
    }
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "harvest": {
        "archived": "text",
        "archived_at": "2025-12-18T02:58:17.175Z",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "dct_identifier": "text",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "quality": {},
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text",
      "uri": "text"
    }
    {
      "kind": "text"
    }
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text"
    }
    [
      {
        "checksum": {
          "type": "sha1",
          "value": "text"
        },
        "created_at": "2025-12-18T02:58:17.175Z",
        "description": "text",
        "extras": {},
        "filesize": 1,
        "filetype": "file",
        "format": "text",
        "harvest": {
          "issued_at": "2025-12-18T02:58:17.175Z",
          "modified_at": "2025-12-18T02:58:17.175Z",
          "uri": "text"
        },
        "id": "text",
        "internal": {
          "created_at_internal": "2025-12-18T02:58:17.175Z",
          "last_modified_internal": "2025-12-18T02:58:17.175Z"
        },
        "last_modified": "2025-12-18T02:58:17.175Z",
        "latest": "text",
        "metrics": {},
        "mime": "text",
        "preview_url": "text",
        "schema": {
          "name": "text",
          "url": "text",
          "version": "text"
        },
        "title": "text",
        "type": "main",
        "url": "text"
      }
    ]
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text"
    }
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "success": true
    }
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "page": "text",
        "title": "text",
        "uri": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "success": true
    }
    POST /api/1/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 2158
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "mime": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "role": "text"
        }
      ],
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "mime": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text"
    }
    GET /api/1/datasets/community_resources/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/datasets/community_resources/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 543
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "mime": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      }
    }
    GET /api/1/datasets/community_resources/{community}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "page": "text",
        "title": "text",
        "uri": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      }
    }
    PUT /api/1/datasets/community_resources/{community}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 543
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "mime": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      }
    }
    DELETE /api/1/datasets/community_resources/{community}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/datasets/community_resources/{community}/upload/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "dataset": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "page": "text",
        "title": "text",
        "uri": "text"
      },
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "success": true
    }
    [
      "text"
    ]
    GET /api/1/datasets/frequencies/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "label": "text"
      }
    ]
    GET /api/1/datasets/licenses/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "alternate_titles": [
          "text"
        ],
        "alternate_urls": [
          "text"
        ],
        "flags": [
          "text"
        ],
        "id": "text",
        "maintainer": "text",
        "title": "text",
        "url": "text"
      }
    ]
    GET /api/1/datasets/r/{id} HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/resource_types/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "id": "text",
        "label": "text"
      }
    ]
    GET /api/1/datasets/schemas/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    [
      {
        "consolidation_dataset_id": "text",
        "contact": "text",
        "datapackage_description": "text",
        "datapackage_name": "text",
        "datapackage_title": "text",
        "description": "text",
        "examples": [
          {
            "path": "text",
            "title": "text"
          }
        ],
        "external_doc": "text",
        "external_tool": "text",
        "homepage": "text",
        "labels": [
          "text"
        ],
        "name": "text",
        "schema_type": "tableschema",
        "schema_url": "text",
        "title": "text",
        "versions": [
          {
            "schema_url": "text",
            "version_name": "text"
          }
        ]
      }
    ]
    GET /api/1/datasets/suggest/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "acronym": "text",
      "id": "text",
      "image_url": "text",
      "page": "text",
      "slug": "text",
      "title": "text"
    }
    GET /api/1/datasets/suggest/formats/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/suggest/mime/?q=text HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/{dataset}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "harvest": {
        "archived": "text",
        "archived_at": "2025-12-18T02:58:17.175Z",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "dct_identifier": "text",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "quality": {},
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text",
      "uri": "text"
    }
    PUT /api/1/datasets/{dataset}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 2158
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "mime": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "logo": "text",
            "logo_thumbnail": "text",
            "slug": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "slug": "text"
          },
          "role": "text"
        }
      ],
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "logo": "text",
        "logo_thumbnail": "text",
        "slug": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "slug": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "mime": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text"
    }
    DELETE /api/1/datasets/{dataset}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/datasets/{dataset}/badges/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    {
      "kind": "text"
    }
    DELETE /api/1/datasets/{dataset}/badges/{badge_kind}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/datasets/{dataset}/featured/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "harvest": {
        "archived": "text",
        "archived_at": "2025-12-18T02:58:17.175Z",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "dct_identifier": "text",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "quality": {},
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text",
      "uri": "text"
    }
    DELETE /api/1/datasets/{dataset}/featured/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "text",
      "access_type_reason": "text",
      "access_type_reason_category": "text",
      "acronym": "text",
      "archived": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "community_resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "deleted": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "description_short": "text",
      "extras": {},
      "featured": true,
      "frequency": "continuous",
      "frequency_date": "2025-12-18T02:58:17.175Z",
      "harvest": {
        "archived": "text",
        "archived_at": "2025-12-18T02:58:17.175Z",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "dct_identifier": "text",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "last_update": "2025-12-18T02:58:17.175Z",
      "license": "notspecified",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "page": "text",
      "permissions": {
        "delete": true,
        "edit": true,
        "edit_resources": true
      },
      "private": true,
      "quality": {},
      "resources": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text"
        }
      ],
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "slug": "text",
      "spatial": {
        "geom": {
          "coordinates": [
            {}
          ],
          "type": "Point"
        },
        "granularity": "other",
        "zones": {}
      },
      "tags": [
        "text"
      ],
      "temporal_coverage": {
        "end": "2025-12-18T02:58:17.175Z",
        "start": "2025-12-18T02:58:17.175Z"
      },
      "title": "text",
      "uri": "text"
    }
    POST /api/1/datasets/{dataset}/resources/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 234
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "mime": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text"
    }
    PUT /api/1/datasets/{dataset}/resources/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 236
    
    [
      {
        "checksum": {
          "type": "sha1",
          "value": "text"
        },
        "description": "text",
        "extras": {},
        "filesize": 1,
        "filetype": "file",
        "format": "text",
        "mime": "text",
        "schema": {
          "name": "text",
          "url": "text",
          "version": "text"
        },
        "title": "text",
        "type": "main",
        "url": "text"
      }
    ]
    GET /api/1/datasets/{dataset}/resources/{rid}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text"
    }
    PUT /api/1/datasets/{dataset}/resources/{rid}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 234
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "mime": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text"
    }
    DELETE /api/1/datasets/{dataset}/resources/{rid}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    POST /api/1/datasets/{dataset}/resources/{rid}/upload/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "checksum": {
        "type": "sha1",
        "value": "text"
      },
      "created_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "filesize": 1,
      "filetype": "file",
      "format": "text",
      "harvest": {
        "issued_at": "2025-12-18T02:58:17.175Z",
        "modified_at": "2025-12-18T02:58:17.175Z",
        "uri": "text"
      },
      "id": "text",
      "internal": {
        "created_at_internal": "2025-12-18T02:58:17.175Z",
        "last_modified_internal": "2025-12-18T02:58:17.175Z"
      },
      "last_modified": "2025-12-18T02:58:17.175Z",
      "latest": "text",
      "metrics": {},
      "mime": "text",
      "preview_url": "text",
      "schema": {
        "name": "text",
        "url": "text",
        "version": "text"
      },
      "title": "text",
      "type": "main",
      "url": "text",
      "success": true
    }
    POST /api/1/datasets/{dataset}/upload/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/x-www-form-urlencoded
    Accept: */*
    Content-Length: 109
    
    "file='text'&uuid='text'&filename='text'&partindex=1&partbyteoffset=1&totalparts=1&chunksize=1"
    POST /api/1/datasets/{dataset}/upload/community/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/x-www-form-urlencoded
    Accept: */*
    Content-Length: 109
    
    "file='text'&uuid='text'&filename='text'&partindex=1&partbyteoffset=1&totalparts=1&chunksize=1"
    GET /api/1/datasets/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "follower": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "id": "text",
          "since": "2025-12-18T02:58:17.175Z"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/datasets/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/datasets/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "checksum": {
            "type": "sha1",
            "value": "text"
          },
          "created_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "filesize": 1,
          "filetype": "file",
          "format": "text",
          "harvest": {
            "issued_at": "2025-12-18T02:58:17.175Z",
            "modified_at": "2025-12-18T02:58:17.175Z",
            "uri": "text"
          },
          "id": "text",
          "internal": {
            "created_at_internal": "2025-12-18T02:58:17.175Z",
            "last_modified_internal": "2025-12-18T02:58:17.175Z"
          },
          "last_modified": "2025-12-18T02:58:17.175Z",
          "latest": "text",
          "metrics": {},
          "mime": "text",
          "preview_url": "text",
          "schema": {
            "name": "text",
            "url": "text",
            "version": "text"
          },
          "title": "text",
          "type": "main",
          "url": "text",
          "dataset": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "page": "text",
            "title": "text",
            "uri": "text"
          },
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true,
            "edit_resources": true
          }
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }

    CKAN

  • DKAN, une variante du moissonneur CKAN

  • DCAT

    DCAT est un vocabulaire RDF pour décrire des jeux de données. La Commission européenne a publié son extension de DCAT, appelée DCAT-AP.

    Spécificités techniques

    Ce moissonneur attend l’URL d’un catalogue DCAT (dcat:Catalog).

    Plusieurs formats sont supportés et découvrables à travers la négociation de contenu :

    • RDF XML

    • JSON-LD

    • Turtle

    La pagination est supportée via l’ontologie (ainsi que l’ancienne version).

    Correspondance des champs du modèle

    Jeu de données

    La notion équivalente au jeu de données sur data.gouv.fr (Dataset) est un noeud de type dcat:Dataset en RDF.

    DATA.GOUV.FR
    RDF
    NOTES

    Autres métadonnées

    Certaines propriétés additionnelles sont conservées dans l’attribut harvest par soucis de traçabilité. Les informations de date sont sauvegardées dans ces métadonnées.

    DATA.GOUV.FR HARVEST
    RDF
    NOTES

    Ressource

    La notion équivalente à la ressource sur data.gouv.fr (Resource) est un noeud de type dcat:Distribution en RDF.

    DATA.GOUV.FR
    RDF
    NOTES

    Autres métadonnées

    Certaines propriétés sont conservées dans l’attribut harvest par souci de traçabilité :

    DATA.GOUV.FR RESOURCE HARVEST
    RDF
    NOTES

    Logiciels supportés

    La plupart des logiciels exposant du DCAT (v3 à date) devraient être compatibles a minima avec le moissonneur DCAT de data.gouv.fr. Ci-dessous quelques exemples de logiciels supportés.

    GeoNetwork

    Si vous avez une instance de Geonetwork, vous pouvez publier sur data.gouv.fr.

    Une documentation détaillée est précisée sur la .

    OpenDataSoft

    est un service en PaaS permettant de mettre en œuvre ce qu’on appelle un datastore et le portail de données associé.

    Le moissonneur utilise l'export au format DCAT de chaque portail OpenDataSoft pour récupérer les métadonnées.

    Spécifications techniques : Ce moissonneur attend l’URL publique d'export DCAT de votre portail Opendatasoft. Ce sera par exemple https://data.ma-compagnie.com/api/explore/v2.1/catalog/exports/dcat/. Il est possible (et souvent nécessaire) de renseigner dans l'URL les filtres des jeux de données cibles à moissonner (afin par exemple de moissonner les jeux de données du producteur X avec le mot clé Y). Vous trouverez plus d'information sur la mise en place d'un moissonneur DCAT pour un portail OpenDataSoft sur la .

    Attention: OpenDataSoft utilise le slug (la portion identifiant le jeu de données dans les URLs) comme identifiant technique. L’outil laisse la possibilité de changer ce slug ce qui pose un vrai problème de pérennité des identifiants. Ayez donc à l’esprit que ce changement d’identifiant créera des doublons au moissonnage.

    Isogeo

    Les portails Isogeo exposent du DCAT et sont donc moissonnables par data.gouv.fr.

    Cette explique en détail la mise en place d’un moissonneur DCAT pour un portail Isogeo.

    Namespaces utilisés

    Par souci de lisibilité, les namespaces suivants sont déclarés :

    • dcat ⇨ http://www.w3.org/ns/dcat#

    • dct ⇨ http://purl.org/dc/terms/

    • foaf

    Contribuer

    Ce moissonneur fait partie du coeur de udata, . Vous pouvez donc soumettre des améliorations ou signaler des anomalies.

    CKAN

    est un logiciel libre permettant de mettre en oeuvre des portails de données.

    Le moissonneur utilise l’API de CKAN pour récupérer les métadonnées.

    Métadonnées communes

    Les jeux de données moissonnés possèdent les attributs suivants dans leur champ extras pour la traçabilité :

    ATTRIBUT
    CONTENU

    harvest:domain

    Nom de domaine moissonné

    harvest:source_id

    Identifiant technique du moissonneur

    harvest:remote_id

    Identifiant distant du jeu de données

    harvest:last_update

    Date du dernier moissonnage

    Détection des licences par le moissonnage

    Lors du moissonnage, la liste de référence de data.gouv.fr, disponible ici au format json, est utilisée pour détecter la licence du jeu de données distant.

    Cette détection utilise les attributs suivants :

    • id

    • title

    • alternate_titles

    • url

    • alternate_urls

    Le meilleur moyen d’assurer une compatibilité parfaite est d’utiliser l’id sur le flux distant lorsque c’est possible.

    N3
  • NT

  • Trig

  • Mots-clés

    tags

    dcat:keyword + dcat:theme

    Les RdfResource ne sont pas supportées pour le champ dcat:theme. dcat:keyword est à privilégier

    Licence

    license

    dct:license et dct:right depuis dcat:distributions

    Couverture spatiale

    spatial > geom

    DCT.spatial

    Uniquement les couverture géométriques sont supportées pour l'instant. Soit un Polygon en tant que littéral WKT (), soit un GeoJSON directement (datatype application/vnd.geo+json).

    Granularité géographique

    spatial > granularity

    ❌

    Non supporté

    Couverture temporelle

    temporal_coverage

    dct:temporal

    Séparé par / dans le cas de dates de début et de fin, ex: 2011-01-01/2011-12-31

    Fréquence de mise à jour

    frequency

    dct:accrualPeriodicity

    ou un équivalent au plus proche des

    Date de création

    created_at

    dct.issued

    Date de modification

    modified_at

    dct.modified

    Taille

    filesize

    dcat:byteSize

    Type MIME

    mime

    dcat:mediaType

    Format

    format

    dct:format

    Somme de contrôle

    checksum

    spdx:checksum (spdx:algorithm + spdx:checksumValue)

    Date de modification

    modified_at

    dct.modified

    ⇨
    http://xmlns.com/foaf/0.1/
  • hydra ⇨ http://www.w3.org/ns/hydra/core#

  • rdfs ⇨ http://www.w3.org/2000/01/rdf-schema#

  • scv ⇨ http://purl.org/NET/scovo#

  • skos ⇨ http://www.w3.org/2004/02/skos/core#

  • vcard ⇨ http://www.w3.org/2006/vcard/ns#

  • xsd ⇨ http://www.w3.org/2001/XMLSchema#

  • freq ⇨ http://purl.org/cld/freq/

  • Spécifications techniques

    Ce moissonneur attend l’URL racine de l’instance CKAN et non du portail (dans le cas où CKAN est couplé à Drupal par exemple).

    Comme le moissonneur utilise l’API de CKAN, il nécessite que celle-ci soit accessible.

    Ce moissonneur n’est pas compatible avec les changements de modèles qui peuvent être effectués par certains plugins. Les champs d’un jeu de données doivent rester les mêmes, et le format de leur contenu aussi.

    Les champs additionnels du modèle sont ignorés.

    Correspondance des champs du modèle

    Jeu de données

    La notion équivalente au jeu de données sur data.gouv.fr (Dataset) est le Package dans CKAN.

    DATA.GOUV.FR
    CKAN
    NOTES

    Slug

    slug

    name

    Création uniquement, si disponible

    Titre

    title

    title

    Acronyme

    acronym

    ❌

    Autres métadonnées

    Certaines propriétés additionnelles sont conservées dans l’attribut harvest par soucis de traçabilité. Les informations de date sont sauvegardées dans ces métadonnées.

    DATA.GOUV.FR HARVEST
    CKAN
    NOTES

    Identifiant distant

    remote_id

    id

    Slug

    ckan_name

    name

    Car slug peut déjà être pris

    URL de consultation

    remote_url

    url

    Tous les attributs extras de CKAN qui ne font pas l’objet d’un traitement particulier sont aussi conservés dans l’attribut extras.

    Ressource

    La notion équivalente à la ressource sur data.gouv.fr (Resource) est aussi la Resource dans CKAN.

    DATA.GOUV.FR
    CKAN
    NOTES

    Identifiant

    id

    id

    Un UUID valide

    Titre

    title

    name

    Description

    description

    description

    Filtrage

    La filtrage donne la possibilité d’inclure ou d’exclure un sous-ensemble de jeux de données du moissonnage.

    Lorsqu’un ou plusieurs filtres sont déclarés, seuls les jeux de données remplissant toutes les conditions (ET) seront traités.

    Portail multiproducteur : restriction à une organisation

    Exemple de restriction à une seule organisation

    Exclusion de mots-clés

    Exemple d'exclusion de mots-clés

    Combinaisons multiples

    Exemple de combinaison de filtres

    Contribuer

    Le moissonneur CKAN est publié sur github dans le plugin udata-ckan. Vous pouvez donc soumettre des améliorations ou signaler des anomalies.

    Titre

    title

    dct:title

    Acronyme

    acronym

    skos:altLabel

    Description

    description

    dct:description + dct:abstract

    Identifiant distant

    remote_id

    dct:identifier

    Conservé aussi sous dct:identifier

    URI

    uri

    ID du noeud

    URIRef

    URL de consultation

    remote_url

    dcat:landingPage ou l’identifier RDF s’il s’agit d’une URI

    Titre

    title

    dct:title

    Propriété facultative, un nom est généré sinon

    Description

    description

    dct:description

    Éventuellement HTML transformé en Markdown

    URL

    url

    dcat:downloadURL et dcat:accessURL

    Identifiant distant

    dct:identifier

    dct:identifier

    URI

    uri

    dct:identifier

    Si dct:identifier est un URIRef

    Date de création

    created_at

    dct.issued

    Hydra
    page du moissonnage des données géographiques
    Opendatasoft
    documentation dédiée d'OpenDataSoft
    documentation officielle
    son code est disponible sur github
    CKAN

    Éventuellement HTML transformé en Markdown. dct:description est à privilégier

    Priorité à dcat:downloadURL

    Description

    description

    notes

    Mots-clés

    tags

    tags.name

    Date de création

    created_at

    metadata_created

    Date de mise à jour

    last_modified

    metadata_modified

    Licence

    license

    license_id et license_title

    deviné

    Couverture spatiale

    spatial

    extras.spatial et extras.spatial-test

    deviné

    Couverture temporelle

    temporal_coverage

    extras.temporal_start et extras.temporal_end

    Fréquence de mise à jour

    frequency

    extras.frequency

    Dublin Core Frequency

    Conservé dans ckan:source si URL invalide

    URL

    url

    url

    Type

    filetype

    resource_type

    api ou remote

    Type MIME

    mime

    mimetype

    Format

    format

    format

    Date de création

    harvest.created_at

    created

    Date de mise à jour

    harvest.modified_at

    last_modified

    Détection des licences
    exemple
    Dublin Core Frequency
    Fréquences Européennes

    List or search all dataservices

    get
    Paramètres de requête
    pageintegerOptionnel

    The page to display

    page_sizeintegerOptionnel

    The page size

    sortstring · enumOptionnel

    The field (and direction) on which sorting apply

    Valeurs possibles:
    qstringOptionnel
    topicstringOptionnel
    reusestringOptionnel
    ownerstringOptionnel
    organizationstringOptionnel
    organization_badgestring · my-custom-formatOptionnel
    access_typestring · enumOptionnelValeurs possibles:
    tagstringOptionnel
    featuredbooleanOptionnel
    contact_pointstringOptionnel
    datasetstringOptionnel
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /dataservices/
    200

    Success

    post
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    access_typestring · enumOptionnelExample: openValeurs possibles:
    access_type_reasonstringOptionnel
    access_type_reason_categorystring · enumOptionnelExample: confidentiality_of_proceedings_of_public_authoritiesValeurs possibles:
    acronymstring · max: 128Optionnel
    archived_atstring · date-timeOptionnel
    authorization_request_urlstringOptionnel
    availabilitynumber · max: 100OptionnelExample: 99.99
    availability_urlstringOptionnel
    base_api_urlstringOptionnel
    business_documentation_urlstringOptionnel
    contact_pointsstring[]Optionnel

    ID of the reference

    datasetsstring[]Optionnel

    ID of the reference

    deleted_atstring · date-timeOptionnel
    descriptionstringOptionnel

    In markdown

    extrasobjectOptionnel
    formatstring · enumOptionnelExample: RESTValeurs possibles:
    licensestringOptionnel

    The ID of the license

    machine_documentation_urlstringOptionnel

    Swagger link, OpenAPI format, WMS XML…

    organizationstringOptionnel

    Only present if owner is not set. Can only be set to an organization of the current authenticated user.

    ownerstringOptionnel

    Only present if organization is not set. Can only be set to the current authenticated user.

    privatebooleanOptionnel

    Is the dataservice private to the owner or the organization

    rate_limitingstringOptionnel
    rate_limiting_urlstringOptionnel
    tagsstring[]Optionnel
    technical_documentation_urlstringOptionnel

    HTML version of a Swagger…

    titlestringRequisExample: My awesome API
    Réponses
    201

    Success

    application/json
    400

    Validation error

    post
    /dataservices/
    post
    Paramètres de chemin
    dataserviceanyRequis

    The dataservice ID or slug

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corpsobject[]
    idstringRequis

    Id of the dataset to add

    Réponses
    200

    Success

    application/json
    400

    Malformed object id(s) in request

    403

    Forbidden

    404

    Dataservice not found

    410

    Dataservice has been deleted

    post
    /dataservices/{dataservice}/datasets/
    get
    Paramètres de chemin
    dataserviceanyRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /dataservices/{dataservice}/
    200

    Success

    get
    Paramètres de chemin
    dataserviceanyRequis

    The dataservice ID or slug

    Réponses
    404

    Dataservice not found

    410

    Dataservice has been deleted

    get
    /dataservices/{dataservice}/rdf

    Aucun contenu

    List all followers for a given object

    get
    Paramètres de chemin
    idanyRequis
    Paramètres de requête
    pageintegerOptionnel

    The page to fetch

    page_sizeintegerOptionnel

    The page size to fetch

    userstringOptionnel

    Filter follower by user, it allows to check if a user is following the object

    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Réponses
    200

    Success

    application/json
    get
    /dataservices/{id}/followers/
    200

    Success

    delete
    Paramètres de chemin
    dataserviceanyRequis
    Réponses
    204

    dataservice deleted

    delete
    /dataservices/{dataservice}/
    204

    dataservice deleted

    Aucun contenu

    patch
    Paramètres de chemin
    dataserviceanyRequis
    Paramètres d'en-tête
    X-Fieldsstring · maskOptionnel

    An optional fields mask

    Corps
    access_typestring · enumOptionnelExample: openValeurs possibles:
    access_type_reasonstringOptionnel
    access_type_reason_categorystring · enumOptionnelExample: confidentiality_of_proceedings_of_public_authoritiesValeurs possibles:
    acronymstring · max: 128Optionnel
    archived_atstring · date-timeOptionnel
    authorization_request_urlstringOptionnel
    availabilitynumber · max: 100OptionnelExample: 99.99
    availability_urlstringOptionnel
    base_api_urlstringOptionnel
    business_documentation_urlstringOptionnel
    contact_pointsstring[]Optionnel

    ID of the reference

    datasetsstring[]Optionnel

    ID of the reference

    deleted_atstring · date-timeOptionnel
    descriptionstringOptionnel

    In markdown

    extrasobjectOptionnel
    formatstring · enumOptionnelExample: RESTValeurs possibles:
    licensestringOptionnel

    The ID of the license

    machine_documentation_urlstringOptionnel

    Swagger link, OpenAPI format, WMS XML…

    organizationstringOptionnel

    Only present if owner is not set. Can only be set to an organization of the current authenticated user.

    ownerstringOptionnel

    Only present if organization is not set. Can only be set to the current authenticated user.

    privatebooleanOptionnel

    Is the dataservice private to the owner or the organization

    rate_limitingstringOptionnel
    rate_limiting_urlstringOptionnel
    tagsstring[]Optionnel
    technical_documentation_urlstringOptionnel

    HTML version of a Swagger…

    titlestringRequisExample: My awesome API
    Réponses
    200

    Success

    application/json
    400

    Validation error

    patch
    /dataservices/{dataservice}/
    delete
    Paramètres de chemin
    dataserviceanyRequis

    The dataservice ID or slug

    datasetanyRequis
    Réponses
    404

    Dataservice not found

    delete
    /dataservices/{dataservice}/datasets/{dataset}/
    404

    Dataservice not found

    Aucun contenu

    Follow an object given its ID

    post

    Returns the number of followers left after the operation

    Paramètres de chemin
    idanyRequis
    Réponses
    200

    Success

    Aucun contenu

    post
    /dataservices/{id}/followers/
    200

    Success

    Aucun contenu

    Unfollow an object given its ID

    delete

    Returns the number of followers left after the operation

    Paramètres de chemin
    idanyRequis
    Réponses
    200

    Success

    Aucun contenu

    delete
    /dataservices/{id}/followers/
    200

    Success

    Aucun contenu

    GET /api/1/dataservices/{dataservice}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    GET /api/1/dataservices/{dataservice}/rdf HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/dataservices/{dataservice}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/dataservices/{dataservice}/datasets/{dataset}/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "open",
      "access_type_reason": "text",
      "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
      "acronym": "text",
      "archived_at": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "availability": "99.99",
      "availability_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "base_api_url": "text",
      "business_documentation_url": "text",
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "datasets": {},
      "deleted_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "format": "REST",
      "harvest": {
        "archived_at": "2025-12-18T02:58:17.175Z",
        "archived_reason": "text",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "source_url": "text",
        "uri": "text"
      },
      "id": "text",
      "license": "text",
      "machine_documentation_url": "text",
      "metadata_modified_at": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "rate_limiting": "text",
      "rate_limiting_url": "text",
      "self_api_url": "text",
      "self_web_url": "text",
      "slug": "text",
      "tags": [
        "text"
      ],
      "technical_documentation_url": "text",
      "title": "My awesome API"
    }
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "open",
      "access_type_reason": "text",
      "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
      "acronym": "text",
      "archived_at": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "availability": "99.99",
      "availability_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "base_api_url": "text",
      "business_documentation_url": "text",
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "datasets": {},
      "deleted_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "format": "REST",
      "harvest": {
        "archived_at": "2025-12-18T02:58:17.175Z",
        "archived_reason": "text",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "source_url": "text",
        "uri": "text"
      },
      "id": "text",
      "license": "text",
      "machine_documentation_url": "text",
      "metadata_modified_at": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "rate_limiting": "text",
      "rate_limiting_url": "text",
      "self_api_url": "text",
      "self_web_url": "text",
      "slug": "text",
      "tags": [
        "text"
      ],
      "technical_documentation_url": "text",
      "title": "My awesome API"
    }
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "open",
      "access_type_reason": "text",
      "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
      "acronym": "text",
      "archived_at": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "availability": "99.99",
      "availability_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "base_api_url": "text",
      "business_documentation_url": "text",
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "datasets": {},
      "deleted_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "format": "REST",
      "harvest": {
        "archived_at": "2025-12-18T02:58:17.175Z",
        "archived_reason": "text",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "source_url": "text",
        "uri": "text"
      },
      "id": "text",
      "license": "text",
      "machine_documentation_url": "text",
      "metadata_modified_at": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "rate_limiting": "text",
      "rate_limiting_url": "text",
      "self_api_url": "text",
      "self_web_url": "text",
      "slug": "text",
      "tags": [
        "text"
      ],
      "technical_documentation_url": "text",
      "title": "My awesome API"
    }
    GET /api/1/dataservices/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "access_audiences": [
            {
              "condition": "yes",
              "role": "local_authority_and_administration"
            }
          ],
          "access_type": "open",
          "access_type_reason": "text",
          "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
          "acronym": "text",
          "archived_at": "2025-12-18T02:58:17.175Z",
          "authorization_request_url": "text",
          "availability": "99.99",
          "availability_url": "text",
          "badges": [
            {
              "kind": "text"
            }
          ],
          "base_api_url": "text",
          "business_documentation_url": "text",
          "contact_points": [
            {
              "contact_form": "text",
              "email": "text",
              "id": "text",
              "name": "text",
              "organization": {
                "class": "text",
                "id": "text",
                "acronym": "text",
                "badges": [
                  {
                    "kind": "text"
                  }
                ],
                "logo": "text",
                "logo_thumbnail": "text",
                "name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "owner": {
                "class": "text",
                "id": "text",
                "avatar": "text",
                "avatar_thumbnail": "text",
                "first_name": "text",
                "last_name": "text",
                "page": "text",
                "slug": "text",
                "uri": "text"
              },
              "role": "text"
            }
          ],
          "created_at": "2025-12-18T02:58:17.175Z",
          "datasets": {},
          "deleted_at": "2025-12-18T02:58:17.175Z",
          "description": "text",
          "extras": {},
          "featured": true,
          "format": "REST",
          "harvest": {
            "archived_at": "2025-12-18T02:58:17.175Z",
            "archived_reason": "text",
            "backend": "text",
            "created_at": "2025-12-18T02:58:17.175Z",
            "domain": "text",
            "issued_at": "2025-12-18T02:58:17.175Z",
            "last_update": "2025-12-18T02:58:17.175Z",
            "remote_id": "text",
            "remote_url": "text",
            "source_id": "text",
            "source_url": "text",
            "uri": "text"
          },
          "id": "text",
          "license": "text",
          "machine_documentation_url": "text",
          "metadata_modified_at": "2025-12-18T02:58:17.175Z",
          "metrics": {},
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "permissions": {
            "delete": true,
            "edit": true
          },
          "private": true,
          "rate_limiting": "text",
          "rate_limiting_url": "text",
          "self_api_url": "text",
          "self_web_url": "text",
          "slug": "text",
          "tags": [
            "text"
          ],
          "technical_documentation_url": "text",
          "title": "My awesome API"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    POST /api/1/dataservices/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 787
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "open",
      "access_type_reason": "text",
      "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
      "acronym": "text",
      "archived_at": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "availability": "99.99",
      "availability_url": "text",
      "base_api_url": "text",
      "business_documentation_url": "text",
      "contact_points": [
        "text"
      ],
      "datasets": [
        "text"
      ],
      "deleted_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "format": "REST",
      "license": "text",
      "machine_documentation_url": "text",
      "organization": "text",
      "owner": "text",
      "private": true,
      "rate_limiting": "text",
      "rate_limiting_url": "text",
      "tags": [
        "text"
      ],
      "technical_documentation_url": "text",
      "title": "My awesome API"
    }
    POST /api/1/dataservices/{dataservice}/datasets/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 15
    
    [
      {
        "id": "text"
      }
    ]
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "open",
      "access_type_reason": "text",
      "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
      "acronym": "text",
      "archived_at": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "availability": "99.99",
      "availability_url": "text",
      "badges": [
        {
          "kind": "text"
        }
      ],
      "base_api_url": "text",
      "business_documentation_url": "text",
      "contact_points": [
        {
          "contact_form": "text",
          "email": "text",
          "id": "text",
          "name": "text",
          "organization": {
            "class": "text",
            "id": "text",
            "acronym": "text",
            "badges": [
              {
                "kind": "text"
              }
            ],
            "logo": "text",
            "logo_thumbnail": "text",
            "name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "owner": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "role": "text"
        }
      ],
      "created_at": "2025-12-18T02:58:17.175Z",
      "datasets": {},
      "deleted_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "featured": true,
      "format": "REST",
      "harvest": {
        "archived_at": "2025-12-18T02:58:17.175Z",
        "archived_reason": "text",
        "backend": "text",
        "created_at": "2025-12-18T02:58:17.175Z",
        "domain": "text",
        "issued_at": "2025-12-18T02:58:17.175Z",
        "last_update": "2025-12-18T02:58:17.175Z",
        "remote_id": "text",
        "remote_url": "text",
        "source_id": "text",
        "source_url": "text",
        "uri": "text"
      },
      "id": "text",
      "license": "text",
      "machine_documentation_url": "text",
      "metadata_modified_at": "2025-12-18T02:58:17.175Z",
      "metrics": {},
      "organization": {
        "class": "text",
        "id": "text",
        "acronym": "text",
        "badges": [
          {
            "kind": "text"
          }
        ],
        "logo": "text",
        "logo_thumbnail": "text",
        "name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "owner": {
        "class": "text",
        "id": "text",
        "avatar": "text",
        "avatar_thumbnail": "text",
        "first_name": "text",
        "last_name": "text",
        "page": "text",
        "slug": "text",
        "uri": "text"
      },
      "permissions": {
        "delete": true,
        "edit": true
      },
      "private": true,
      "rate_limiting": "text",
      "rate_limiting_url": "text",
      "self_api_url": "text",
      "self_web_url": "text",
      "slug": "text",
      "tags": [
        "text"
      ],
      "technical_documentation_url": "text",
      "title": "My awesome API"
    }
    GET /api/1/dataservices/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    {
      "data": [
        {
          "follower": {
            "class": "text",
            "id": "text",
            "avatar": "text",
            "avatar_thumbnail": "text",
            "first_name": "text",
            "last_name": "text",
            "page": "text",
            "slug": "text",
            "uri": "text"
          },
          "id": "text",
          "since": "2025-12-18T02:58:17.175Z"
        }
      ],
      "next_page": "text",
      "page": 1,
      "page_size": 1,
      "previous_page": "text",
      "total": 1
    }
    PATCH /api/1/dataservices/{dataservice}/ HTTP/1.1
    Host: www.data.gouv.fr
    Content-Type: application/json
    Accept: */*
    Content-Length: 787
    
    {
      "access_audiences": [
        {
          "condition": "yes",
          "role": "local_authority_and_administration"
        }
      ],
      "access_type": "open",
      "access_type_reason": "text",
      "access_type_reason_category": "confidentiality_of_proceedings_of_public_authorities",
      "acronym": "text",
      "archived_at": "2025-12-18T02:58:17.175Z",
      "authorization_request_url": "text",
      "availability": "99.99",
      "availability_url": "text",
      "base_api_url": "text",
      "business_documentation_url": "text",
      "contact_points": [
        "text"
      ],
      "datasets": [
        "text"
      ],
      "deleted_at": "2025-12-18T02:58:17.175Z",
      "description": "text",
      "extras": {},
      "format": "REST",
      "license": "text",
      "machine_documentation_url": "text",
      "organization": "text",
      "owner": "text",
      "private": true,
      "rate_limiting": "text",
      "rate_limiting_url": "text",
      "tags": [
        "text"
      ],
      "technical_documentation_url": "text",
      "title": "My awesome API"
    }
    POST /api/1/dataservices/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*
    
    DELETE /api/1/dataservices/{id}/followers/ HTTP/1.1
    Host: www.data.gouv.fr
    Accept: */*