Skip to content
Last updated

πŸ“– Geocoding API – Parameters Overview

The Geocoding API accepts several parameters that control how the address lookup is performed and how results are returned.
They fall into two categories: mandatory (at least one must be present) and optional.


βœ… Mandatory

  • address
    Defines the postal address to geocode. It can contain fields such as country, city, street, postalCode, etc.
    πŸ‘‰ At least country or countryCode, or alternatively a boundingBox, must be provided.

  • boundingBox
    Defines a rectangular area (in WGS84 coordinates) that restricts the search. Useful when the same address exists in multiple regions.


βš™οΈ Optional

  • assetSearchType
    Defines the type of object to search for. Possible values: CITY_CENTER, OBJECT, POI, ROAD.

  • geoserver
    Name of the geoserver to use. Example: here, osm.

  • language
    Language code (ISO 639-1, 2 letters) for the address lookup.
    Special value: "IC" β†’ case-insensitive search by country code (ISO-3166 Alpha-2 or Alpha-3).

  • maximumResults
    Maximum number of results returned by the server. Type: int.

  • searchType
    Controls how the input string is matched. Possible values:

    • CONTAINS β†’ pattern must be contained in the results.
    • FUZZY β†’ fuzzy matching (typos tolerated).
    • KEY_SEARCH β†’ search by unique identifiers.
    • STRICT β†’ exact match only.
    • STRICT_BEGINNING β†’ result must start with the pattern.
    • WORD_BEGINNING β†’ one word must begin with the pattern.

πŸ“¦ Example (overview)

{
  "geoserver": "osm",
  "address": {
    "country": "France",
    "city": "Paris",
    "street": "villa des pyrΓ©nΓ©es"
  },
  "boundingBox": {
    "minLat": 48.80,
    "minLon": 2.25,
    "maxLat": 48.90,
    "maxLon": 2.45
  },
  "assetSearchType": "POI",
  "searchType": "FUZZY",
  "maximumResults": 3,
  "language": "fr"
}

➑️ This request searches for β€œVilla des PyrΓ©nΓ©es, Paris” within the specified bounding box, returning up to 3 results in French, using fuzzy matching.


πŸ“ BoundingBox

βœ… Use case Limit the geocoding search to a specific area (e.g. a city or trip corridor), to avoid irrelevant results from other regions.

πŸ’‘ What it does The service only returns addresses inside the defined rectangle (WGS84 coordinates).

πŸ”§ How to enable Add the boundingBox field in the request body with 4 coordinates: maxLat, maxLon, minLat, minLon.

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "city": "Paris",
    "street": "rue de la paix"
  },
  "boundingBox": {
    "maxLat": 48.95,
    "maxLon": 2.50,
    "minLat": 48.80,
    "minLon": 2.25
  },
  "language": "fr",
  "maximumResult": 3
}

πŸ“€ Response

{
  "extent": {
    "minLon": 2.33029,
    "minLat": 48.86834,
    "maxLon": 2.33227,
    "maxLat": 48.87025
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": 2.33029,
        "minLat": 48.86834,
        "maxLon": 2.33227,
        "maxLat": 48.87025
      },
      "coordinate": {
        "lon": 2.33045,
        "lat": 48.8685
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Île-de-France",
        "county": "Paris",
        "city": "Paris",
        "district": "Paris 2e Arrondissement",
        "postalCode": "75002",
        "street": "Rue de la Paix"
      },
      "postalAddressClassType": "ROAD_TERTIARY",
      "postalAddressClassId": 4304,
      "postalAddressExactStreeNumber": false,
      "angle": -147,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 1,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.75,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    }
  ],
  "maximunResult": 1
}

🏠 Address

βœ… Use case
Provide a postal address (country, city, street, etc.) that you want to convert into geographical coordinates.

πŸ’‘ What it does
The service parses the given address fields and returns one or more matching locations with longitude/latitude coordinates.

πŸ”§ How to enable
Include the address object in the request body.
You can specify any combination of fields: country, countryCode, city, district, postalCode, street, streetNumber, etc.

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "country": "France",
    "city": "Paris",
    "street": "Rue de Rivoli",
    "streetNumber": "99"
  },
  "language": "fr",
  "maximumResult": 1
}

Response

{
  "extent": {
    "minLon": 2.32341,
    "minLat": 48.85852,
    "maxLon": 2.3482,
    "maxLat": 48.86637
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": 2.32341,
        "minLat": 48.85852,
        "maxLon": 2.3482,
        "maxLat": 48.86637
      },
      "coordinate": {
        "lon": 2.33491,
        "lat": 48.86284
      },
      "exactCoordinate": {
        "lon": 2.33482,
        "lat": 48.86273
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Île-de-France",
        "county": "Paris",
        "city": "Paris",
        "district": "Paris 1er Arrondissement",
        "postalCode": "75001",
        "street": "Rue de Rivoli",
        "streetNumber": "99"
      },
      "postalAddressClassType": "ROAD_TERTIARY",
      "postalAddressClassId": 4304,
      "postalAddressExactStreeNumber": true,
      "angle": 117,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 1,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.75,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 1,
      "segmentId": 0
    }
  ],
  "maximunResult": 1
}

