Adresse

App · 10 actions

Geocode French addresses with the national address base: turn an address into coordinates and its official form, one at a time or a thousand at once, find the address at a GPS position, suggest addresses as they are typed, find town halls, stations, schools and landmarks, and look up land parcels in the cadastre. Covers all of France, overseas included, from the Base Adresse Nationale and IGN's Géoplateforme. Free, and no account or API key is required.

Actions

ActionWhat it does
Find cadastral parcelsLook up land parcels in the French cadastre, by their 14-character reference or by commune, section and number, and get each one's location and boundary.
Find places near a pointList the places of interest around a latitude and longitude in France, nearest first, each with its distance: the landmark at a spot, or the town halls, stations or schools near it when a category is given.
Find the address at a pointFind the French addresses nearest a latitude and longitude, nearest first, each with how many metres away it is.
Find the addresses at a list of pointsFind the nearest French address to each of up to 1,000 latitude and longitude pairs in one request, in the order given, with the distance to each.
Find the parcel at a pointFind the cadastral parcel a latitude and longitude falls in, with its reference, section, number, commune and boundary.
Geocode a list of addressesGeocode up to 1,000 French addresses in one request, such as the rows of a spreadsheet, and get each back in the same order with its coordinates, official form and score.
Geocode an addressTurn a French address into map coordinates and a clean, official form: the best match in the Base Adresse Nationale, with its postcode, INSEE commune code, department and region, and a score saying how sure the match is.
Search addressesList every French address, street, locality or town that matches some text, best match first, each with its coordinates, postcode, INSEE code and score.
Search placesFind places in France by name from IGN's map of points of interest: town halls, stations, schools, hospitals, museums, monuments, lakes and summits, with their category and coordinates, and their outline if wanted.
Suggest addresses as typedComplete a partly typed French address or place name, as a search box would ('73 avenue de par'), with up to 15 suggestions and their coordinates.

Find cadastral parcels

Look up land parcels in the French cadastre, by their 14-character reference or by commune, section and number, and get each one's location and boundary. Give the section alone to list its parcels. No API key required.

Inputs

Parcel referenceparcel_idtext
The parcel's full 14-character cadastral reference, as on a land registry extract. Leave empty to search by commune, section and number instead.
Commune (INSEE code)citycodetext
The commune's five-character INSEE code, when searching by section and number. An arrondissement's code works for Paris, Lyon and Marseille.
Sectionsectiontext
The cadastral section: one or two letters or digits, such as AB or 0D.
Parcel numbernumbertext
The parcel's number within its section, up to four digits.
Sheetsheettext
The map sheet, for a section drawn on more than one. Rarely needed.
Max resultslimitnumber
How many parcels to return, from 1 to 50.From 1 to 50. Default: 10.
Include outlinesinclude_outlinetrue/false
Also return each parcel's boundary as a GeoJSON polygon in 'outline'.Default: true.

Outputs

countnumber
foundtrue/false
parcel_idtext
resultslist
Example output
{
  "count": 1,
  "found": true,
  "parcel_id": "940670000D0014",
  "results": [
    {
      "city": "Saint-Mand\u00e9",
      "citycode": "94067",
      "department_code": "94",
      "distance_meters": null,
      "district_code": "000",
      "id": "940670000D0014",
      "label": "Parcel 0D 0014, Saint-Mand\u00e9",
      "latitude": 48.845687,
      "longitude": 2.42439,
      "map_url": "https://www.openstreetmap.org/?mlat=48.845687&mlon=2.42439#map=18/48.845687/2.42439",
      "municipality_code": "067",
      "number": "0014",
      "old_municipality_code": "000",
      "outline": {
        "coordinates": [
          [
            [
              2.424518,
              48.845617
            ],
            [
              2.424172,
              48.845658
            ],
            [
              2.424188,
              48.845743
            ],
            [
              2.424536,
              48.845712
            ],
            [
              2.424535,
              48.845707
            ],
            [
              2.424518,
              48.845617
            ]
          ]
        ],
        "type": "Polygon"
      },
      "score": null,
      "section": "0D",
      "sheet": "01"
    }
  ]
}

Find places near a point

List the places of interest around a latitude and longitude in France, nearest first, each with its distance: the landmark at a spot, or the town halls, stations or schools near it when a category is given. No API key required.

Inputs

LatitudelatitudenumberRequired
Latitude of the point, in decimal degrees, such as 48.8457.From -90 to 90.
LongitudelongitudenumberRequired
Longitude of the point, in decimal degrees, such as 2.4245.From -180 to 180.
Categorycategorytext
Only return places of this kind, in French as the IGN's BD TOPO names them: a broad group such as 'transport' or 'administratif', or a precise kind such as 'mairie', 'gare voyageurs uniquement', 'collège', 'hôpital', 'musée' or 'monument'. Up to ten, separated by commas.
Max resultslimitnumber
How many places to return, from 1 to 50. With outlines included the geocoder sends at most 20.From 1 to 50. Default: 10.
Include outlinesinclude_outlinetrue/false
Also return each place's shape as GeoJSON in 'outline' (a building's footprint, a park's boundary), for drawing on a map. Off by default, since outlines can be large.Default: false.

