Sorry, you need to enable JavaScript to visit this website.

Fuzzy Search

The basic default service is 'Fuzzy Search' which handles the most fuzzy of inputs handling any combination of address or poi tokens. This search service is the canonical 'single line search'. The search service is a seamless combination of POI search and geocoding. The service can also be weighted with a contextual position (lat./lon. pair), or fully constrained by a position and radius, or it can be executed more generally without any geo biasing anchor point.

We strongly advise you to use the 'countrySet' parameter to specify only the countries for which your application needs coverage, as the default behavior will be to search the entire world, potentially returning unnecessary results.

E.g.: countrySet=US,MX

Click here for a list of all the countries supported by the Search API engine.

Most Search API queries default to 'maxFuzzyLevel=2' to gain performance and also reduce unusual results. This new default can be overridden as needed per request by passing in the query param maxFuzzyLevel=3 or 4.



GET https://<baseURL>/search/<versionNumber>/search/<query>.<ext>?key=<apiKey>[&typeahead=<typeahead>][&limit=<limit>][&ofs=<ofs>][&countrySet=<countrySet>][&lat=<lat>][&lon=<lon>][&radius=<radius>][&topLeft=<topLeft>][&btmRight=<btmRight>][&language=<language>][&idxSet=<idxSet>][&extendedPostalCodesFor=<extendedPostalCodesFor>][&minFuzzyLevel=<minFuzzyLevel>][&maxFuzzyLevel=<maxFuzzyLevel>][&view=<view>]


The table below describes the parameters that can be used in a request. Required parameters must be used or the call will fail. Optional parameters, which are highlighted with [square brackets], may be used. If there is a default value that will be assumed when an optional parameter is not used, it is shown in the table. The order of request parameters is not important.

Parameter Description Req'd? Type / Values Default value Max value
baseURL Base URL for calling the API. Yes
versionNumber Service version number. The current value is 2. Yes 2

Query string. Must be properly URL encoded.

User can provide latitude and longitude coordinates directly in query. Details can be found here.

Yes String
ext Valid response formats are JSON, JSONP, JS or XML. Yes String
key Your TomTom API Key. Yes String
[typeahead] If the "typeahead" flag is set, the query will be interpreted as a partial input and the search will enter predictive mode. No Boolean false
[limit] Maximum number of responses that will be returned. No Integer 10 100
[ofs] Starting offset of the returned results within the full result set. No Integer 0 1900
[countrySet] Comma separated string of country codes (e.g.: FR, ES). This will limit the search to the specified countries. The choice of view may restrict which countries are available and incompatible combinations will return error 400. No String
[lat] Latitude e.g. lat=37.337 lat./lon. where results should be biased.  
NOTE: supplying a lat/lon without a radius will only bias the search results to that area.
No Float
[lon] Longitude e.g. lon=-121.89 lat./lon. where results should be biased
NOTE: supplying a lat/lon without a radius will only bias the search results to that area.
No Float
[radius] If radius and position are set, the results will be constrained to the defined area. The radius parameter is specified in meters. No Integer
[topLeft] Top left position of the bounding box. This is specified as a comma separated string composed by lat., lon. (e.g.: 37.553,-122.453). 
NOTE: Point-Radius parameters and Bounding box parameters are mutually exclusive, point radius parameters take precendence when both are passed in.
No Position
[btmRight] Bottom right position of the bounding box. This is specified as a comma separated string composed by lat., lon. (e.g.: 37.553,-122.453). 
NOTE: Point-Radius parameters and Bounding box parameters are mutually exclusive, point radius parameters take precendence when both are passed in.
No Position
[language] Language in which search results should be returned. Should be one of supported IETF language tags, case insensitive. When data in specified language is not available for a specific field, default langauge is used. No String
[extendedPostalCodesFor] indexes for which extended postal codes should be included in the results. Available values are described in additional information indexes abbreviation values section.

Value should be a comma separated list of index types (in any order) or "None" for no indexes.
By default extended postal codes are included for all indexes except Geo. Extended postal code lists for geographies can be quite long so they have to be explicitly requested when needed.

Usage examples:

  • extendedPostalCodesFor=POI
  • extendedPostalCodesFor=PAD,Addr,POI
  • extendedPostalCodesFor=None

Extended postal code is returned as an 'extendedPostalCode' property of an address. Availability is region-dependent.

