# Table of Contents - [API de géocodage](#api-de-g-ocodage) - [Unknown](#unknown) --- # API de géocodage API Géoplateforme - Géocodage 1.0.0 OAS 3.1 ============================================= [openapi.yaml](https://data.geopf.fr/geocodage/openapi.yaml) Ce service permet d'obtenir des coordonnées à partir d'une adresse ou d'un nom de lieu / point d'intérêt ou d'une parcelle (ou l'inverse...). [Terms of service](https://cartes.gouv.fr/cgu) [Geoplateforme - Website](http://cartes.gouv.fr/) [Send email to Geoplateforme](mailto:geoplateforme@ign.fr) [Licence ouverte 2.0](https://www.etalab.gouv.fr/licence-ouverte-open-licence) Servers https://data.geopf.fr/geocodage Authorize ### getCapabilities Découverte du service GET /getCapabilities Découvrir le service ### search Géocodage direct (recherche) GET /search Recherche par géocodage direct POST /search/csv Géocodage direct en masse d’un fichier CSV ### reverse Géocodage inverse GET /reverse Recherche par géocodage inverse POST /reverse/csv Géocodage inversé en masse d’un fichier CSV ### batch Géocodage par lot synchrone POST /search/csv Géocodage direct en masse d’un fichier CSV POST /reverse/csv Géocodage inversé en masse d’un fichier CSV ### batch-async Géocodage par lot asynchrone POST /async/projects Créer un nouveau projet GET /async/projects/{projectId} Récupérer les informations DELETE /async/projects/{projectId} Supprimer un projet PUT /async/projects/{projectId}/pipeline Définir les paramètres du traitement PUT /async/projects/{projectId}/input-file Uploader un fichier d'entrée pour un projet POST /async/projects/{projectId}/start Démander le démarrage du géocodage POST /async/projects/{projectId}/abort Annuler un géocodage en attente ou en cours POST /async/projects/{projectId}/reset Ré-initialise un géocodage terminé ou en erreur GET /async/projects/{projectId}/input-file/{token} Télécharger le fichier source du projet GET /async/projects/{projectId}/output-file/{token} Télécharger le fichier résultat du projet #### Schemas Getcapabilities Expand all**object** GeocodeResponse Expand all**object | (any | any | any)** GeocodeReverseResponse Expand all**object | (any | any | any)** Parcel Expand all**object** ParcelProperties Expand all**object** ParcelReverse Expand all**object** ParcelReverseProperties Expand all**object** Address Expand all**object** AddressProperties Expand all**object** AddressReverse Expand all**object** AddressReverseProperties Expand all**object** Poi Expand all**object** PoiProperties Expand all**object** PoiReverse Expand all**object** PoiReverseProperties Expand all**object** PoiType Expand all**array** PostalCode Expand all**string**5 characters InseeCode Expand all**string**\[2, 5\] characters Geometry Expand all**object** GeometryPoint Expand all**object** GeometryCircle Expand all**object** GeometryLineString Expand all**object** GeometryPolygon Expand all**object** GeometryMultiPolygon Expand all**object** GeometryType Expand all**string** Index Expand all**string** HouseNumberInfos Expand all**object** AddressPositionKing Expand all**array** Project Expand all**object** GeocodeProcessing Expand all**object** Pipeline Expand all**object** ProjectParams Expand all**object** GeocodeCsvResponse Expand all**string**binary --- # Unknown openapi: 3.1.1 info: title: API Géoplateforme - Géocodage description: Ce service permet d'obtenir des coordonnées à partir d'une adresse ou d'un nom de lieu / point d'intérêt ou d'une parcelle (ou l'inverse...). contact: name: "Geoplateforme" email: "geoplateforme@ign.fr" url: "http://cartes.gouv.fr" version: 1.0.0 termsOfService: "https://cartes.gouv.fr/cgu" license: name: Licence ouverte 2.0 url: https://www.etalab.gouv.fr/licence-ouverte-open-licence servers: - url: https://data.geopf.fr/geocodage tags: - name: getCapabilities description: Découverte du service - name: search description: Géocodage direct (recherche) - name: reverse description: Géocodage inverse - name: batch description: Géocodage par lot synchrone - name: batch-async description: Géocodage par lot asynchrone paths: /getCapabilities: get: tags: - getCapabilities summary: Découvrir le service description: "Découvrir le service: les opérations possibles, les ressources disponibles et les options proposées." operationId: getCapabilities responses: 200: description: successful operation content: application/json: schema: $ref: "#/components/schemas/Getcapabilities" 404: description: Not found /search: get: tags: - search summary: Recherche par géocodage direct operationId: search parameters: - name: q in: query description: | chaîne décrivant la localisation à rechercher Exemples de requêtes: - /search?q=73 Avenue de Paris Saint-Mandé - /search?q=cimetière Vincennes - /search?q=75056104AE0003 Note: L'absence de valeur est autorisée sur le type parcel pour réaliser une recherche structurée. Par exemple: /search?q=&index=parcel&departmentcode=75&municipalitycode=056§ion=AV required: false schema: type: string - name: autocomplete in: query description: | indique si la recherche doit être effectuée en mode auto-complétion (comportement par défaut). schema: type: string enum: \["1", "0"\] default: "1" - name: index in: query description: | index(es) de recherche : - **address** pour la recherche par adresse - **parcel** pour la recherche par parcelle cadastrale - **poi** pour la recherche par lieu et unité administrative Il est possible de spécifier plusieurs indexes séparés par une virgule. Exemples: - /search?index=parcel - /search?index=poi,address required: false schema: $ref: "#/components/schemas/Index" - name: limit in: query description: | Nombre maximum de résultats retournés. La valeur ne peut pas dépasser 50. Dans le cas où returntruegeometry est activé, la valeur est automatiquement ramenée à 20. schema: type: integer default: 10 - name: lat in: query description: "latitude d'un localisant pour favoriser les candidats les plus proches." schema: type: number - name: lon in: query description: "longitude d'un localisant pour favoriser les candidats les plus proches." schema: type: number - name: returntruegeometry in: query description: "indique si la vraie géométrie doit être retournée" schema: type: boolean default: false - name: postcode in: query description: "Filtre pour les index address et poi. Il permet de filtrer les résultats par code postal." schema: $ref: "#/components/schemas/PostalCode" - name: citycode in: query description: "Filtre pour les index address et poi. Il permet de filtrer les résultats par code INSEE." schema: $ref: "#/components/schemas/InseeCode" - name: type in: query description: "Filtre pour l'index address. Il permet de filtrer par type de données adresse : numéro de maison, rue, commune, ..." schema: type: string enum: \["housenumber", "street", "locality", "municipality"\] - name: city in: query description: "Filtre pour les index address et poi. Il permet de filtrer par nom de commune." schema: type: string - name: category in: query description: | Filtre pour l'index poi. Il permet de filtrer par catégorie de poi. Les valeurs possibles sont listées dans le getCapabilities du service de géocodage. schema: type: string - name: departmentcode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code de département." schema: type: string - name: municipalitycode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code de commune." schema: type: string - name: oldmunicipalitycode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code d'ancienne commune." schema: type: string - name: districtcode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code d'arrondissement." schema: type: string - name: section in: query description: "Filtre pour l'index parcel. Il permet de filtrer par section." schema: type: string - name: number in: query description: "Filtre pour l'index parcel. Il permet de filtrer par numéro." schema: type: string - name: sheet in: query description: "Filtre pour l'index parcel. Il permet de filtrer par feuille." schema: type: string responses: "200": description: successful operation content: application/json: schema: type: object properties: type: type: string example: FeatureCollection features: type: array items: $ref: "#/components/schemas/GeocodeResponse" "400": description: "Parse query failed" content: application/json: {} /reverse: get: tags: - reverse summary: Recherche par géocodage inverse operationId: reverse parameters: - name: searchgeom in: query required: false description: | Géométrie de recherche. La géométrie est réalisé par intersection géométrique. Si ce paramètre est utilisé seul, c''est que l''on souhaite une recherche sans ordonnancement des résultats (tous les objets intersectant la géométrie de recherche ont un score de 1). Si on veut ordonner les résultats, on peut alors utiliser les paramètres lon et lat pour préciser un point d''ordonnancement. Ce paramètre n''est pas obligatoire pour des raisons de rétro-compatibilité. Si searchgeom n''est pas utilisé alors les paramètres lon et lat doivent l''être et on parle de point de recherche. Lorsque la recherche est réalisée par intersection géométrique. Les types géométrique autorisés sont : - Point - LineString - Polygon - Circle Exemple de géométrie de type Circle : {     "type": "Circle",     "coordinates": \[2.294469, 48.858244\],     "radius": 100 } Pour l''index **address**, seules les géométries de type ''Polygon'' et ''Circle'' sont autorisées. Le plus grand côté du rectangle d’emprise de la géométrie ne doit pas excéder 1000 mètres. schema: type: string - name: lon in: query description: | Si searchgeom est utilisé, il s'agit de la longitude du point d'ordonnancement. C'est le point à partir duquel est calculée la distance, puis le score permettant l'ordonnancement des résultats. Dans un soucis de rétro-compatibilité, si searchgeom n'est pas utilisé, il s'agit de la longitude du point de recherche. À partir de ce point, un cercle est créé pour effectuer la recherche. En plus, ce sera aussi la longitude du point d'ordonnancement. required: false schema: type: number - name: lat in: query description: | Si searchgeom est utilisé, il s'agit de la latitude du point d'ordonnancement. C'est le point à partir duquel est calculée la distance, puis le score permettant l'ordonnancement des résultats. Dans un soucis de rétro-compatibilité, si searchgeom n'est pas utilisé, il s'agit de la latitude du point de recherche. À partir de ce point, un cercle est créé pour effectuer la recherche. En plus, ce sera aussi la latitude du point d'ordonnancement. required: false schema: type: number - name: index in: query description: | index de recherche : - **address** pour la recherche par adresse - **parcel** pour la recherche par parcelle cadastrale - **poi** pour la recherche par lieu et unité administrative Il est possible de spécifier plusieurs indexes séparés par une virgule. Exemples: - /search?index=parcel - /search?index=poi,address required: false schema: $ref: "#/components/schemas/Index" - name: limit in: query description: | Nombre maximum de résultats retournés. La valeur ne peut pas dépasser 50. Dans le cas où returntruegeometry est activé, la valeur est automatiquement ramenée à 20. schema: type: integer default: 10 - name: returntruegeometry in: query description: "indique si la vraie géométrie doit être retournée" schema: type: boolean default: False - name: postcode in: query description: "Filtre pour les index address et poi. Il permet de filtrer les résultats par code postal." schema: $ref: "#/components/schemas/PostalCode" - name: citycode in: query description: "Filtre pour les index address et poi. Il permet de filtrer les résultats par code INSEE." schema: $ref: "#/components/schemas/InseeCode" - name: type in: query description: "Filtre pour l'index address. Il permet de filtrer par type de données adresse : numéro de maison, rue, commune, ..." schema: type: string enum: \["housenumber", "street", "locality", "municipality"\] - name: city in: query description: "Filtre pour les index address et parcel. Il permet de filtrer par nom de commune." schema: type: string - name: category in: query description: | Filtre pour l'index poi. Il permet de filtrer par catégorie de poi. Les valeurs possibles sont listées dans le getCapabilities du service de géocodage. schema: type: string - name: departmentcode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code de département." schema: type: string - name: municipalitycode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code de commune." schema: type: string - name: oldmunicipalitycode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code d'ancienne commune." schema: type: string - name: districtcode in: query description: "Filtre pour l'index parcel. Il permet de filtrer par code d'arrondissement." schema: type: string - name: section in: query description: "Filtre pour l'index parcel. Il permet de filtrer par section." schema: type: string - name: number in: query description: "Filtre pour l'index parcel. Il permet de filtrer par numéro." schema: type: string - name: sheet in: query description: "Filtre pour l'index parcel. Il permet de filtrer par feuille." schema: type: string responses: "200": description: successful operation content: application/json: schema: type: object properties: type: type: string example: FeatureCollection features: type: array items: $ref: "#/components/schemas/GeocodeReverseResponse" "400": description: "Parse query failed" content: application/json: {} /search/csv: post: tags: - search - batch summary: Géocodage direct en masse d’un fichier CSV description: | Géocodage direct en masse d’un fichier CSV. Les paramètres de la requête permettent de spécifier les colonnes à utiliser pour le géocodage, les index à utiliser, les filtres à appliquer et les colonnes à conserver dans le fichier CSV de sortie. Le fichier soumis doit faire une taille maximale de 50 Mo. operationId: searchCsv requestBody: required: true content: multipart/form-data: schema: type: object required: - data properties: data: type: string format: binary description: "Fichier CSV contenant les lignes à géocoder" columns: type: array items: type: string description: | Liste des colonnes du fichier CSV à utiliser pour le géocodage. Celles-ci seront concaténées pour former le critère de recherche texte. Si le paramètre n'est pas fourni toutes les colonnes seront concaténées, ce qui est rarement souhaitable. indexes: type: array items: type: string description: "Liste des index à utiliser pour le géocodage (parmi address, poi, parcel)" type: type: string description: "Colonne contenant le type d’objet accepté pour le géocodage de la ligne (address)" citycode: type: string description: "Colonne contenant le code INSEE de la commune à utiliser comme filtre (address, poi)" postcode: type: string description: "Colonne contenant le code postal à utiliser comme filtre (address, poi)" category: type: string description: "Colonne contenant la catégorie de POI à utiliser comme filtre (poi)" lon: type: string description: "Colonne contenant la longitude du point de recherche" lat: type: string description: "Colonne contenant la latitude du point de recherche" departmentcode: type: string description: "Colonne contenant le code département à utiliser comme filtre (parcel)" municipalitycode: type: string description: "Colonne contenant le code commune à utiliser comme filtre (parcel)" oldmunicipalitycode: type: string description: "Colonne contenant l'ancien code commune à utiliser comme filtre (parcel)" districtcode: type: string description: "Colonne contenant le code d'arrondissement à utiliser comme filtre (parcel)" section: type: string description: "Colonne contenant le numéro de section à utiliser comme filtre (parcel)" sheet: type: string description: "Colonne contenant le numéro de feuille à utiliser comme filtre (parcel)" number: type: string description: "Colonne contenant le numéro de parcelle à utiliser comme filtre (parcel)" result\_columns: type: array items: type: string description: | Liste des colonnes de type résultat à conserver dans le fichier CSV de sortie. Par défaut toutes les colonnes disponibles sont retournées. encoding: columns: style: form explode: true result\_columns: style: form explode: true indexes: style: form explode: true responses: "200": description: Géocodage réussi content: text/csv: schema: $ref: "#/components/schemas/GeocodeCsvResponse" "400": description: "Échec du géocodage suite à une erreur dans la requête ou dans le fichier CSV" content: application/json: schema: type: object properties: code: type: number example: 400 description: Code d'erreur (HTTP) message: type: string description: "Message d'erreur" example: Impossible de lire le fichier CSV /reverse/csv: post: tags: - reverse - batch summary: Géocodage inversé en masse d’un fichier CSV description: | Géocodage inversé en masse d’un fichier CSV. Les paramètres de la requête permettent de spécifier les colonnes à utiliser pour le géocodage, les index à utiliser, les filtres à appliquer et les colonnes à conserver dans le fichier CSV de sortie. Le fichier soumis doit faire une taille maximale de 50 Mo. operationId: reverseCsv requestBody: required: true content: multipart/form-data: schema: type: object required: - data properties: data: type: string format: binary description: "Fichier CSV contenant les données à géocoder" indexes: type: array items: type: string description: "Liste des index à utiliser pour le géocodage (parmi address, poi, parcel)" type: type: string description: "Colonne contenant le type d’objet accepté pour le géocodage de la ligne (address)" citycode: type: string description: "Colonne contenant le code INSEE de la commune à utiliser comme filtre (address, poi)" postcode: type: string description: "Colonne contenant le code postal à utiliser comme filtre (address, poi)" category: type: string description: "Colonne contenant la catégorie de POI à utiliser comme filtre (poi)" lon: type: string description: "Colonne contenant la longitude du point de recherche" lat: type: string description: "Colonne contenant la latitude du point de recherche" departmentcode: type: string description: "Colonne contenant le code département à utiliser comme filtre (parcel)" municipalitycode: type: string description: "Colonne contenant le code commune à utiliser comme filtre (parcel)" oldmunicipalitycode: type: string description: "Colonne contenant l'ancien code commune à utiliser comme filtre (parcel)" districtcode: type: string description: "Colonne contenant le code d'arrondissement à utiliser comme filtre (parcel)" section: type: string description: "Colonne contenant le numéro de section à utiliser comme filtre (parcel)" sheet: type: string description: "Colonne contenant le numéro de feuille à utiliser comme filtre (parcel)" number: type: string description: "Colonne contenant le numéro de parcelle à utiliser comme filtre (parcel)" result\_columns: type: array items: type: string description: | Liste des colonnes de type résultat à conserver dans le fichier CSV de sortie. Par défaut toutes les colonnes disponibles sont retournées. encoding: result\_columns: style: form explode: true indexes: style: form explode: true responses: "200": description: Géocodage réussi content: text/csv: schema: $ref: "#/components/schemas/GeocodeCsvResponse" "400": description: "Échec du géocodage suite à une erreur dans la requête ou dans le fichier CSV" content: application/json: schema: type: object properties: code: type: number example: 400 description: Code d'erreur (HTTP) message: type: string description: "Message d'erreur" example: Impossible de lire le fichier CSV /async/projects: post: tags: - batch-async summary: Créer un nouveau projet description: | Cette requête permet de créer le projet de géocodage. Elle peut être réalisée de façon anonyme ou avec un jeton Géoplateforme valide. Si la requête est authentifiée avec l'en-tête Authorization alors il est possible de renseigner une communauté (Géoplateforme) de rattachement grâce à l'en-tête X-Community. Dans ce cas le projet hérite des quotas attribués à la communauté (taille max de fichier géocodage, niveau de parallélisation du géocodage). Par défaut un projet autorise un fichier de 50 Mo et ne propose pas de parallélisation (concurrency = 1). Lorsque le projet est créé avec un utilisateur authentifié, ce dernier recevra la notification de succès ou d'échec sur la boîte courriel renseignée avec son compte. À ce stade le projet est retourné avec un jeton qui doit être conservé pour les prochains appels du processus. parameters: - name: X-Community in: header required: false schema: type: string security: - {} - BearerAuth: \[\] responses: '201': description: Projet créé avec succès content: application/json: schema: $ref: '#/components/schemas/Project' "401": description: Authentification incorrecte content: application/json: schema: type: object properties: code: type: number example: 401 description: Code d'erreur (HTTP) message: type: string description: "Message d'erreur" example: Invalid token "403": description: Droits insuffisants content: application/json: schema: type: object properties: code: type: number example: 403 description: Code d'erreur (HTTP) message: type: string description: "Message d'erreur" example: User is not a member of this community /async/projects/{projectId}: get: tags: - batch-async summary: Récupérer les informations description: | Permet la récupération des informations d'un projet : - métadonnées - état et progression du géocodage - fichier source et fichier résultat (notamment le jeton d'accès) parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string security: - ProjectAuth: \[\] responses: '200': description: Métadonnées du projet content: application/json: schema: $ref: '#/components/schemas/Project' '401': description: Non autorisé '404': description: Projet introuvable delete: tags: - batch-async summary: Supprimer un projet description: | Permet la suppression d'un projet inactif (idle), terminé (completed) ou en erreur (failed). parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string security: - ProjectAuth: \[\] responses: '204': description: Projet supprimé avec succès '401': description: Non autorisé '403': description: Action interdite (le projet est en cours de traitement) '404': description: Projet introuvable /async/projects/{projectId}/pipeline: put: tags: - batch-async summary: Définir les paramètres du traitement description: | Permet de définir les paramètres de géocodage mais aussi le format de sortie (CSV ou GeoJSON). Dans le cas du CSV, les paramètres du fichier d'entrée sont conservés à l'exception de l'encodage qui sera toujours de l'UTF-8. Attention : l'adéquation des paramètres de géocodage avec le fichier fourni n'est vérifiée qu'au moment du géocodage. parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string security: - ProjectAuth: \[\] requestBody: content: application/json: schema: $ref: '#/components/schemas/Pipeline' responses: '200': description: Pipeline défini avec succès content: application/json: schema: $ref: '#/components/schemas/Project' '400': description: Paramètres invalides '401': description: Non autorisé '403': description: Action interdite (le projet est en cours de traitement ou terminé) '404': description: Projet introuvable /async/projects/{projectId}/input-file: put: tags: - batch-async summary: Uploader un fichier d'entrée pour un projet parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string - name: Content-Length in: header description: La taille du fichier peut être transmise pour s'assurer du transfert complet du fichier. required: false schema: type: integer - name: Content-Disposition in: header description: | Le nom du fichier à géocoder peut être transmis pour faciliter le suivi. Le fichier résultat reprendra en partie ce nom. Par défaut le fichier sera nommé input.csv. required: false schema: type: string security: - ProjectAuth: \[\] requestBody: content: application/octet-stream: schema: type: string format: binary responses: '200': description: Fichier d'entrée uploadé avec succès content: application/json: schema: $ref: '#/components/schemas/Project' '400': description: Fichier invalide (taille excessive ou incorrecte) '401': description: Non autorisé '403': description: Action interdite (le projet est en cours de traitement ou terminé) '404': description: Projet introuvable /async/projects/{projectId}/start: post: tags: - batch-async summary: Démander le démarrage du géocodage description: | Permet de signifier à la plateforme que le géocodage est prêt à être effectué. Il faut au préalable que le fichier source ait été soumis, ainsi que les paramètres du traitement. L'opération peut être annulée via la requête adéquate. parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string security: - ProjectAuth: \[\] responses: '200': description: Projet mis en attente de géocodage content: application/json: schema: $ref: '#/components/schemas/Project' '401': description: Non autorisé '403': description: Action interdite (le projet est en cours de traitement ou terminé ou des éléments sont manquants) '404': description: Projet introuvable /async/projects/{projectId}/abort: post: tags: - batch-async summary: Annuler un géocodage en attente ou en cours description: | Permet d'annuler un géocodage en attente (waiting) ou en cours (processing). Dans ce cas il retourne à l'état inactif et peut être modifié ou supprimé. parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string security: - ProjectAuth: \[\] responses: '200': description: Annulation prise en compte content: application/json: schema: $ref: '#/components/schemas/Project' '401': description: Non autorisé '403': description: Action interdite (le projet n'est pas en cours ou en attente) '404': description: Projet introuvable /async/projects/{projectId}/reset: post: tags: - batch-async summary: Ré-initialise un géocodage terminé ou en erreur description: | Permet de ré-initialiser un géocodage terminé (completed) ou en erreur (failed). Dans ce cas il retourne à l'état inactif et peut être modifié ou supprimé. parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string security: - ProjectAuth: \[\] responses: '200': description: Ré-initialisation prise en compte content: application/json: schema: $ref: '#/components/schemas/Project' '401': description: Non autorisé '403': description: Action interdite (le projet n'est pas terminé ou en erreur) '404': description: Projet introuvable /async/projects/{projectId}/input-file/{token}: get: tags: - batch-async summary: Télécharger le fichier source du projet parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string - name: token description: Jeton de sécurité du fichier accessible dans les métadonnées du projet (inputFile.token) in: path required: true schema: type: string responses: '200': description: Fichier téléchargé avec succès content: text/csv: schema: $ref: "#/components/schemas/GeocodeCsvResponse" application/json: schema: type: string format: binary /async/projects/{projectId}/output-file/{token}: get: tags: - batch-async summary: Télécharger le fichier résultat du projet parameters: - name: projectId description: Identifiant unique du projet in: path required: true schema: type: string - name: token description: Jeton de sécurité du fichier accessible dans les métadonnées du projet (outputFile.token) in: path required: true schema: type: string responses: '200': description: Fichier téléchargé avec succès content: application/octet-stream: schema: type: string format: binary components: securitySchemes: ProjectAuth: type: apiKey name: Authorization in: header description: Token XXXXXX BearerAuth: type: apiKey name: Authorization in: header description: Bearer XXXXXX schemas: Getcapabilities: type: "object" properties: info: type: "object" properties: name: type: "string" url: type: "string" description: type: "string" api: type: "object" properties: name: type: "string" example: "rest" version: type: "string" example: "0.0.0" operations: type: "array" items: type: "object" properties: id: type: "string" description: type: "string" url: type: "string" methods: type: "array" items: type: "string" enum: \["GET", "POST", "PUT", "DELETE"\] parameters: type: "array" items: type: "object" properties: name: type: "string" in: type: "string" description: type: "string" required: type: "boolean" default: description: "default value" schema: type: "object" properties: type: type: "string" example: type: "string" example: type: "string" indexes: type: "array" items: type: "object" properties: id: type: "string" description: type: "string" fields: type: "array" items: type: "object" properties: name: type: "string" description: type: "string" type: type: "string" queryable: type: "boolean" filter: type: "boolean" values: type: "array" items: description: allowed value GeocodeResponse: type: object oneOf: - $ref: "#/components/schemas/Address" - $ref: "#/components/schemas/Poi" - $ref: "#/components/schemas/Parcel" GeocodeReverseResponse: type: object oneOf: - $ref: "#/components/schemas/AddressReverse" - $ref: "#/components/schemas/PoiReverse" - $ref: "#/components/schemas/ParcelReverse" Parcel: type: object properties: type: type: string example: Feature properties: $ref: "#/components/schemas/ParcelProperties" geometry: $ref: "#/components/schemas/GeometryPoint" ParcelProperties: type: object properties: id: type: string description: "Identifiant de la parcelle" departmentcode: type: string description: "Code du département" municipalitycode: type: string description: "Code de la commune" city: type: string description: "Nom de la commune" oldmunicipalitycode: type: string description: "Code de l'ancienne commune" districtcode: type: string description: "Code insee de l'arrondissement" section: type: string description: "Section cadastrale" number: type: string description: "Numéro cadastral" sheet: type: string description: "Feuille cadastrale" truegeometry: $ref: "#/components/schemas/GeometryPolygon" \_score: type: number \_type: type: string enum: \["parcel"\] example: id: "75056104AV0133" departmentcode: "75" municipalitycode: "056" city: Paris oldmunicipalitycode: "000" districtcode: "104" section: "AV" number: "133" sheet: 1 truegeometry: { "type": "Polygon", "coordinates": \[ \[ \[2.35457222187139, 48.8523027661354\], \[2.35463049659443, 48.8523731401755\], \[2.35465580843827, 48.8523650925735\], \[2.35464724014948, 48.8522756505323\], \[2.35457222187139, 48.8523027661354\], \], \], } \_score: 1 \_type: "parcel" ParcelReverse: type: object properties: type: type: string example: Feature properties: $ref: "#/components/schemas/ParcelReverseProperties" geometry: $ref: "#/components/schemas/GeometryPoint" ParcelReverseProperties: type: object properties: id: type: string description: "Identifiant de la parcelle" departmentcode: type: string description: "Code du département" municipalitycode: type: string description: "Code de la commune" city: type: string description: "Nom de la commune" oldmunicipalitycode: type: string description: "Code de l'ancienne commune" districtcode: type: string description: "Code insee de l'arrondissement" section: type: string description: "Section cadastrale" number: type: string description: "Numéro cadastral" sheet: type: string description: "Feuille cadastrale" truegeometry: $ref: "#/components/schemas/GeometryPolygon" \_score: type: number \_type: type: string enum: \["parcel"\] distance: type: number example: id: "75056104AV0133" departmentcode: "75" municipalitycode: "056" city: Paris oldmunicipalitycode: "000" districtcode: "104" section: "AV" number: "133" sheet: 1 truegeometry: { "type": "Polygon", "coordinates": \[ \[ \[2.35457222187139, 48.8523027661354\], \[2.35463049659443, 48.8523731401755\], \[2.35465580843827, 48.8523650925735\], \[2.35464724014948, 48.8522756505323\], \[2.35457222187139, 48.8523027661354\], \], \], } \_score: 1 \_type: "parcel" distance: 100 Address: type: object properties: type: type: string example: Feature properties: $ref: "#/components/schemas/AddressProperties" geometry: $ref: "#/components/schemas/GeometryPoint" AddressProperties: type: object properties: label: type: string description: "Libellé complet de l'adresse" id: type: string postcode: $ref: "#/components/schemas/PostalCode" city: type: string description: "Commune de l'adresse" district: type: string description: "Arrondissement de l'adresse" street: type: string description: "Rue de l'adresse" housenumber: type: string citycode: $ref: "#/components/schemas/InseeCode" x: type: number description: "Longitude de l'adresse" y: type: number description: "Latitude de l'adresse" score: type: number \_score: type: number name: type: string type: type: string enum: \["housenumber", "street", "locality", "municipality"\] \_type: type: string enum: \["address"\] description: "Rétro-compatibilité" context: type: string importance: type: number example: label: "10 Rue Nationale 75013 Paris 13e Arrondissement" id: "test-id" postcode: "75013" city: "Paris" district: "Paris 13e Arrondissement" street: "Rue Nationale" housenumber: "10" citycode: "75113" x: 2.369063 y: 48.822409 score: 0.6515151515151515 \_score: 0.6515151515151515 name: "10 Rue Nationale" type: "housenumber" \_type: "address" contexte: "75, Paris" importance: "0.6" AddressReverse: type: object properties: type: type: string example: Feature properties: $ref: "#/components/schemas/AddressReverseProperties" geometry: $ref: "#/components/schemas/GeometryPoint" AddressReverseProperties: type: object properties: label: type: string description: "Libellé complet de l'adresse" id: type: string postcode: $ref: "#/components/schemas/PostalCode" city: type: string description: "Commune de l'adresse" district: type: string description: "Arrondissement de l'adresse" street: type: string description: "Rue de l'adresse" housenumber: type: string citycode: $ref: "#/components/schemas/InseeCode" x: type: number description: "Longitude de l'adresse" y: type: number description: "Latitude de l'adresse" score: type: number \_score: type: number name: type: string type: type: string enum: \["housenumber", "street", "locality", "municipality"\] \_type: type: string enum: \["address"\] description: "Rétro-compatibilité" context: type: string importance: type: number distance: type: number example: label: "10 Rue Nationale 75013 Paris 13e Arrondissement" id: "test-id" postcode: "75013" city: "Paris" district: "Paris 13e Arrondissement" street: "Rue Nationale" housenumber: "10" citycode: "75113" x: 2.369063 y: 48.822409 score: 0.6515151515151515 \_score: 0.6515151515151515 name: "10 Rue Nationale" type: "housenumber" \_type: "address" contexte: "75, Paris" importance: "0.6" distance: 100 Poi: type: object properties: type: type: string example: Feature properties: $ref: "#/components/schemas/PoiProperties" geometry: $ref: "#/components/schemas/GeometryPoint" PoiProperties: type: object properties: toponym: type: string description: "Libellé du toponyme" postcode: type: array items: $ref: "#/components/schemas/PostalCode" citycode: type: array items: $ref: "#/components/schemas/InseeCode" city: type: array items: type: string category: $ref: "#/components/schemas/PoiType" extrafields: type: object truegeometry: $ref: "#/components/schemas/Geometry" \_score: type: number \_type: type: string enum: \["poi"\] example: toponym: "Pont National" postcode: \[77310, 91100\] citycode: \[77, 77300, 91, 91450\] city: \["Saint-Fargeau-Ponthierry", "Corbeil-Essonnes"\] category: \["construction linéaire"\] extrafields: { "names": \["pont strasbourg", "pont national"\], "cleabs": "CONSLINE0000000060494180", } truegeometry: { "coordinates": \[ \[2.03666899913969, 44.3490469250535, 257\], \[2.03646952056093, 44.3492684335352, 256.3\], \[2.03644906780383, 44.3492907599887, 256.3\], \[2.03630075804051, 44.3494542018237, 256.3\], \], "type": "LineString", } \_score: 0.5757575757575758 \_type: "poi" PoiReverse: type: object properties: type: type: string example: Feature properties: $ref: "#/components/schemas/PoiReverseProperties" geometry: $ref: "#/components/schemas/GeometryPoint" PoiReverseProperties: type: object properties: toponym: type: string description: "Libellé du toponyme" postcode: type: array items: $ref: "#/components/schemas/PostalCode" citycode: type: array items: $ref: "#/components/schemas/InseeCode" city: type: array items: type: string category: $ref: "#/components/schemas/PoiType" extrafields: type: object truegeometry: $ref: "#/components/schemas/Geometry" \_score: type: number \_type: type: string enum: \["poi"\] distance: type: number example: toponym: "Pont National" postcode: \[77310, 91100\] citycode: \[77, 77300, 91, 91450\] city: \["Saint-Fargeau-Ponthierry", "Corbeil-Essonnes"\] category: \["construction linéaire"\] extrafields: { "names": \["pont strasbourg", "pont national"\], "cleabs": "CONSLINE0000000060494180", } truegeometry: { "coordinates": \[ \[2.03666899913969, 44.3490469250535, 257\], \[2.03646952056093, 44.3492684335352, 256.3\], \[2.03644906780383, 44.3492907599887, 256.3\], \[2.03630075804051, 44.3494542018237, 256.3\], \], "type": "LineString", } \_score: 0.5757575757575758 \_type: "poi" distance: 100 PoiType: type: array items: type: string PostalCode: maxLength: 5 minLength: 5 type: string description: "Code postal" InseeCode: maxLength: 5 minLength: 2 type: string description: "Code INSEE" Geometry: type: object properties: type: $ref: "#/components/schemas/GeometryType" coordinates: type: array items: type: number example: type: "Point" coordinates: \[2.03648539635326, 44.3492508045369\] GeometryPoint: type: object properties: type: type: string enum: \["Point"\] coordinates: type: array items: type: number example: type: "Point" coordinates: \[2.03648539635326, 44.3492508045369\] GeometryCircle: type: object properties: type: type: string enum: \["Circle"\] coordinates: type: array items: type: number radius: type: number example: type: "Circle" coordinates: \[2.35457222187139, 48.8523027661354\] radius: 100 GeometryLineString: type: object properties: type: type: string enum: \["LineString"\] coordinates: type: array items: type: number example: type: "LineString" coordinates: \[ \[2.35457222187139, 48.8523027661354\], \[2.35463049659443, 48.8523731401755\], \[2.35457222187139, 48.8523027661354\], \] GeometryPolygon: type: object properties: type: type: string enum: \["Polygon"\] coordinates: type: array items: type: number example: type: "Polygon" coordinates: \[ \[ \[2.35457222187139, 48.8523027661354\], \[2.35463049659443, 48.8523731401755\], \[2.35465580843827, 48.8523650925735\], \[2.35464724014948, 48.8522756505323\], \[2.35457222187139, 48.8523027661354\], \], \] GeometryMultiPolygon: type: object properties: type: type: string enum: \["MultiPolygon"\] coordinates: type: array items: type: number example: type: "MultiPolygon" coordinates: \[ \[ \[ \[2.35457222187139, 48.8523027661354\], \[2.35463049659443, 48.8523731401755\], \[2.35465580843827, 48.8523650925735\], \[2.35457222187139, 48.8523027661354\], \], \], \] GeometryType: type: string enum: - Point - MultiPolygon - LineString Index: type: string enum: - address - poi - parcel default: address HouseNumberInfos: type: object properties: date: type: string kind: $ref: "#/components/schemas/AddressPositionKing" source: type: string AddressPositionKing: type: array items: type: string enum: - entrance - building - staircase - unit - parcel - segment - utility - area - postal - unknown Project: type: object properties: id: type: string status: type: string enum: \[idle, waiting, processing, failed, completed\] createdAt: type: string format: date-time updatedAt: type: string format: date-time params: $ref: '#/components/schemas/ProjectParams' pipeline: $ref: '#/components/schemas/Pipeline' inputFile: type: object outputFile: type: object processing: $ref: '#/components/schemas/GeocodeProcessing' token: type: string description: Jeton permettant d'interéagir avec le projet. N'est retourné que lors de la création. GeocodeProcessing: type: object properties: step: type: string validationProgress: type: object validationError: type: string geocodingProgress: type: object geocodingError: type: string globalError: type: string startedAt: type: string format: date-time finishedAt: type: string format: date-time heartbeat: type: string format: date-time Pipeline: type: object properties: geocodeOptions: type: object properties: operation: type: string description: Opération demandée enum: \[search, reverse\] default: search indexes: type: array description: Index à utiliser pour le géocodage items: type: string enum: \[address, poi, parcel\] columns: type: array items: type: string description: | Liste des colonnes du fichier CSV à utiliser pour le géocodage. Celles-ci seront concaténées pour former le critère de recherche texte. Si le paramètre n'est pas fourni toutes les colonnes seront concaténées, ce qui est rarement souhaitable. type: type: string description: "Colonne contenant le type d’objet accepté pour le géocodage de la ligne (address)" citycode: type: string description: "Colonne contenant le code INSEE de la commune à utiliser comme filtre (address, poi)" postcode: type: string description: "Colonne contenant le code postal à utiliser comme filtre (address, poi)" category: type: string description: "Colonne contenant la catégorie de POI à utiliser comme filtre (poi)" lon: type: string description: "Colonne contenant la longitude du point de recherche" lat: type: string description: "Colonne contenant la latitude du point de recherche" departmentcode: type: string description: "Colonne contenant le code département à utiliser comme filtre (parcel)" municipalitycode: type: string description: "Colonne contenant le code commune à utiliser comme filtre (parcel)" oldmunicipalitycode: type: string description: "Colonne contenant l'ancien code commune à utiliser comme filtre (parcel)" districtcode: type: string description: "Colonne contenant le code d'arrondissement à utiliser comme filtre (parcel)" section: type: string description: "Colonne contenant le numéro de section à utiliser comme filtre (parcel)" sheet: type: string description: "Colonne contenant le numéro de feuille à utiliser comme filtre (parcel)" number: type: string description: "Colonne contenant le numéro de parcelle à utiliser comme filtre (parcel)" result\_columns: type: array items: type: string description: | Liste des colonnes de type résultat à conserver dans le fichier de sortie. Par défaut toutes les colonnes disponibles sont retournées. outputFormat: type: string enum: \[csv, geojson\] ProjectParams: type: object properties: maxInputFileSize: type: string enum: \[50MB, 100MB, 200MB, 500MB, 1GB\] concurrency: type: number enum: \[1, 2, 4\] GeocodeCsvResponse: type: string format: binary description: | Fichier CSV géocodé. Les lignes d'origine sont préservées. Les colonnes issues de l'objet associé lors du géocodage et pouvant être ajoutées sont : - result\_label - result\_score - result\_type (address) - result\_id - result\_housenumber (address) - result\_name (address) - result\_street (address) - result\_postcode (address, poi) - result\_city (address, poi) - result\_context - result\_citycode (address, poi) - result\_oldcitycode (address, poi) - result\_oldcity (address, poi) - result\_district (address, poi) - result\_category (poi) - result\_departmentcode (parcel) - result\_municipalitycode (parcel) - result\_section (parcel) - result\_sheet (parcel) - result\_number (parcel) - result\_oldmunicipalitycode (parcel) - result\_districtcode (parcel) Les colonnes suivantes sont spécifiques au géocodage direct : - latitude - longitude Les colonnes suivantes sont spécifiques au géocodage inversé : - result\_latitude - result\_longitude - result\_distance Les colonnes suivantes sont liées au géocodage en masse : - result\_score\_next : score du résultat suivant le cas échéant - result\_index : index dans lequel l'objet a été trouvé - result\_status (ok = trouvé, not-found = non trouvé, skipped = ligne ignorée en raison de paramètres manquants ou invalides, error = erreur du serveur lors de la recherche) NB : En cas de colonnes d'origine nommées latitude ou longitude et de géocodage direct, elles seront écrasées par les valeurs calculées. ---