Outputs

countnumber
foundtrue/false
latitudenumber
longitudenumber
nearestobject
notetext
resultslist
The places, nearest first.
Example output
{
  "count": 2,
  "found": true,
  "latitude": 48.8584,
  "longitude": 2.2945,
  "nearest": {
    "bdtopo_id": "SURFACTI0000000000142427",
    "categories": [
      "monument",
      "zone d'activit\u00e9 ou d'int\u00e9r\u00eat"
    ],
    "category": "monument",
    "cities": [
      "Paris",
      "Paris 7e Arrondissement"
    ],
    "city": "Paris",
    "citycode": "75056",
    "citycodes": [
      "75056",
      "75107"
    ],
    "classification": 1,
    "department_code": "75",
    "distance_meters": 24,
    "district": "Paris 7e Arrondissement",
    "label": "Tour Eiffel, Paris 7e Arrondissement",
    "latitude": 48.858264,
    "longitude": 2.29424,
    "map_url": "https://www.openstreetmap.org/?mlat=48.858264&mlon=2.29424#map=18/48.858264/2.29424",
    "name": "Tour Eiffel",
    "names": [
      "Tour Eiffel"
    ],
    "outline": null,
    "postcode": "75007",
    "postcodes": [
      "75007"
    ],
    "score": 0.9976,
    "territory": "METROPOLE",
    "toponym": "Tour Eiffel"
  },
  "note": null,
  "results": [
    {
      "bdtopo_id": "SURFACTI0000000000142427",
      "categories": [
        "monument",
        "zone d'activit\u00e9 ou d'int\u00e9r\u00eat"
      ],
      "category": "monument",
      "cities": [
        "Paris",
        "Paris 7e Arrondissement"
      ],
      "city": "Paris",
      "citycode": "75056",
      "citycodes": [
        "75056",
        "75107"
      ],
      "classification": 1,
      "department_code": "75",
      "distance_meters": 24,
      "district": "Paris 7e Arrondissement",
      "label": "Tour Eiffel, Paris 7e Arrondissement",
      "latitude": 48.858264,
      "longitude": 2.29424,
      "map_url": "https://www.openstreetmap.org/?mlat=48.858264&mlon=2.29424#map=18/48.858264/2.29424",
      "name": "Tour Eiffel",
      "names": [
        "Tour Eiffel"
      ],
      "outline": null,
      "postcode": "75007",
      "postcodes": [
        "75007"
      ],
      "score": 0.9976,
      "territory": "METROPOLE",
      "toponym": "Tour Eiffel"
    },
    {
      "bdtopo_id": "PAIHABIT0000000000148269",
      "categories": [
        "quartier",
        "zone d'habitation"
      ],
      "category": "quartier",
      "cities": [
        "Paris",
        "Paris 7e Arrondissement"
      ],
      "city": "Paris",
      "citycode": "75056",
      "citycodes": [
        "75056",
        "75107"
      ],
      "classification": 7,
      "department_code": "75",
      "distance_meters": 547,
      "district": "Paris 7e Arrondissement",
      "label": "Gros Caillou, Paris 7e Arrondissement",
      "latitude": 48.857364,
      "longitude": 2.30181,
      "map_url": "https://www.openstreetmap.org/?mlat=48.857364&mlon=2.30181#map=18/48.857364/2.30181",
      "name": "Gros Caillou",
      "names": [
        "Gros Caillou"
      ],
      "outline": null,
      "postcode": "75007",
      "postcodes": [
        "75007"
      ],
      "score": 0.9453,
      "territory": "METROPOLE",
      "toponym": "Gros Caillou"
    }
  ]
}

Find the address at a point

Find the French addresses nearest a latitude and longitude, nearest first, each with how many metres away it is. Use it to put an address on a GPS position, a delivery scan or a photo's location. No API key required.

Inputs

LatitudelatitudenumberRequired
Latitude of the point, in decimal degrees, such as 48.8457.From -90 to 90.
LongitudelongitudenumberRequired
Longitude of the point, in decimal degrees, such as 2.4245.From -180 to 180.
Kind of resultaddress_typetext
Only return this kind of result: a numbered address, a whole street, a locality (a named place with no streets, a lieu-dit) or a town.One of: any (Any kind), housenumber (A numbered address), street (A street), locality (A locality (lieu-dit)), municipality (A town or city). Default: any.
Max resultslimitnumber
How many addresses to return, from 1 to 50.From 1 to 50. Default: 5.

Outputs