No String
[minFuzzyLevel] Minimum fuzzyness level to be used. No Integer 1 4
[maxFuzzyLevel] Maximum fuzzyness level to be used. No Integer 2 4
[idxSet] A comma separated list of indexes which should be utilized for the search. Item order does not matter. Available values are described in additional information indexes abbreviation values section.

Usage examples:

  • idxSet=POI (search Points Of Interest only)
  • idxSet=PAD,Addr (search addresses only)
No String

[view] Geopolitical View. The context used to resolve handling disputed territories. Views include Unified, along with IN, PK, IL and MA, which are tailored for India, Pakistan, Israel and Morocco, respectively. No String Unified.
IN overrides in India.



For illustrative purposes the example below is neatly indented and includes all possible response fields. Actual responses are more compact and the fields present will vary based on the result type and the data available. See the response field documentation below for more information.

When requesting JSON output the response has the following structure:

    "summary": {
        "query": "pizza",
        "queryType": "NON_NEAR",
        "queryTime": 99,
        "numResults": 10,
        "offset": 0,
        "totalResults": 4427,
        "fuzzyLevel": 1,
        "geoBias": {
            "lat": 36.98844,
            "lon": -121.97483
    "results": []

Each element of the results array is in the format:

    "type": "POI",
    "id": "US/POI/p0/9033556",
    "score": 5,
    "dist": 0,
    "info": "search:ta:840061001865142-US",
    "entityType": "Municipality",
    "poi": {
        "name": "Upper Crust Pizza & Pasta",
        "phone": "+(1)-(831)-4762333",
        "url": "",
        "categories": [
        "classifications": [
                "code": "RESTAURANT",
                "names": [
                        "nameLocale": "en-US",
                        "name": "pizza"
                        "nameLocale": "en-US",
                        "name": "restaurant"
    "address": {
        "streetNumber": "2501",
        "streetName": "Soquel Dr",
        "municipalitySubdivision": "Santa Cruz, Live Oak",
        "municipality": "Santa Cruz, Live Oak",
        "countrySecondarySubdivision": "Santa Cruz",
        "countryTertiarySubdivision": "Santa Cruz",
        "countrySubdivision": "CA",
        "postalCode": "95065",
        "extendedPostalCode": "950652023",
        "countryCode": "US",
        "country": "United States Of America",
        "countryCodeISO3": "USA",
        "freeformAddress": "2501 Soquel Dr, Santa Cruz, CA 95065",
        "countrySubdivisionName": "California"
    "position": {
        "lat": 36.98844,
        "lon": -121.97483
    "viewport": {
        "topLeftPoint": {
            "lat": 36.98934,
            "lon": -121.97596
        "btmRightPoint": {
            "lat": 36.98754,
            "lon": -121.9737
    "entryPoints": [
            "type": "main",
            "position": {
                "lat": 36.98817,
                "lon": -121.97487
    "addressRanges": {
        "rangeLeft": "1 - 3",
        "rangeRight": "2 - 12",
        "from": {
            "lat": 51.16561,
            "lon": 19.48489
        "to": {
            "lat": 51.16545,
            "lon": 19.4863
    "dataSources": {
        "geometry": {
            "id": "00004e4c-3100-3c00-0000-0000685e23c7"

Response fields

The tables below describe all of the fields that can appear in a response. Fields are listed by the response section they belong to and in the order that they appear in the response.

Field Description Type / Values
summary Summary information about the search that was performed. Summary
results Result list, sorted in descending order by score. Result[]
query Query as interpreted by the search engine. String
queryType Response type. * see response types below. String
queryTime Time spent on resolving the query. Integer
numResults Number of Results in the response. Integer
offset Starting offset of the returned Results within the full Result set. Integer
totalResults Total number of Results found. Integer
fuzzyLevel Maximum fuzzy level required to provide Results. Integer
geoBias Position used to bias the Results. LatLon
type Type of Result. One of:

  • POI
  • Street
  • Geography
  • Point Address
  • Address Range
  • Cross Street
id Non-stable id for this Result. String
score Score of the Result. Larger score means that probability that a Result meets query criteria is higher. Double
dist Unit: meters. Double
info Information about original data source of the Result. String
entityType Optional section. Only present if type == Geography. One of:

  • County
  • CountrySubdivision
  • CountrySecondarySubdivision
  • CountryTertiarySubdivision
  • Municipality
  • MunicipalitySubdivision
  • Neighbourhood
  • PostalCodeArea
poi Optional section. Only present if type == POI. Poi
address Structured address for the Result. Address
position Position of the Result. LatLon
viewport A viewport which can be used to display the Result on a map. Viewport
entrypoints List of entry points of the POI. Entrypoint[]
addressRanges Address ranges on a street segment. Available only for Results where Result type is equal to "Address Range". AddressRanges
dataSources Optional section. Reference ids for use with the Additional Data service. DataSources
name Name of the POI. String
phone Telephone number. String
url Website URL. String
categories The list of POI categories.
DEPRECATED1: Use classifications instead.
classifications The list of POI category classifications. Classification[]
code Fixed top level category code. Category Code
names List of category names with locale code. information. Currently only "en-US" locale is returned. Name[]
nameLocale Locale code of this category name. String
name Category name in given locale. String
streetNumber The building number on the street. String
streetName The street name. String
municipalitySubdivision Sub / Super City. String
municipality City / Town. String
countrySecondarySubdivision County. String
countryTertiarySubdivision Named Area. String
countrySubdivision State or Province. String
postalCode Postal Code / Zip Code. String
extendedPostalCode Extended postal code (availability dependent on region). String
countryCode Country. String
country Country name. String
countryCodeISO3 ISO alpha-3 country code. String
freeformAddress An address line formatted according to formatting rules of Result's country of origin or in case of countries it's full country name. String
countrySubdivisionName A full name of a first level of country administrative hierarchy. This field appears only in case countrySubdivision is presented in an abbreviated form. Supported only for USA, Canada and Great Britain. String
topLeftPoint Top left corner of the rectangle. LatLon
btmRightPoint Bottom right corner of the rectangle. LatLon
type Main entry point. One of:

  • main
  • minor
position Position of the entry point. LatLon
rangeLeft An address range on the left side of a street segment (assuming looking from the "from" end toward the "to" end). String
rangeRight An address range on the right side of a street segment (assuming looking from the "from" end toward the "to" end). String
from A beginning point of a street segment. LatLon
to An end point of a street segment. LatLon
geometry Information about the geometric shape of the result. Only present if type == Geography or POI. Geometry
id Pass this as geometryId to the Additional Data service to fetch geometry information for this result. String
lat Latitude. Double
lon Longitude. Double

Response codes

Code Meaning and possible causes
200 OK: the search successfully returned zero or more results.
400 Bad Request: one or more parameters were incorrectly specified.
403 Forbidden: possible causes include:

  • Service requires SSL
  • Not authorized
  • Rate or volume limit exceeded
  • Unknown referer
405 Method Not Allowed: the HTTP method (GET, POST, etc) is not supported for this request.
404/596 Not Found: the HTTP request method (GET, POST, etc) or path is incorrect.
5xx Server Error: the service was unable to process your request. Contact support to resolve the issue.

Response headers

Header Description Value
Access-Control-Allow-Origin Ensures that clients that implement the CORS security model are able to access the response from this service. *
Content-Type Indicates the format of the response, as chosen by the client. Format: type/subtype; charset=utf-8 type/subtype is one of:

  • application/json
  • text/javascript
  • text/xml

Additional information

Coordinates in query

Fuzzy search will also detect if the user has entered coordinates as a query text. In such case, the search will switch to the reverse geocoding mode, looking for entities closest to the specified location. Coordinates in format:

[+-]<LATITUDE>[,; ][one or more space][+-]<LONGITUDE>

can be used together with "radius" parameter (if "radius" parameter is not provided default radius value is equal to 2 km).

  • <LATITUDE> - latitude value in format <value><.><value>. Range: +-90.0.
  • <LONGITUDE> - longitude value in format <value><.><value>. Range: +-180.0.


  • 12.123,14.5672
  • 12.123;14.5672
  • 12.123 14.5672

Indexes abbreviation values

In some cases, list of indexes can be passed as a parameter to query, which should be listed with their abbreviations, available values are:

  • Geo = Geographies - areas on map which represent administrative divison of a land ie. country, state, city.
  • PAD = Point Addresses - points on map where specific address with street name and number can be found in index, ie. Soquel Dr 2501.
  • Addr = Address ranges - for some streets there are address points that are interpolated from the beginning and end of the street, those points are represented as address ranges.
  • Str = Streets - representation of streets on the map.
  • XStr = Cross Streets (intersections) - representations of junctions; places where two streets intersect.
  • POI = Points of Interest - points on map that are worth attention and may be interesting.

1May 1, 2018: The categories response field has been deprecated and will be withdrawn following a 12 month deprecation period. The planned withdrawal date is May 1, 2019.