🌐 Language

βœ… Use case
Control the language used for address lookup and returned results (street names, city names, etc.).

πŸ’‘ What it does
If the requested language is available, the response will return the address in that language.
If not, the default language of the geoserver will be used.
Special value "IC" allows case-insensitive search by ISO country codes.

πŸ”§ How to enable
Add the language field in the request body with an ISO 639-1 2-letter code (e.g. fr, en, de).

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "country": "Germany",
    "city": "Munich",
    "street": "Marienplatz"
  },
  "language": "de",
  "maximumResult": 1
}

Response

{
  "extent": {
    "minLon": -73.26347,
    "minLat": 59.77727,
    "maxLon": -11.31233,
    "maxLat": 83.62743
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": -73.26347,
        "minLat": 59.77727,
        "maxLon": -11.31233,
        "maxLat": 83.62743
      },
      "coordinate": {
        "lon": -42.2879,
        "lat": 71.70235
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "GRL",
        "country": "Greenland"
      },
      "postalAddressClassType": "COUNTRY",
      "postalAddressClassId": 1111,
      "postalAddressExactStreeNumber": false,
      "angle": 0,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 0.6,
      "countryRelevanceScore": 0.6,
      "cityRelevanceScore": 1,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    }
  ],
  "maximunResult": 1
}

πŸ” searchType

βœ… Use case
Control the matching strategy used when searching for addresses. Useful to handle typos, partial inputs, or strict searches.

πŸ’‘ What it does
Determines how the service compares the input text with stored addresses:

  • CONTAINS β†’ match if the input is contained in the address.
  • FUZZY β†’ allows typos or misspellings (fuzzy search).
  • KEY_SEARCH β†’ search by key identifiers (IDs).
  • STRICT β†’ exact match only.
  • STRICT_BEGINNING β†’ match must start with the input string.
  • WORD_BEGINNING β†’ match if one word begins with the input (separators: space, -, /).

πŸ”§ How to enable
Add the searchType field in the request body with one of the supported values.

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "country": "France",
    "city": "Paris",
    "street": "villa des pyrenes"
  },
  "searchType": "FUZZY",
  "maximumResult": 2,
  "language": "fr"
}

Response

{
  "extent": {
    "minLon": 2.40518,
    "minLat": 48.8533,
    "maxLon": 2.40587,
    "maxLat": 48.85351
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": 2.40518,
        "minLat": 48.8533,
        "maxLon": 2.40587,
        "maxLat": 48.85351
      },
      "coordinate": {
        "lon": 2.40552,
        "lat": 48.85342
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Île-de-France",
        "county": "Paris",
        "city": "Paris",
        "district": "Paris 20e Arrondissement",
        "postalCode": "75020",
        "street": "Villa des PyrΓ©nΓ©es"
      },
      "postalAddressClassType": "ROAD_FOURTH",
      "postalAddressClassId": 4048,
      "postalAddressExactStreeNumber": false,
      "angle": 62,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 0.96,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.75,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 0.96,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    },
    {
      "coordinate": {
        "lon": 2.33936,
        "lat": 48.85113
      },
      "exactCoordinate": {
        "lon": 2.33939,
        "lat": 48.85114
      },
      "distanceFromRequest": 2.46,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Île-de-France",
        "county": "Paris",
        "city": "Paris",
        "district": "Paris 6e Arrondissement",
        "postalCode": "75006",
        "roadNumber": "",
        "street": "Villa des Princes, Rue Monsieur le Prince",
        "streetNumber": "19",
        "oppositeStreetNumber": "10"
      },
      "postalAddressClassType": "HOTEL_MOTEL",
      "postalAddressClassId": 7314,
      "postalAddressExactStreeNumber": false,
      "angle": -27,
      "administrativeSpeedLimit": 30,
      "relevanceScore": 0.87,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.75,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 0.87,
      "streetNumberRelevanceScore": 0,
      "geoElementTypes": [
        "ROAD",
        "FOURTH_ROAD",
        "DISTRICT",
        "CITY",
        "COUNTY",
        "STATE",
        "COUNTRY"
      ],
      "segmentId": 0
    }
  ],
  "maximunResult": 2
}

πŸ”’ maximumResults

βœ… Use case
Limit the number of results returned by the geocoding request.

πŸ’‘ What it does
The service will return at most N addresses matching the search.
This helps avoid long responses and keeps only the most relevant results.

πŸ”§ How to enable
Add the maximumResults field in the request body with an integer value.

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "country": "France",
    "city": "Paris",
    "street": "Rue de Rivoli"
  },
  "maximumResults": 3,
  "language": "fr"
}