countnumber
foundtrue/false
latitudenumber
longitudenumber
nearestobject
The nearest address.
notetext
resultslist
Every address found, nearest first.
Example output
{
  "count": 2,
  "found": true,
  "latitude": 48.845726,
  "longitude": 2.424573,
  "nearest": {
    "ban_id": "7b81888d-7f55-4f01-b048-9cdb47a674fb",
    "city": "Saint-Mand\u00e9",
    "citycode": "94067",
    "context": "94, Val-de-Marne, \u00cele-de-France",
    "department": "Val-de-Marne",
    "department_code": "94",
    "distance_meters": 0,
    "district": null,
    "housenumber": "73",
    "id": "94067_7115_00073",
    "importance": 0.6161,
    "label": "73 Avenue de Paris 94160 Saint-Mand\u00e9",
    "latitude": 48.845726,
    "locality": null,
    "longitude": 2.424573,
    "map_url": "https://www.openstreetmap.org/?mlat=48.845726&mlon=2.424573#map=18/48.845726/2.424573",
    "name": "73 Avenue de Paris",
    "old_city": null,
    "old_citycode": null,
    "population": null,
    "postcode": "94160",
    "projected_x": 657770.33,
    "projected_y": 6860785.03,
    "region": "\u00cele-de-France",
    "score": 1.0,
    "street": "Avenue de Paris",
    "type": "housenumber"
  },
  "note": null,
  "results": [
    {
      "ban_id": "7b81888d-7f55-4f01-b048-9cdb47a674fb",
      "city": "Saint-Mand\u00e9",
      "citycode": "94067",
      "context": "94, Val-de-Marne, \u00cele-de-France",
      "department": "Val-de-Marne",
      "department_code": "94",
      "distance_meters": 0,
      "district": null,
      "housenumber": "73",
      "id": "94067_7115_00073",
      "importance": 0.6161,
      "label": "73 Avenue de Paris 94160 Saint-Mand\u00e9",
      "latitude": 48.845726,
      "locality": null,
      "longitude": 2.424573,
      "map_url": "https://www.openstreetmap.org/?mlat=48.845726&mlon=2.424573#map=18/48.845726/2.424573",
      "name": "73 Avenue de Paris",
      "old_city": null,
      "old_citycode": null,
      "population": null,
      "postcode": "94160",
      "projected_x": 657770.33,
      "projected_y": 6860785.03,
      "region": "\u00cele-de-France",
      "score": 1.0,
      "street": "Avenue de Paris",
      "type": "housenumber"
    },
    {
      "ban_id": "39023ee1-fc04-497e-8bfb-2a7a0c562c2b",
      "city": "Vincennes",
      "citycode": "94080",
      "context": "94, Val-de-Marne, \u00cele-de-France",
      "department": "Val-de-Marne",
      "department_code": "94",
      "distance_meters": 27,
      "district": null,
      "housenumber": "73",
      "id": "94080_7115_00073",
      "importance": 0.7264,
      "label": "73 Avenue de Paris 94300 Vincennes",
      "latitude": 48.84585,
      "locality": null,
      "longitude": 2.424256,
      "map_url": "https://www.openstreetmap.org/?mlat=48.84585&mlon=2.424256#map=18/48.84585/2.424256",
      "name": "73 Avenue de Paris",
      "old_city": null,
      "old_citycode": null,
      "population": null,
      "postcode": "94300",
      "projected_x": 657747.17,
      "projected_y": 6860798.99,
      "region": "\u00cele-de-France",
      "score": 0.9973,
      "street": "Avenue de Paris",
      "type": "housenumber"
    }
  ]
}

Find the addresses at a list of points

Find the nearest French address to each of up to 1,000 latitude and longitude pairs in one request, in the order given, with the distance to each. A row that is not a valid point is reported, not fatal. No API key required.

Inputs

PointspointslistRequired
The points, one row each, with a reference of your own if you like. Rows from an earlier step work too: columns named latitude and longitude (or lat and lon) are read. Up to 1,000 rows.

Outputs

