{"openapi":"3.1.0","info":{"title":"Eazy API","version":"0.1.0","summary":"Données publiques françaises propres, croisées et prêtes à l'emploi, via une seule clé API.","description":"Toutes les réponses de données portent `meta.sources` : source et licence à citer dans votre produit.\n\nAuthentification : `Authorization: Bearer <clé>`. Clé de démonstration publique dans le quickstart (`/docs`), limitée à 100 appels par jour et par adresse IP.\n\nUn paramètre inconnu ou répété est refusé en 400 `invalid_parameter` : une faute de frappe ne renvoie jamais un résultat non filtré.\n\nUn nom de paramètre vide (`?=1`) est refusé en 400 avec le message ` : paramètre inconnu`.\n\nLes valeurs reçues ne sont jamais recopiées dans les messages d'erreur ; un nom de paramètre inconnu de plus de 40 caractères est tronqué à 40 puis `…`.\n\nToute URL inconnue renvoie 404 `not_found` ; sans clé, une URL non publique renvoie d'abord 401 `missing_api_key`.\n\nUne barre finale (`/v1/irve/bornes/`) est redirigée en 308 vers l'URL sans barre.\n\nCORS : `Access-Control-Allow-Origin: *`, méthodes GET, HEAD, OPTIONS (et POST sur `/v1/irve/conformite`).\n\nChaque erreur a la forme `{ \"error\": { \"code\", \"message\", \"doc\" } }` ; le détail de chaque code est sur `/docs/erreurs`."},"servers":[{"url":"https://data.eazy-media.fr","description":"Eazy API"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Plateforme","description":"Santé, compte et description de l'API."},{"name":"IRVE","description":"Bornes de recharge de véhicules électriques (base nationale IRVE, Licence Ouverte 2.0)."}],"paths":{"/v1/health":{"get":{"operationId":"getHealth","tags":["Plateforme"],"summary":"État du service","description":"Route publique : sans clé, sans décompte. Un paramètre de requête est ignoré.","security":[],"responses":{"200":{"description":"Le service répond.","headers":{"Cache-Control":{"description":"Réponse publique : cachable cinq minutes","schema":{"type":"string","const":"public, s-maxage=300, stale-while-revalidate=3600"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"},"examples":{"reel":{"summary":"Service disponible","value":{"status":"ok"}}}}}},"405":{"description":"Méthode non autorisée.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}}}}},"/v1/status":{"get":{"operationId":"getStatus","tags":["Plateforme"],"summary":"Fraîcheur des sources","description":"Route publique : sans clé, sans décompte. Date de dernière mise à jour de chaque source (`updated_at`, jour UTC du contenu), d'où elle vient (`date_origin`) et dernière vérification (`checked_at`). Un paramètre de requête est ignoré.","security":[],"responses":{"200":{"description":"État des sources.","headers":{"Cache-Control":{"description":"Réponse publique : cachable cinq minutes","schema":{"type":"string","const":"public, s-maxage=300, stale-while-revalidate=3600"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"},"examples":{"reel":{"summary":"Base IRVE et catalogue des jeux","value":{"data":[{"source":"irve","name":"Base nationale des points de recharge pour véhicules électriques (IRVE) — consolidation du Point d'Accès National","url":"https://www.data.gouv.fr/datasets/685965d0ab901919e14a4a1b/","licence":"Licence Ouverte 2.0","updated_at":"2026-11-09","last_modified":"2026-11-09T09:46:13.062Z","date_origin":"source","checked_at":"2026-11-12T10:00:00.000Z","records":299},{"source":"irve-jeux","name":"Catalogue data.gouv.fr — jeux de données au schéma IRVE statique (API data.gouv.fr)","url":"https://www.data.gouv.fr/api/1/datasets/?schema=etalab/schema-irve-statique","licence":"Licence Ouverte 2.0","updated_at":"2026-11-12","last_modified":null,"date_origin":"telechargement","checked_at":"2026-11-12T10:00:00.000Z","records":25}],"meta":{"count":2,"sources":[{"name":"Base nationale des points de recharge pour véhicules électriques (IRVE) — consolidation du Point d'Accès National","url":"https://www.data.gouv.fr/datasets/685965d0ab901919e14a4a1b/","licence":"Licence Ouverte 2.0","updated_at":"2026-11-09"},{"name":"Catalogue data.gouv.fr — jeux de données au schéma IRVE statique (API data.gouv.fr)","url":"https://www.data.gouv.fr/api/1/datasets/?schema=etalab/schema-irve-statique","licence":"Licence Ouverte 2.0","updated_at":"2026-11-12"}]}}}}}}},"405":{"description":"Méthode non autorisée.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}}}}},"/v1/openapi.json":{"get":{"operationId":"getOpenApi","tags":["Plateforme"],"summary":"Description OpenAPI 3.1 de l'API","description":"Ce document. Route publique : sans clé, sans décompte, cachable. Un paramètre de requête est ignoré.","security":[],"responses":{"200":{"description":"Document OpenAPI 3.1.","headers":{"Cache-Control":{"description":"Réponse publique : cachable cinq minutes","schema":{"type":"string","const":"public, s-maxage=300, stale-while-revalidate=3600"}}},"content":{"application/json":{"schema":{"type":"object","required":["openapi","info","paths"]},"examples":{"reel":{"summary":"Extrait du document (chemins tronqués)","value":{"openapi":"3.1.0","info":{"title":"Eazy API","version":"0.1.0"},"paths":{"/v1/health":{"get":{"operationId":"getHealth","summary":"État du service"}}}}}}}}},"405":{"description":"Méthode non autorisée.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}}}}},"/v1/me":{"get":{"operationId":"getMe","tags":["Plateforme"],"summary":"Plan et quota de la clé appelante","description":"Compte comme un appel. Un paramètre de requête est ignoré.","responses":{"200":{"description":"Succès.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"},"examples":{"reel":{"summary":"Plan et quota","value":{"data":{"plan":"business","quota":{"limite":1000000,"restant":999999,"remise_a_zero":"2026-12-01T00:00:00.000Z"}},"meta":{"sources":[]}}}}}}},"401":{"description":"Clé absente (`missing_api_key`) ou inconnue, révoquée, mal formée (`invalid_api_key`).","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"missing_api_key":{"summary":"Aucun en-tête Authorization","value":{"error":{"code":"missing_api_key","message":"Clé API manquante : envoyez Authorization: Bearer <clé>","doc":"https://data.eazy-media.fr/docs/erreurs#missing_api_key"}}},"invalid_api_key":{"summary":"Clé invalide","value":{"error":{"code":"invalid_api_key","message":"Clé API invalide ou révoquée","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_api_key"}}}}}}},"405":{"description":"Méthode non autorisée : `method_not_allowed`.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}},"429":{"description":"Quota épuisé : `quota_exceeded`. Il se remet à zéro à la date `X-RateLimit-Reset`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Retry-After":{"description":"Secondes avant la remise à zéro","schema":{"type":"string","pattern":"^\\d+$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"quota_exceeded":{"summary":"Quota atteint","value":{"error":{"code":"quota_exceeded","message":"Quota atteint : il se remet à zéro à la date X-RateLimit-Reset","doc":"https://data.eazy-media.fr/docs/erreurs#quota_exceeded"}}}}}}},"500":{"description":"Erreur interne : `internal`.","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"internal":{"summary":"Panne côté serveur","value":{"error":{"code":"internal","message":"Erreur interne du serveur","doc":"https://data.eazy-media.fr/docs/erreurs#internal"}}}}}}}}}},"/v1/irve/bornes":{"get":{"operationId":"getIrveBornes","tags":["IRVE"],"summary":"Bornes de recharge autour d'un point","description":"Points de charge dans un rayon, triés par distance croissante, pagination par curseur. Un paramètre inconnu ou répété est refusé en 400 `invalid_parameter` : une faute de frappe ne renvoie jamais un résultat non filtré.","parameters":[{"name":"lat","in":"query","required":true,"description":"Latitude du centre de recherche, en degrés décimaux.","schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lng","in":"query","required":true,"description":"Longitude du centre de recherche, en degrés décimaux.","schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"rayon_m","in":"query","required":false,"description":"Rayon de recherche en mètres.","schema":{"default":5000,"type":"integer","minimum":1,"maximum":50000}},{"name":"puissance_min_kw","in":"query","required":false,"description":"Puissance nominale minimale en kW (deux décimales au plus).","schema":{"type":"number","minimum":0,"maximum":1000}},{"name":"prise","in":"query","required":false,"description":"Type de prise : une seule valeur.","schema":{"type":"string","enum":["type2","combo_ccs","chademo","ef","autre"]}},{"name":"operateur","in":"query","required":false,"description":"Slug de l'opérateur, par exemple groupe-indigo.","schema":{"type":"string","maxLength":100,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"}},{"name":"limit","in":"query","required":false,"description":"Taille de la page.","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Curseur de pagination.","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,512}$","description":"Valeur de meta.next_cursor de la page précédente"}}],"responses":{"200":{"description":"Succès.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReponseBornes"},"examples":{"reel":{"summary":"Bornes autour de la Tour Eiffel (quickstart)","value":{"data":[{"id":"FRV75EPX07145","id_station":"FRV75PPX0714","nom_station":"Paris | Rue de Martignac 2","adresse":"2 Rue de Martignac, 75007 Paris","code_insee_commune":"75107","departement":"75","operateur":{"nom":"TotalEnergies Marketing France","slug":"totalenergies-marketing-france"},"amenageur":{"nom":"TotalEnergies Marketing France","siren":"531680445"},"puissance_kw":7,"prises":{"type2":true,"combo_ccs":false,"chademo":false,"ef":true,"autre":false},"position":{"lat":48.85936,"lng":2.31953},"distance_m":1839.8,"qualite_score":100,"licence_groupe":"lov2","jeu_id":"6818bce2d9af175f6e01a1b2"},{"id":"FRSAEE75108003121","id_station":"FRSAEP75108003A1","nom_station":"SAEMES - Parking Madeleine-Tronchet - Niveau 6","adresse":"21 Place de la Madeleine, 75008 PARIS","code_insee_commune":"75108","departement":"75","operateur":{"nom":"Bouygues Energies & Services","slug":"bouygues-energies-services"},"amenageur":{"nom":"Saemes","siren":null},"puissance_kw":7.36,"prises":{"type2":true,"combo_ccs":false,"chademo":false,"ef":true,"autre":false},"position":{"lat":48.87113,"lng":2.3242},"distance_m":2598.6,"qualite_score":90,"licence_groupe":"notspecified","jeu_id":"64c28634468d0d94dd98405e"},{"id":"FRPKGE75117002101","id_station":"FRPKGP75117002","nom_station":"Villiers","adresse":"14 Avenue de Villiers  75017 Paris FRANCE","code_insee_commune":null,"departement":"75","operateur":{"nom":"GROUPE INDIGO","slug":"groupe-indigo"},"amenageur":{"nom":"GROUPE INDIGO","siren":null},"puissance_kw":7.4,"prises":{"type2":true,"combo_ccs":false,"chademo":false,"ef":false,"autre":false},"position":{"lat":48.88195,"lng":2.31387},"distance_m":2979.6,"qualite_score":80,"licence_groupe":"odc-odbl","jeu_id":"689c957abf34e799e1bf365a"}],"meta":{"count":3,"next_cursor":"eyJ2IjoxLCJkIjoyOTc5LjYxMTcwMDk1LCJpIjoiRlJQS0dFNzUxMTcwMDIxMDEiLCJmIjoiMzlkMzFlNzg3MTA0ZDMxNiJ9","sources":[{"name":"Base nationale des points de recharge pour véhicules électriques (IRVE) — consolidation du Point d'Accès National","url":"https://www.data.gouv.fr/datasets/685965d0ab901919e14a4a1b/","licence":"Licence Ouverte 2.0","updated_at":"2026-11-09"},{"name":"Alizé — Bornes de recharge pour véhicules électriques - Alizé et ses réseaux partenaires","url":"https://www.data.gouv.fr/datasets/64c28634468d0d94dd98405e/","licence":"Licence non précisée par le producteur — republiée par le PAN sous Licence Ouverte 2.0","updated_at":"2026-10-15"},{"name":"Indigo Group — Indigo-Open-Data-IRVE","url":"https://www.data.gouv.fr/datasets/689c957abf34e799e1bf365a/","licence":"Open Database License (ODbL) 1.0 — producteur : Indigo-Open-Data-IRVE — via Base nationale IRVE (PAN), Licence Ouverte 2.0 — partage à l'identique applicable à la base dérivée","licence_url":"https://opendatacommons.org/licenses/odbl/1-0/","updated_at":"2026-11-09"}]}}}}}}},"400":{"description":"Requête refusée : `invalid_parameter`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"invalid_parameter":{"summary":"Valeur hors bornes","value":{"error":{"code":"invalid_parameter","message":"rayon_m doit être entre 1 et 50000","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}},"parametre_inconnu":{"summary":"Paramètre inconnu","value":{"error":{"code":"invalid_parameter","message":"puissance_min : paramètre inconnu","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}}}}}},"401":{"description":"Clé absente (`missing_api_key`) ou inconnue, révoquée, mal formée (`invalid_api_key`).","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"missing_api_key":{"summary":"Aucun en-tête Authorization","value":{"error":{"code":"missing_api_key","message":"Clé API manquante : envoyez Authorization: Bearer <clé>","doc":"https://data.eazy-media.fr/docs/erreurs#missing_api_key"}}},"invalid_api_key":{"summary":"Clé invalide","value":{"error":{"code":"invalid_api_key","message":"Clé API invalide ou révoquée","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_api_key"}}}}}}},"405":{"description":"Méthode non autorisée : `method_not_allowed`.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}},"429":{"description":"Quota épuisé : `quota_exceeded`. Il se remet à zéro à la date `X-RateLimit-Reset`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Retry-After":{"description":"Secondes avant la remise à zéro","schema":{"type":"string","pattern":"^\\d+$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"quota_exceeded":{"summary":"Quota atteint","value":{"error":{"code":"quota_exceeded","message":"Quota atteint : il se remet à zéro à la date X-RateLimit-Reset","doc":"https://data.eazy-media.fr/docs/erreurs#quota_exceeded"}}}}}}},"500":{"description":"Erreur interne : `internal`.","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"internal":{"summary":"Panne côté serveur","value":{"error":{"code":"internal","message":"Erreur interne du serveur","doc":"https://data.eazy-media.fr/docs/erreurs#internal"}}}}}}}}}},"/v1/irve/conformite":{"get":{"operationId":"getIrveConformite","tags":["IRVE"],"summary":"Conformité des points d'un aménageur (par SIREN)","description":"Statut de conformité au schéma IRVE 2.3.1 de chaque point du SIREN. Un paramètre inconnu ou répété est refusé en 400 `invalid_parameter` : une faute de frappe ne renvoie jamais un résultat non filtré.","parameters":[{"name":"siren","in":"query","required":true,"description":"SIREN de l'aménageur : neuf chiffres.","schema":{"type":"string","pattern":"^[0-9]{9}$"}},{"name":"limit","in":"query","required":false,"description":"Taille de la page.","schema":{"default":100,"type":"integer","minimum":1,"maximum":1000}},{"name":"cursor","in":"query","required":false,"description":"Curseur de pagination.","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,512}$","description":"Valeur de meta.next_cursor de la page précédente"}}],"responses":{"200":{"description":"Succès.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReponseConformiteGet"},"examples":{"reel":{"summary":"Points d'un SIREN","value":{"data":[{"id":"FRS35E352340011","statut":"conforme","id_station":"FRS35P35234001","nom_station":"QUEDILLAC - Place de l’Eglise","adresse":"Place de l’Eglise, 35290 QUEDILLAC","champs_manquants":[],"incoherences":[],"score":100,"preuve_url":"https://tabular-api.data.gouv.fr/api/resources/4ca78c71-4ea4-475d-bd3a-d4aef88f7bf8/data/?id_pdc_itinerance__exact=FRS35E352340011","motifs_rejet":null,"documentation_url":null},{"id":"FRS35E353240012","statut":"conforme","id_station":"FRS35P35324001","nom_station":"LA SELLE EN LUITRE - LE BOURG","adresse":"24 Le Bourg, 35324 LA SELLE EN LUITRE","champs_manquants":[],"incoherences":[],"score":100,"preuve_url":"https://tabular-api.data.gouv.fr/api/resources/4ca78c71-4ea4-475d-bd3a-d4aef88f7bf8/data/?id_pdc_itinerance__exact=FRS35E353240012","motifs_rejet":null,"documentation_url":null}],"meta":{"count":2,"total":2,"next_cursor":null,"sources":[{"name":"Base nationale des points de recharge pour véhicules électriques (IRVE) — consolidation du Point d'Accès National","url":"https://www.data.gouv.fr/datasets/685965d0ab901919e14a4a1b/","licence":"Licence Ouverte 2.0","updated_at":"2026-11-09"}],"champs_non_controles":[{"champ":"contact_operateur","raison":"non stocké par Eazy API (donnée personnelle, ADR-0004)"},{"champ":"restriction_gabarit","raison":"valeur vide et « Inconnu » non distinguées à l'ingestion"}],"avertissements":[{"code":"siren_amenageur_vide","points_sans_siren":105,"points_base":299,"part_pct":35.1,"message":"les points sans SIREN d'aménageur ne sont pas rattachables à votre SIREN : envoyez vos id_pdc_itinerance par POST /v1/irve/conformite ; les points rejetés à l'ingestion ne sont visibles que par POST"}]}}}}}}},"400":{"description":"Requête refusée : `invalid_parameter`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"invalid_parameter":{"summary":"Valeur hors bornes","value":{"error":{"code":"invalid_parameter","message":"rayon_m doit être entre 1 et 50000","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}},"parametre_inconnu":{"summary":"Paramètre inconnu","value":{"error":{"code":"invalid_parameter","message":"puissance_min : paramètre inconnu","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}}}}}},"401":{"description":"Clé absente (`missing_api_key`) ou inconnue, révoquée, mal formée (`invalid_api_key`).","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"missing_api_key":{"summary":"Aucun en-tête Authorization","value":{"error":{"code":"missing_api_key","message":"Clé API manquante : envoyez Authorization: Bearer <clé>","doc":"https://data.eazy-media.fr/docs/erreurs#missing_api_key"}}},"invalid_api_key":{"summary":"Clé invalide","value":{"error":{"code":"invalid_api_key","message":"Clé API invalide ou révoquée","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_api_key"}}}}}}},"405":{"description":"Méthode non autorisée : `method_not_allowed`.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS, POST"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}},"429":{"description":"Quota épuisé : `quota_exceeded`. Il se remet à zéro à la date `X-RateLimit-Reset`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Retry-After":{"description":"Secondes avant la remise à zéro","schema":{"type":"string","pattern":"^\\d+$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"quota_exceeded":{"summary":"Quota atteint","value":{"error":{"code":"quota_exceeded","message":"Quota atteint : il se remet à zéro à la date X-RateLimit-Reset","doc":"https://data.eazy-media.fr/docs/erreurs#quota_exceeded"}}}}}}},"500":{"description":"Erreur interne : `internal`.","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"internal":{"summary":"Panne côté serveur","value":{"error":{"code":"internal","message":"Erreur interne du serveur","doc":"https://data.eazy-media.fr/docs/erreurs#internal"}}}}}}}}},"post":{"operationId":"postIrveConformite","tags":["IRVE"],"summary":"Conformité d'une liste de points (par identifiants)","description":"Corps JSON `{\"ids\": [...]}` de 1 à 1000 identifiants, 100000 octets au plus, `Content-Type: application/json`. Un champ inconnu du corps ou un paramètre de requête est refusé en 400 `invalid_parameter`. Un paramètre inconnu ou répété est refusé en 400 `invalid_parameter` : une faute de frappe ne renvoie jamais un résultat non filtré.","x-taille-max-octets":100000,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string","minLength":1,"maxLength":50},"description":"id_pdc_itinerance des points à contrôler"}},"required":["ids"],"additionalProperties":false},"example":{"ids":["FRS35E352340011","FRZZZE000000001"]}}}},"responses":{"200":{"description":"Succès.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReponseConformitePost"},"examples":{"reel":{"summary":"Un point conforme et un identifiant non publié","value":{"data":[{"id":"FRS35E352340011","statut":"conforme","id_station":"FRS35P35234001","nom_station":"QUEDILLAC - Place de l’Eglise","adresse":"Place de l’Eglise, 35290 QUEDILLAC","champs_manquants":[],"incoherences":[],"score":100,"preuve_url":"https://tabular-api.data.gouv.fr/api/resources/4ca78c71-4ea4-475d-bd3a-d4aef88f7bf8/data/?id_pdc_itinerance__exact=FRS35E352340011","motifs_rejet":null,"documentation_url":null},{"id":"FRZZZE000000001","statut":"non_publie","id_station":null,"nom_station":null,"adresse":null,"champs_manquants":[],"incoherences":[],"score":null,"preuve_url":null,"motifs_rejet":null,"documentation_url":"https://doc.transport.data.gouv.fr/type-donnees/infrastructures-de-recharge-de-vehicules-electriques-irve"}],"meta":{"count":2,"doublons_ignores":0,"sources":[{"name":"Base nationale des points de recharge pour véhicules électriques (IRVE) — consolidation du Point d'Accès National","url":"https://www.data.gouv.fr/datasets/685965d0ab901919e14a4a1b/","licence":"Licence Ouverte 2.0","updated_at":"2026-11-09"}],"champs_non_controles":[{"champ":"contact_operateur","raison":"non stocké par Eazy API (donnée personnelle, ADR-0004)"},{"champ":"restriction_gabarit","raison":"valeur vide et « Inconnu » non distinguées à l'ingestion"}]}}}}}}},"400":{"description":"Requête refusée : `invalid_parameter`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"invalid_parameter":{"summary":"Valeur hors bornes","value":{"error":{"code":"invalid_parameter","message":"rayon_m doit être entre 1 et 50000","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}},"parametre_inconnu":{"summary":"Paramètre inconnu","value":{"error":{"code":"invalid_parameter","message":"puissance_min : paramètre inconnu","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}}}}}},"401":{"description":"Clé absente (`missing_api_key`) ou inconnue, révoquée, mal formée (`invalid_api_key`).","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"missing_api_key":{"summary":"Aucun en-tête Authorization","value":{"error":{"code":"missing_api_key","message":"Clé API manquante : envoyez Authorization: Bearer <clé>","doc":"https://data.eazy-media.fr/docs/erreurs#missing_api_key"}}},"invalid_api_key":{"summary":"Clé invalide","value":{"error":{"code":"invalid_api_key","message":"Clé API invalide ou révoquée","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_api_key"}}}}}}},"405":{"description":"Méthode non autorisée : `method_not_allowed`.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS, POST"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}},"429":{"description":"Quota épuisé : `quota_exceeded`. Il se remet à zéro à la date `X-RateLimit-Reset`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Retry-After":{"description":"Secondes avant la remise à zéro","schema":{"type":"string","pattern":"^\\d+$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"quota_exceeded":{"summary":"Quota atteint","value":{"error":{"code":"quota_exceeded","message":"Quota atteint : il se remet à zéro à la date X-RateLimit-Reset","doc":"https://data.eazy-media.fr/docs/erreurs#quota_exceeded"}}}}}}},"500":{"description":"Erreur interne : `internal`.","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"internal":{"summary":"Panne côté serveur","value":{"error":{"code":"internal","message":"Erreur interne du serveur","doc":"https://data.eazy-media.fr/docs/erreurs#internal"}}}}}}}}}},"/v1/irve/jeux":{"get":{"operationId":"getIrveJeux","tags":["IRVE"],"summary":"Jeux de données IRVE publiés sur data.gouv.fr","description":"Jeux au schéma IRVE statique, avec `consolide` (au moins un point dans la base nationale). Un paramètre inconnu ou répété est refusé en 400 `invalid_parameter` : une faute de frappe ne renvoie jamais un résultat non filtré.","parameters":[{"name":"consolide","in":"query","required":false,"description":"Filtre sur les jeux qui ont au moins un point dans la base nationale.","schema":{"type":"string","enum":["true","false"]}},{"name":"organisation","in":"query","required":false,"description":"Slug data.gouv de l'organisation.","schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,99}$"}},{"name":"limit","in":"query","required":false,"description":"Taille de la page.","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Curseur de pagination.","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,512}$","description":"Valeur de meta.next_cursor de la page précédente"}}],"responses":{"200":{"description":"Succès.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReponseJeux"},"examples":{"reel":{"summary":"Deux jeux consolidés","value":{"data":[{"dataset_id":"53cdf714a3a7292987895b28","titre":"Caractéristiques des points de charge pour véhicules électriques Electric 55 Charging (E55C) ouverts au public","organisation":"Electric 55 Charging","organisation_slug":"plus-de-bornes","url":"https://www.data.gouv.fr/datasets/53cdf714a3a7292987895b28/","derniere_modification":"2026-11-06T05:40:05.358Z","nb_ressources":1,"consolide":true},{"dataset_id":"5821b44b88ee385387c65bb3","titre":"Réseau de bornes de recharge pour véhicules électriques 31 (IRVE)","organisation":"Syndicat Départemental d'Energie de la Haute-Garonne","organisation_slug":"syndicat-departemental-denergie-de-la-haute-garonne","url":"https://www.data.gouv.fr/datasets/5821b44b88ee385387c65bb3/","derniere_modification":"2025-09-04T08:43:36.704Z","nb_ressources":5,"consolide":true}],"meta":{"count":2,"total":10,"next_cursor":"eyJ2IjoxLCJkIjowLCJpIjoiNTgyMWI0NGI4OGVlMzg1Mzg3YzY1YmIzIiwiZiI6ImNiNmViODFmZTk3MDhiYWQifQ","sources":[{"name":"Catalogue data.gouv.fr — jeux de données au schéma IRVE statique (API data.gouv.fr)","url":"https://www.data.gouv.fr/api/1/datasets/?schema=etalab/schema-irve-statique","licence":"Licence Ouverte 2.0","licence_url":"https://www.etalab.gouv.fr/licence-ouverte-open-licence/","updated_at":"2026-11-12"},{"name":"Base nationale des points de recharge pour véhicules électriques (IRVE) — consolidation du Point d'Accès National","url":"https://www.data.gouv.fr/datasets/685965d0ab901919e14a4a1b/","licence":"Licence Ouverte 2.0","updated_at":"2026-11-09"}]}}}}}}},"400":{"description":"Requête refusée : `invalid_parameter`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"invalid_parameter":{"summary":"Valeur hors bornes","value":{"error":{"code":"invalid_parameter","message":"rayon_m doit être entre 1 et 50000","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}},"parametre_inconnu":{"summary":"Paramètre inconnu","value":{"error":{"code":"invalid_parameter","message":"puissance_min : paramètre inconnu","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_parameter"}}}}}}},"401":{"description":"Clé absente (`missing_api_key`) ou inconnue, révoquée, mal formée (`invalid_api_key`).","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"missing_api_key":{"summary":"Aucun en-tête Authorization","value":{"error":{"code":"missing_api_key","message":"Clé API manquante : envoyez Authorization: Bearer <clé>","doc":"https://data.eazy-media.fr/docs/erreurs#missing_api_key"}}},"invalid_api_key":{"summary":"Clé invalide","value":{"error":{"code":"invalid_api_key","message":"Clé API invalide ou révoquée","doc":"https://data.eazy-media.fr/docs/erreurs#invalid_api_key"}}}}}}},"405":{"description":"Méthode non autorisée : `method_not_allowed`.","headers":{"Allow":{"description":"Méthodes acceptées","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"method_not_allowed":{"summary":"POST sur une route en lecture seule","value":{"error":{"code":"method_not_allowed","message":"Méthode POST non autorisée","doc":"https://data.eazy-media.fr/docs/erreurs#method_not_allowed"}}}}}}},"429":{"description":"Quota épuisé : `quota_exceeded`. Il se remet à zéro à la date `X-RateLimit-Reset`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Retry-After":{"description":"Secondes avant la remise à zéro","schema":{"type":"string","pattern":"^\\d+$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"quota_exceeded":{"summary":"Quota atteint","value":{"error":{"code":"quota_exceeded","message":"Quota atteint : il se remet à zéro à la date X-RateLimit-Reset","doc":"https://data.eazy-media.fr/docs/erreurs#quota_exceeded"}}}}}}},"500":{"description":"Erreur interne : `internal`.","headers":{"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"internal":{"summary":"Panne côté serveur","value":{"error":{"code":"internal","message":"Erreur interne du serveur","doc":"https://data.eazy-media.fr/docs/erreurs#internal"}}}}}}},"503":{"description":"Jeux pas encore chargés : `data_not_ready`.","headers":{"X-RateLimit-Limit":{"description":"Quota du plan sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Remaining":{"description":"Appels restants sur la période","schema":{"type":"string","pattern":"^\\d+$"}},"X-RateLimit-Reset":{"description":"Remise à zéro du quota, en secondes Unix (UTC)","schema":{"type":"string","pattern":"^\\d{10}$"}},"Cache-Control":{"description":"Réponse authentifiée : jamais mise en cache","schema":{"type":"string","const":"private, no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Erreur"},"examples":{"data_not_ready":{"summary":"Aucun lot de jeux chargé","value":{"error":{"code":"data_not_ready","message":"Les jeux publiés ne sont pas encore chargés : réessayez plus tard","doc":"https://data.eazy-media.fr/docs/erreurs#data_not_ready"}}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API : `Authorization: Bearer <clé>`."}},"schemas":{"Erreur":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["missing_api_key","invalid_api_key","quota_exceeded","invalid_parameter","not_found","method_not_allowed","data_not_ready","internal"]},"message":{"type":"string","description":"Message en français ; ne reprend jamais la valeur reçue"},"doc":{"type":"string","description":"Lien vers /docs/erreurs#<code>"}},"required":["code","message","doc"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"Source":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Nom de la source"},"url":{"type":"string","minLength":1,"description":"Adresse de la source"},"licence":{"type":"string","minLength":1,"description":"Licence de réutilisation, à reprendre dans votre produit"},"updated_at":{"type":"string","minLength":1,"description":"Date de la dernière mise à jour de la source (AAAA-MM-JJ)"},"licence_url":{"description":"Texte de la licence, quand il est connu","type":"string"}},"required":["name","url","licence","updated_at"],"additionalProperties":false},"Health":{"type":"object","properties":{"status":{"type":"string","const":"ok"}},"required":["status"],"additionalProperties":false},"Status":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["irve","irve-jeux"]},"name":{"type":"string","minLength":1},"url":{"type":"string","minLength":1},"licence":{"type":"string","minLength":1},"updated_at":{"description":"Jour (AAAA-MM-JJ, UTC) du contenu de la source ; null tant qu'aucune ingestion n'a réussi","type":["string","null"]},"last_modified":{"description":"Date de dernière modification annoncée par data.gouv (ISO 8601), null si inconnue","type":["string","null"]},"date_origin":{"anyOf":[{"type":"string","enum":["source","telechargement"]},{"type":"null"}],"description":"D'où vient updated_at : la source, ou à défaut la date de téléchargement"},"checked_at":{"description":"Dernière vérification de la source (ISO 8601), même quand rien n'a changé","type":["string","null"]},"records":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Nombre d'enregistrements servis"}},"required":["source","name","url","licence","updated_at","last_modified","date_origin","checked_at","records"],"additionalProperties":false}},"meta":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"licence":{"type":"string"},"updated_at":{"type":["string","null"]}},"required":["name","url","licence","updated_at"],"additionalProperties":false}}},"required":["count","sources"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"Me":{"type":"object","properties":{"data":{"type":"object","properties":{"plan":{"type":"string"},"quota":{"type":"object","properties":{"limite":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"restant":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"remise_a_zero":{"type":"string","description":"Date ISO 8601 (UTC) de la remise à zéro du quota"}},"required":["limite","restant","remise_a_zero"],"additionalProperties":false}},"required":["plan","quota"],"additionalProperties":false},"meta":{"type":"object","properties":{"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Nom de la source"},"url":{"type":"string","minLength":1,"description":"Adresse de la source"},"licence":{"type":"string","minLength":1,"description":"Licence de réutilisation, à reprendre dans votre produit"},"updated_at":{"type":"string","minLength":1,"description":"Date de la dernière mise à jour de la source (AAAA-MM-JJ)"},"licence_url":{"description":"Texte de la licence, quand il est connu","type":"string"}},"required":["name","url","licence","updated_at"],"additionalProperties":false}}},"required":["sources"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ReponseBornes":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"id_pdc_itinerance du point de charge"},"id_station":{"type":["string","null"]},"nom_station":{"type":["string","null"]},"adresse":{"type":["string","null"]},"code_insee_commune":{"type":["string","null"]},"departement":{"type":["string","null"]},"operateur":{"type":"object","properties":{"nom":{"type":["string","null"]},"slug":{"type":["string","null"]}},"required":["nom","slug"],"additionalProperties":false},"amenageur":{"type":"object","properties":{"nom":{"type":["string","null"]},"siren":{"type":["string","null"]}},"required":["nom","siren"],"additionalProperties":false},"puissance_kw":{"type":["number","null"]},"prises":{"type":"object","properties":{"type2":{"type":"boolean"},"combo_ccs":{"type":"boolean"},"chademo":{"type":"boolean"},"ef":{"type":"boolean"},"autre":{"type":"boolean"}},"required":["type2","combo_ccs","chademo","ef","autre"],"additionalProperties":false},"position":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"distance_m":{"type":"number","description":"Distance au point demandé, en mètres"},"qualite_score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"licence_groupe":{"type":"string","description":"Groupe de licence du producteur (lov2, odc-odbl, notspecified…)"},"jeu_id":{"description":"Identifiant du jeu data.gouv du producteur","type":["string","null"]}},"required":["id","id_station","nom_station","adresse","code_insee_commune","departement","operateur","amenageur","puissance_kw","prises","position","distance_m","qualite_score","licence_groupe","jeu_id"],"additionalProperties":false}},"meta":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"next_cursor":{"description":"Curseur de la page suivante, null à la dernière page","type":["string","null"]},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Nom de la source"},"url":{"type":"string","minLength":1,"description":"Adresse de la source"},"licence":{"type":"string","minLength":1,"description":"Licence de réutilisation, à reprendre dans votre produit"},"updated_at":{"type":"string","minLength":1,"description":"Date de la dernière mise à jour de la source (AAAA-MM-JJ)"},"licence_url":{"description":"Texte de la licence, quand il est connu","type":"string"}},"required":["name","url","licence","updated_at"],"additionalProperties":false},"description":"Sources et licences des données de la réponse (obligatoires à citer)"}},"required":["count","next_cursor","sources"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ReponseConformiteGet":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"statut":{"type":"string","enum":["conforme","incomplet","non_publie"]},"id_station":{"type":["string","null"]},"nom_station":{"type":["string","null"]},"adresse":{"type":["string","null"]},"champs_manquants":{"type":"array","items":{"type":"string"},"description":"Champs obligatoires du schéma IRVE 2.3.1 absents"},"incoherences":{"type":"array","items":{"type":"string"}},"score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"preuve_url":{"type":["string","null"]},"motifs_rejet":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"documentation_url":{"type":["string","null"]}},"required":["id","statut","id_station","nom_station","adresse","champs_manquants","incoherences","score","preuve_url","motifs_rejet","documentation_url"],"additionalProperties":false}},"meta":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"next_cursor":{"description":"Curseur de la page suivante, null à la dernière page","type":["string","null"]},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Nom de la source"},"url":{"type":"string","minLength":1,"description":"Adresse de la source"},"licence":{"type":"string","minLength":1,"description":"Licence de réutilisation, à reprendre dans votre produit"},"updated_at":{"type":"string","minLength":1,"description":"Date de la dernière mise à jour de la source (AAAA-MM-JJ)"},"licence_url":{"description":"Texte de la licence, quand il est connu","type":"string"}},"required":["name","url","licence","updated_at"],"additionalProperties":false},"description":"Sources et licences des données de la réponse (obligatoires à citer)"},"champs_non_controles":{"type":"array","items":{"type":"object","properties":{"champ":{"type":"string"},"raison":{"type":"string"}},"required":["champ","raison"],"additionalProperties":false}},"avertissements":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"points_sans_siren":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points_base":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"part_pct":{"type":["number","null"]},"message":{"type":"string"}},"required":["code","points_sans_siren","points_base","part_pct","message"],"additionalProperties":false}}},"required":["count","total","next_cursor","sources","champs_non_controles","avertissements"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ReponseConformitePost":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"statut":{"type":"string","enum":["conforme","incomplet","non_publie"]},"id_station":{"type":["string","null"]},"nom_station":{"type":["string","null"]},"adresse":{"type":["string","null"]},"champs_manquants":{"type":"array","items":{"type":"string"},"description":"Champs obligatoires du schéma IRVE 2.3.1 absents"},"incoherences":{"type":"array","items":{"type":"string"}},"score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"preuve_url":{"type":["string","null"]},"motifs_rejet":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"documentation_url":{"type":["string","null"]}},"required":["id","statut","id_station","nom_station","adresse","champs_manquants","incoherences","score","preuve_url","motifs_rejet","documentation_url"],"additionalProperties":false}},"meta":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doublons_ignores":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Nom de la source"},"url":{"type":"string","minLength":1,"description":"Adresse de la source"},"licence":{"type":"string","minLength":1,"description":"Licence de réutilisation, à reprendre dans votre produit"},"updated_at":{"type":"string","minLength":1,"description":"Date de la dernière mise à jour de la source (AAAA-MM-JJ)"},"licence_url":{"description":"Texte de la licence, quand il est connu","type":"string"}},"required":["name","url","licence","updated_at"],"additionalProperties":false},"description":"Sources et licences des données de la réponse (obligatoires à citer)"},"champs_non_controles":{"type":"array","items":{"type":"object","properties":{"champ":{"type":"string"},"raison":{"type":"string"}},"required":["champ","raison"],"additionalProperties":false}}},"required":["count","doublons_ignores","sources","champs_non_controles"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false},"ReponseJeux":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"dataset_id":{"type":"string"},"titre":{"type":["string","null"]},"organisation":{"type":["string","null"]},"organisation_slug":{"type":["string","null"]},"url":{"type":"string"},"derniere_modification":{"type":"string","description":"Date ISO 8601 (UTC)"},"nb_ressources":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"consolide":{"type":"boolean","description":"Au moins un point du jeu est dans la base nationale"}},"required":["dataset_id","titre","organisation","organisation_slug","url","derniere_modification","nb_ressources","consolide"],"additionalProperties":false}},"meta":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"next_cursor":{"description":"Curseur de la page suivante, null à la dernière page","type":["string","null"]},"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Nom de la source"},"url":{"type":"string","minLength":1,"description":"Adresse de la source"},"licence":{"type":"string","minLength":1,"description":"Licence de réutilisation, à reprendre dans votre produit"},"updated_at":{"type":"string","minLength":1,"description":"Date de la dernière mise à jour de la source (AAAA-MM-JJ)"},"licence_url":{"description":"Texte de la licence, quand il est connu","type":"string"}},"required":["name","url","licence","updated_at"],"additionalProperties":false},"description":"Sources et licences des données de la réponse (obligatoires à citer)"}},"required":["count","total","next_cursor","sources"],"additionalProperties":false}},"required":["data","meta"],"additionalProperties":false}}}}