Response

{
  "extent": {
    "minLon": 2.32341,
    "minLat": 48.85504,
    "maxLon": 2.36171,
    "maxLat": 48.86637
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": 2.32341,
        "minLat": 48.85852,
        "maxLon": 2.3482,
        "maxLat": 48.86637
      },
      "coordinate": {
        "lon": 2.3482,
        "lat": 48.85852
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Île-de-France",
        "county": "Paris",
        "city": "Paris",
        "district": "Paris 1er Arrondissement",
        "postalCode": "75001",
        "street": "Rue de Rivoli"
      },
      "postalAddressClassType": "ROAD_TERTIARY",
      "postalAddressClassId": 4304,
      "postalAddressExactStreeNumber": false,
      "angle": 117,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 1,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.75,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    },
    {
      "boundingBox": {
        "minLon": 2.3482,
        "minLat": 48.85504,
        "maxLon": 2.36171,
        "maxLat": 48.85852
      },
      "coordinate": {
        "lon": 2.35931,
        "lat": 48.85562
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Île-de-France",
        "county": "Paris",
        "city": "Paris",
        "district": "Paris 4e Arrondissement",
        "postalCode": "75004",
        "street": "Rue de Rivoli"
      },
      "postalAddressClassType": "ROAD_FOURTH",
      "postalAddressClassId": 4048,
      "postalAddressExactStreeNumber": false,
      "angle": 110,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 1,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.75,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    }
  ],
  "maximunResult": 2
}

🏷️ assetSearchType

βœ… Use case
Refine the geocoding search to target a specific type of asset (e.g. city center, road, POI).

πŸ’‘ What it does
The service adjusts the results depending on the selected asset type:

  • CITY_CENTER β†’ returns the central point of a city.
  • OBJECT β†’ returns generic objects (buildings, addresses).
  • POI β†’ returns points of interest (restaurants, landmarks, etc.).
  • ROAD β†’ returns road segments or streets.

πŸ”§ How to enable
Add the assetSearchType field in the request body with one of the available values.

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "country": "France",
    "city": "Nice"
  },
  "assetSearchType": "CITY_CENTER",
  "maximumResults": 1,
  "language": "fr"
}

Response

{
  "extent": {
    "minLon": 7.18193,
    "minLat": 43.64566,
    "maxLon": 7.32309,
    "maxLat": 43.76084
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": 7.18193,
        "minLat": 43.64566,
        "maxLon": 7.32309,
        "maxLat": 43.76084
      },
      "coordinate": {
        "lon": 7.27768,
        "lat": 43.70032
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "FRA",
        "country": "France",
        "state": "Provence-Alpes-CΓ΄te d'Azur",
        "county": "Alpes-Maritimes",
        "city": "Nice"
      },
      "postalAddressClassType": "ORDRE_8_AREA",
      "postalAddressClassId": 1119,
      "postalAddressExactStreeNumber": false,
      "angle": 0,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 1,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 1,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    }
  ],
  "maximunResult": 1
}

🌍 geoserver

βœ… Use case
Select the geographical database (geoserver) to be used for the geocoding request.

πŸ’‘ What it does
The service queries the chosen geoserver (e.g. here, osm) to return coordinates for the provided address.
Different geoservers may give different results depending on their coverage and data quality.

πŸ”§ How to enable
Add the geoserver field in the request body with the desired geoserver name as a string.

πŸ“¦ Example

{
  "geoserver": "osm",
  "address": {
    "country": "Italy",
    "city": "Rome",
    "street": "Via del Corso"
  },
  "geoserver": "osm",
  "maximumResults": 1,
  "language": "en"
}

Response

{
  "extent": {
    "minLon": 12.47651,
    "minLat": 41.89668,
    "maxLon": 12.48222,
    "maxLat": 41.91031
  },
  "elements": [
    {
      "boundingBox": {
        "minLon": 12.47651,
        "minLat": 41.89668,
        "maxLon": 12.48222,
        "maxLat": 41.91031
      },
      "coordinate": {
        "lon": 12.47675,
        "lat": 41.90975
      },
      "distanceFromRequest": 0,
      "postalAddress": {
        "countryCode": "ITA",
        "country": "Italy",
        "state": "Lazio",
        "county": "Roma",
        "city": "Rome",
        "district": "Municipio Roma I",
        "street": "Via del Corso"
      },
      "postalAddressClassType": "ROAD_FOURTH_PEDESTRIAN",
      "postalAddressClassId": 4000,
      "postalAddressExactStreeNumber": false,
      "angle": 0,
      "administrativeSpeedLimit": 0,
      "relevanceScore": 1,
      "countryRelevanceScore": 1,
      "cityRelevanceScore": 0.4,
      "postalCodeRelevanceScore": 1,
      "streetRelevanceScore": 1,
      "streetNumberRelevanceScore": 0,
      "segmentId": 0
    }
  ],
  "maximunResult": 1
}