countnumber
found_countnumber
not_found_countnumber
resultslist
Every point, in the order given.
Example output
{
  "count": 3,
  "found_count": 2,
  "not_found_count": 1,
  "results": [
    {
      "ban_id": "7b81888d-7f55-4f01-b048-9cdb47a674fb",
      "city": "Saint-Mand\u00e9",
      "citycode": "94067",
      "context": "94, Val-de-Marne, \u00cele-de-France",
      "department": "Val-de-Marne",
      "department_code": "94",
      "distance_meters": 0,
      "district": null,
      "found": true,
      "housenumber": "73",
      "id": "94067_7115_00073",
      "label": "73 Avenue de Paris 94160 Saint-Mand\u00e9",
      "latitude": 48.845726,
      "longitude": 2.424573,
      "map_url": "https://www.openstreetmap.org/?mlat=48.845726&mlon=2.424573#map=18/48.845726/2.424573",
      "name": "73 Avenue de Paris",
      "note": null,
      "old_city": null,
      "old_citycode": null,
      "postcode": "94160",
      "reference": "IGN",
      "region": "\u00cele-de-France",
      "row": 1,
      "status": "found",
      "street": "Avenue de Paris",
      "type": "housenumber"
    },
    {
      "ban_id": "bc7a80e6-37ad-4040-9849-3d9272659935",
      "city": "Marseille",
      "citycode": "13202",
      "context": "13, Bouches-du-Rh\u00f4ne, Provence-Alpes-C\u00f4te d'Azur",
      "department": "Bouches-du-Rh\u00f4ne",
      "department_code": "13",
      "distance_meters": 34,
      "district": "Marseille 2e Arrondissement",
      "found": true,
      "housenumber": "15",
      "id": "13202_5329_00015",
      "label": "15 Rue de la loge 13002 Marseille",
      "latitude": 43.2965,
      "longitude": 5.3698,
      "map_url": "https://www.openstreetmap.org/?mlat=43.2965&mlon=5.3698#map=18/43.2965/5.3698",
      "name": "15 Rue de la loge",
      "note": null,
      "old_city": null,
      "old_citycode": null,
      "postcode": "13002",
      "reference": "Vieux-Port",
      "region": "Provence-Alpes-C\u00f4te d'Azur",
      "row": 2,
      "status": "found",
      "street": "Rue de la loge",
      "type": "housenumber"
    },
    {
      "ban_id": null,
      "city": null,
      "citycode": null,
      "context": null,
      "department": null,
      "department_code": null,
      "distance_meters": null,
      "district": null,
      "found": false,
      "housenumber": null,
      "id": null,
      "label": null,
      "latitude": 47.0,
      "longitude": -30.0,
      "map_url": "https://www.openstreetmap.org/?mlat=47.0&mlon=-30.0#map=18/47.0/-30.0",
      "name": null,
      "note": "No address is near this point.",
      "old_city": null,
      "old_citycode": null,
      "postcode": null,
      "reference": "Atlantic",
      "region": null,
      "row": 3,
      "status": "not_found",
      "street": null,
      "type": null
    }
  ]
}

Find the parcel at a point

Find the cadastral parcel a latitude and longitude falls in, with its reference, section, number, commune and boundary. Use it to tie a site visit or a building to its land registry entry. No API key required.

Inputs

LatitudelatitudenumberRequired
Latitude of the point, in decimal degrees, such as 48.8457.From -90 to 90.
LongitudelongitudenumberRequired
Longitude of the point, in decimal degrees, such as 2.4245.From -180 to 180.
Include outlinesinclude_outlinetrue/false
Also return each parcel's boundary as a GeoJSON polygon in 'outline'.Default: true.

Outputs

citytext
citycodetext
The commune's INSEE code.
department_codetext
distance_metersnumber
How far the parcel is from the point asked about; 0 when the point is inside it.
district_codetext
The arrondissement, in Paris, Lyon and Marseille; 000 elsewhere.
foundtrue/false
idtext
The parcel's 14-character cadastral reference.
labeltext
latitudenumber
The parcel's centre.
longitudenumber
map_urltext
municipality_codetext
notetext
numbertext
old_municipality_codetext
outlineobject
The parcel's boundary as a GeoJSON polygon, when outlines were asked for.
scorenumber
sectiontext
sheettext
Example output
{
  "city": "Saint-Mand\u00e9",
  "citycode": "94067",
  "department_code": "94",
  "distance_meters": 8,
  "district_code": "000",
  "found": true,
  "id": "940670000D0014",
  "label": "Parcel 0D 0014, Saint-Mand\u00e9",
  "latitude": 48.845687,
  "longitude": 2.42439,
  "map_url": "https://www.openstreetmap.org/?mlat=48.845687&mlon=2.42439#map=18/48.845687/2.42439",
  "municipality_code": "067",
  "note": null,
  "number": "0014",
  "old_municipality_code": "000",
  "outline": {
    "coordinates": [
      [
        [
          2.424518,
          48.845617
        ],
        [
          2.424172,
          48.845658
        ],
        [
          2.424188,
          48.845743
        ],
        [
          2.424536,
          48.845712
        ],
        [
          2.424535,
          48.845707
        ],
        [
          2.424518,
          48.845617
        ]
      ]
    ],
    "type": "Polygon"
  },
  "score": 0.9992,
  "section": "0D",
  "sheet": "01"
}

Geocode a list of addresses

Geocode up to 1,000 French addresses in one request, such as the rows of a spreadsheet, and get each back in the same order with its coordinates, official form and score. Rows that did not match well enough are listed again on their own so they can be checked by hand. No API key required.

Inputs

AddressesaddresseslistRequired
The addresses, one row each: the address, and if known its postcode or INSEE code to narrow the search, and a reference of your own to tell the results apart. Rows from an earlier step work too: columns named address, postcode, citycode and reference (or id) are read, in any case. Up to 1,000 rows.
Minimum scoreminimum_scorenumber
How sure the match has to be, from 0 to 1, to count as matched. The geocoder always proposes something, even for nonsense, so the score is what tells a real address from a guess. 0.5 suits most addresses; raise it to 0.7 or more when a wrong match would be costly.From 0 to 1. Default: 0.5.

Outputs

countnumber
matched_countnumber
minimum_scorenumber
resultslist
Every address, in the order given.
unmatchedlist
The rows that did not match, to check.
unmatched_countnumber
Example output
{
  "count": 4,
  "matched_count": 2,
  "minimum_score": 0.5,
  "results": [
    {
      "ambiguous": false,
      "ban_id": "7b81888d-7f55-4f01-b048-9cdb47a674fb",
      "city": "Saint-Mand\u00e9",
      "citycode": "94067",
      "context": "94, Val-de-Marne, \u00cele-de-France",
      "department": "Val-de-Marne",
      "department_code": "94",
      "district": null,
      "housenumber": "73",
      "id": "94067_7115_00073",
      "label": "73 Avenue de Paris 94160 Saint-Mand\u00e9",
      "latitude": 48.845726,
      "longitude": 2.424573,
      "map_url": "https://www.openstreetmap.org/?mlat=48.845726&mlon=2.424573#map=18/48.845726/2.424573",
      "matched": true,
      "name": "73 Avenue de Paris",
      "next_best_score": null,
      "note": null,
      "old_city": null,
      "old_citycode": null,
      "postcode": "94160",
      "query": "73 avenue de Paris",
      "reference": "IGN",
      "region": "\u00cele-de-France",
      "row": 1,
      "score": 0.9651,
      "status": "matched",
      "street": "Avenue de Paris",
      "type": "housenumber"
    },
    {
      "ambiguous": true,
      "ban_id": "8e6b04d7-f6fd-48a1-80be-4ec984a286e8",
      "city": "Cergy",
      "citycode": "95127",
      "context": "95, Val-d'Oise, \u00cele-de-France",
      "department": "Val-d'Oise",
      "department_code": "95",
      "district": null,
      "housenumber": "8",
      "id": "95127_1448_00008",
      "label": "8 Boulevard du Port 95000 Cergy",
      "latitude": 49.031624,
      "longitude": 2.062821,
      "map_url": "https://www.openstreetmap.org/?mlat=49.031624&mlon=2.062821#map=18/49.031624/2.062821",
      "matched": true,
      "name": "8 Boulevard du Port",
      "next_best_score": 0.5401,
      "note": "Another address scored almost as well (0.5401); check this one, or add its postcode.",
      "old_city": null,
      "old_citycode": null,
      "postcode": "95000",
      "query": "8 bd du port",
      "reference": "Depot",
      "region": "\u00cele-de-France",
      "row": 2,
      "score": 0.5403,
      "status": "matched",
      "street": "Boulevard du Port",
      "type": "housenumber"
    },
    {
      "ambiguous": false,
      "ban_id": null,
      "city": null,
      "citycode": null,
      "context": null,
      "department": null,
      "department_code": null,
      "district": null,
      "housenumber": null,
      "id": null,
      "label": null,
      "latitude": null,
      "longitude": null,
      "map_url": null,
      "matched": false,
      "name": null,
      "next_best_score": null,
      "note": "No address matched.",
      "old_city": null,
      "old_citycode": null,
      "postcode": null,
      "query": "zzzz qqqq xxxx",
      "reference": "Typo",
      "region": null,
      "row": 3,
      "score": null,
      "status": "not_found",
      "street": null,
      "type": null
    },
    {
      "ambiguous": false,
      "ban_id": null,
      "city": null,
      "citycode": null,
      "context": null,
      "department": null,
      "department_code": null,
      "district": null,
      "housenumber": null,
      "id": null,
      "label": null,
      "latitude": null,
      "longitude": null,
      "map_url": null,
      "matched": false,
      "name": null,
      "next_best_score": null,
      "note": "The geocoder skipped this row: an address needs 3 to 200 characters, starting with a letter or a digit.",
      "old_city": null,
      "old_citycode": null,
      "postcode": null,
      "query": "ab",
      "reference": "Blank",
      "region": null,
      "row": 4,
      "score": null,
      "status": "skipped",
      "street": null,
      "type": null
    }
  ],
  "unmatched": [
    {
      "note": "No address matched.",
      "query": "zzzz qqqq xxxx",
      "reference": "Typo",
      "row": 3,
      "status": "not_found"
    },
    {
      "note": "The geocoder skipped this row: an address needs 3 to 200 characters, starting with a letter or a digit.",
      "query": "ab",
      "reference": "Blank",
      "row": 4,
      "status": "skipped"
    }
  ],
  "unmatched_count": 2
}

Geocode an address

Turn a French address into map coordinates and a clean, official form: the best match in the Base Adresse Nationale, with its postcode, INSEE commune code, department and region, and a score saying how sure the match is. Says whether it passed the minimum score, and flags it as ambiguous when another address scored almost as well ('8 bd du port' is in both Cergy and Amiens). No API key required.

Inputs

AddressaddresstextRequired
The address to find, written as one line. Spelling, accents and abbreviations ('bd', 'av', 'st') are forgiven. Include the postcode or city when you have it: many towns share a street name.
Only in postcodepostcodetext
Only return results with this five-digit postcode. Several can be given, separated by commas. A postcode read out of a spreadsheet as a number (1000) is padded back (01000).
Only in commune (INSEE code)citycodetext
Only return results in the commune with this INSEE code: five characters such as 75056 for Paris or 2A004 for Ajaccio. It is not the postcode. Several can be given, separated by commas.
Only in departmentdepartmenttext
Only return results in this department, by its number: 75, 2A, or 971 for Guadeloupe. Up to ten, separated by commas.
Only in citycitytext
Only return results in a town or city with this name.
Kind of resultaddress_typetext
Only return this kind of result: a numbered address, a whole street, a locality (a named place with no streets, a lieu-dit) or a town.One of: any (Any kind), housenumber (A numbered address), street (A street), locality (A locality (lieu-dit)), municipality (A town or city). Default: any.
Prefer results near latitudenear_latitudenumber
With 'Prefer results near longitude', ranks results closer to this point higher. It does not exclude anything further away.From -90 to 90.
Prefer results near longitudenear_longitudenumber
The longitude of the point to favour results near.From -180 to 180.
Minimum scoreminimum_scorenumber
How sure the match has to be, from 0 to 1, to count as matched. The geocoder always proposes something, even for nonsense, so the score is what tells a real address from a guess. 0.5 suits most addresses; raise it to 0.7 or more when a wrong match would be costly.From 0 to 1. Default: 0.5.

Outputs

ambiguoustrue/false
Whether the next best match scored within 0.05 of it.
ban_idtext
The address's permanent BAN identifier (a UUID).
citytext
citycodetext
The commune's INSEE code (not the postcode).
contexttext
Department number, department and region, as one text.
departmenttext
department_codetext
distance_metersnumber
How far the address is from the point asked about.
districttext
The arrondissement, in Paris, Lyon and Marseille.
foundtrue/false
Whether anything came back at all.
housenumbertext
The number, with any suffix such as 'bis' or 'B'.
idtext
The address's key in the Base Adresse Nationale.
importancenumber
labeltext
The whole address as it is written: number, street, postcode and city.
latitudenumber
localitytext
longitudenumber
map_urltext
matchedtrue/false
Whether the best match reached the minimum score.
minimum_scorenumber
nametext
Number and street, or the locality's name.
next_best_labeltext
next_best_scorenumber
notetext
Why the match is missing, weak or ambiguous, when it is.
old_citytext
The former commune, where communes have merged.
old_citycodetext
populationnumber
For a town or city: how many people live there.
postcodetext
projected_xnumber
Easting in France's legal projection (Lambert-93 in mainland France), in metres. Not a longitude.
projected_ynumber
Northing in the legal projection, in metres.
querytext
regiontext
The region; an overseas territory's own name.
scorenumber
How well this matches the search, from 0 to 1.
streettext
typetext
housenumber, street, locality or municipality.
Example output
{
  "ambiguous": true,
  "ban_id": "8e6b04d7-f6fd-48a1-80be-4ec984a286e8",
  "city": "Cergy",
  "citycode": "95127",
  "context": "95, Val-d'Oise, \u00cele-de-France",
  "department": "Val-d'Oise",
  "department_code": "95",
  "distance_meters": null,
  "district": null,
  "found": true,
  "housenumber": "8",
  "id": "95127_1448_00008",
  "importance": 0.6798,
  "label": "8 Boulevard du Port 95000 Cergy",
  "latitude": 49.031624,
  "locality": null,
  "longitude": 2.062821,
  "map_url": "https://www.openstreetmap.org/?mlat=49.031624&mlon=2.062821#map=18/49.031624/2.062821",
  "matched": true,
  "minimum_score": 0.5,
  "name": "8 Boulevard du Port",
  "next_best_label": "8 Boulevard du Port 80000 Amiens",
  "next_best_score": 0.5401,
  "note": "8 Boulevard du Port 80000 Amiens scored almost as well (0.5401). Add the postcode or city to be sure which one is meant.",
  "old_city": null,
  "old_citycode": null,
  "population": null,
  "postcode": "95000",
  "projected_x": 631468.28,
  "projected_y": 6881710.34,
  "query": "8 bd du port",
  "region": "\u00cele-de-France",
  "score": 0.5403,
  "street": "Boulevard du Port",
  "type": "housenumber"
}

Search addresses

List every French address, street, locality or town that matches some text, best match first, each with its coordinates, postcode, INSEE code and score. Use it to offer a choice, or to see every Rue de Rivoli in Paris. No API key required.

Inputs

Search forquerytextRequired
What to search for: an address, a street, a locality or a town, from 3 to 200 characters.
Max resultslimitnumber
How many results to return, from 1 to 50.From 1 to 50. Default: 10.
Kind of resultaddress_typetext
Only return this kind of result: a numbered address, a whole street, a locality (a named place with no streets, a lieu-dit) or a town.One of: any (Any kind), housenumber (A numbered address), street (A street), locality (A locality (lieu-dit)), municipality (A town or city). Default: any.
Only in postcodepostcodetext
Only return results with this five-digit postcode. Several can be given, separated by commas. A postcode read out of a spreadsheet as a number (1000) is padded back (01000).
Only in commune (INSEE code)citycodetext
Only return results in the commune with this INSEE code: five characters such as 75056 for Paris or 2A004 for Ajaccio. It is not the postcode. Several can be given, separated by commas.
Only in departmentdepartmenttext
Only return results in this department, by its number: 75, 2A, or 971 for Guadeloupe. Up to ten, separated by commas.
Only in citycitytext
Only return results in a town or city with this name.
Prefer results near latitudenear_latitudenumber
With 'Prefer results near longitude', ranks results closer to this point higher. It does not exclude anything further away.From -90 to 90.
Prefer results near longitudenear_longitudenumber
The longitude of the point to favour results near.From -180 to 180.
Treat the last word as unfinishedautocompletetrue/false
Read the last word as the start of a word, as a search box does while someone types ('rue de riv'). Leave off for addresses written out in full: it is more accurate.Default: false.

Outputs

countnumber
foundtrue/false
querytext
resultslist
The matches, best first.
Example output
{
  "count": 2,
  "found": true,
  "query": "rue de rivoli",
  "results": [
    {
      "ban_id": "7941e7a8-f63c-4619-a6df-d407225effcb",
      "city": "Paris",
      "citycode": "75101",
      "context": "75, Paris, \u00cele-de-France",
      "department": "Paris",
      "department_code": "75",
      "distance_meters": null,
      "district": "Paris 1er Arrondissement",
      "housenumber": null,
      "id": "75101_8249",
      "importance": 0.6747,
      "label": "Rue de Rivoli 75001 Paris",
      "latitude": 48.862442,
      "locality": null,
      "longitude": 2.3362,
      "map_url": "https://www.openstreetmap.org/?mlat=48.862442&mlon=2.3362#map=18/48.862442/2.3362",
      "name": "Rue de Rivoli",
      "old_city": null,
      "old_citycode": null,
      "population": null,
      "postcode": "75001",
      "projected_x": 651300.54,
      "projected_y": 6862694.59,
      "region": "\u00cele-de-France",
      "score": 0.9704,
      "street": "Rue de Rivoli",
      "type": "street"
    },
    {
      "ban_id": "b37e6e25-05d7-4b1c-aa27-cf11864b4d55",
      "city": "Paris",
      "citycode": "75104",
      "context": "75, Paris, \u00cele-de-France",
      "department": "Paris",
      "department_code": "75",
      "distance_meters": null,
      "district": "Paris 4e Arrondissement",
      "housenumber": null,
      "id": "75104_8249",
      "importance": 0.6717,
      "label": "Rue de Rivoli 75004 Paris",
      "latitude": 48.856705,
      "locality": null,
      "longitude": 2.355124,
      "map_url": "https://www.openstreetmap.org/?mlat=48.856705&mlon=2.355124#map=18/48.856705/2.355124",
      "name": "Rue de Rivoli",
      "old_city": null,
      "old_citycode": null,
      "population": null,
      "postcode": "75004",
      "projected_x": 652683.66,
      "projected_y": 6862045.18,
      "region": "\u00cele-de-France",
      "score": 0.9702,
      "street": "Rue de Rivoli",
      "type": "street"
    }
  ]
}

Search places

Find places in France by name from IGN's map of points of interest: town halls, stations, schools, hospitals, museums, monuments, lakes and summits, with their category and coordinates, and their outline if wanted. No API key required.

Inputs

Search forquerytextRequired
The place's name, from 3 to 200 characters.
Categorycategorytext
Only return places of this kind, in French as the IGN's BD TOPO names them: a broad group such as 'transport' or 'administratif', or a precise kind such as 'mairie', 'gare voyageurs uniquement', 'collège', 'hôpital', 'musée' or 'monument'. Up to ten, separated by commas.
Only in postcodepostcodetext
Only return results with this five-digit postcode. Several can be given, separated by commas. A postcode read out of a spreadsheet as a number (1000) is padded back (01000).
Only in commune (INSEE code)citycodetext
Only return results in the commune with this INSEE code: five characters such as 75056 for Paris or 2A004 for Ajaccio. It is not the postcode. Several can be given, separated by commas.
Only in departmentdepartmenttext
Only return results in this department, by its number: 75, 2A, or 971 for Guadeloupe. Up to ten, separated by commas.
Only in citycitytext
Only return results in a town or city with this name.
Prefer results near latitudenear_latitudenumber
With 'Prefer results near longitude', ranks results closer to this point higher. It does not exclude anything further away.From -90 to 90.
Prefer results near longitudenear_longitudenumber
The longitude of the point to favour results near.From -180 to 180.
Max resultslimitnumber
How many places to return, from 1 to 50. With outlines included the geocoder sends at most 20.From 1 to 50. Default: 10.
Include outlinesinclude_outlinetrue/false
Also return each place's shape as GeoJSON in 'outline' (a building's footprint, a park's boundary), for drawing on a map. Off by default, since outlines can be large.Default: false.

Outputs

countnumber
foundtrue/false
notetext
querytext
resultslist
The places, best match first.
Example output
{
  "count": 2,
  "found": true,
  "note": null,
  "query": "mus\u00e9e du louvre",
  "results": [
    {
      "bdtopo_id": "SURFACTI0000000314845912",
      "categories": [
        "mus\u00e9e",
        "zone d'activit\u00e9 ou d'int\u00e9r\u00eat"
      ],
      "category": "mus\u00e9e",
      "cities": [
        "Lens"
      ],
      "city": "Lens",
      "citycode": "62498",
      "citycodes": [
        "62498"
      ],
      "classification": 1,
      "department_code": "62",
      "distance_meters": null,
      "district": null,
      "label": "Mus\u00e9e du Louvre-Lens, Lens",
      "latitude": 50.43059,
      "longitude": 2.805775,
      "map_url": "https://www.openstreetmap.org/?mlat=50.43059&mlon=2.805775#map=18/50.43059/2.805775",
      "name": "Mus\u00e9e du Louvre-Lens",
      "names": [
        "Mus\u00e9e du Louvre-Lens"
      ],
      "outline": null,
      "postcode": "62300",
      "postcodes": [
        "62300"
      ],
      "score": 0.9091,
      "territory": "METROPOLE",
      "toponym": "Mus\u00e9e du Louvre-Lens"
    },
    {
      "bdtopo_id": "SURFACTI0000000000142364",
      "categories": [
        "mus\u00e9e",
        "zone d'activit\u00e9 ou d'int\u00e9r\u00eat"
      ],
      "category": "mus\u00e9e",
      "cities": [
        "Paris 1er Arrondissement",
        "Paris"
      ],
      "city": "Paris",
      "citycode": "75101",
      "citycodes": [
        "75101",
        "75056"
      ],
      "classification": 1,
      "department_code": "75",
      "distance_meters": null,
      "district": "Paris 1er Arrondissement",
      "label": "Mus\u00e9e du Louvre, Paris 1er Arrondissement",
      "latitude": 48.860849,
      "longitude": 2.336264,
      "map_url": "https://www.openstreetmap.org/?mlat=48.860849&mlon=2.336264#map=18/48.860849/2.336264",
      "name": "Mus\u00e9e du Louvre",
      "names": [
        "Mus\u00e9e du Louvre"
      ],
      "outline": null,
      "postcode": "75001",
      "postcodes": [
        "75001"
      ],
      "score": 0.9091,
      "territory": "METROPOLE",
      "toponym": "Mus\u00e9e du Louvre"
    }
  ]
}

Suggest addresses as typed

Complete a partly typed French address or place name, as a search box would ('73 avenue de par'), with up to 15 suggestions and their coordinates. Use it to check what someone typed into a form. No API key required.

Inputs

Text typedtexttextRequired
The start of an address or place name.
Suggestsuggesttext
Whether to suggest addresses, places, or both.One of: all (Addresses and places), addresses (Addresses only), places (Places only). Default: all.
Max suggestionslimitnumber
How many suggestions to return, from 1 to 15.From 1 to 15. Default: 10.
Only interritorytext
Only suggest within METROPOLE (mainland France and Corsica), DOMTOM (overseas), or mainland department numbers such as 75, 69. For one overseas department, use its postcode instead.
Only in postcodepostcodetext
Only return results with this five-digit postcode. Several can be given, separated by commas. A postcode read out of a spreadsheet as a number (1000) is padded back (01000).
Only in commune (INSEE code)citycodetext
Only return results in the commune with this INSEE code: five characters such as 75056 for Paris or 2A004 for Ajaccio. It is not the postcode. Several can be given, separated by commas.
Prefer results near latitudenear_latitudenumber
With 'Prefer results near longitude', ranks results closer to this point higher. It does not exclude anything further away.From -90 to 90.
Prefer results near longitudenear_longitudenumber
The longitude of the point to favour results near.From -180 to 180.

Outputs

countnumber
foundtrue/false
suggestionslist
texttext
Example output
{
  "count": 2,
  "found": true,
  "suggestions": [
    {
      "city": "Saint-Mand\u00e9",
      "in_mainland_france": true,
      "is_address": true,
      "kind": "housenumber",
      "latitude": 48.845726,
      "longitude": 2.424573,
      "map_url": "https://www.openstreetmap.org/?mlat=48.845726&mlon=2.424573#map=18/48.845726/2.424573",
      "name": null,
      "place_types": [],
      "postcode": "94160",
      "postcodes": [
        "94160"
      ],
      "street": "Avenue de Paris",
      "text": "73 Avenue de Paris, 94160 Saint-Mand\u00e9"
    },
    {
      "city": "Saint-Mand\u00e9",
      "in_mainland_france": true,
      "is_address": true,
      "kind": "street",
      "latitude": 48.845698,
      "longitude": 2.420464,
      "map_url": "https://www.openstreetmap.org/?mlat=48.845698&mlon=2.420464#map=18/48.845698/2.420464",
      "name": null,
      "place_types": [],
      "postcode": "94160",
      "postcodes": [
        "94160"
      ],
      "street": "Rue du Parc",
      "text": "Rue du Parc, 94160 Saint-Mand\u00e9"
    }
  ],
  "text": "73 avenue de par"
}

On this page