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

Along Route Search

 

Service version: 2.0
Last edit: 2019.02.01

On this page

Purpose

The Search Along Route endpoint allows you to perform a fuzzy search for POIs along a specified route.

  • This search is constrained by specifying detour time limiting measure.
  • To send the route points you will use a POST request whose body will contain the route parameter in JSON format.
  • The minimum number of route points is 2.

It is possible that the original route will be altered, and some of its points may be skipped.

  • If the route that passes through the found point is faster than the original one, the detour time value is negative.
  • POST requests require the "Content-Type" header to be set to "application/json".

Example POST body (JSON)

{
  "route": {
      "points": [{
        "lat": 37.7524152343544,
        "lon":-122.43576049804686
    },
    {
        "lat": 37.70660472542312,
        "lon":-122.43301391601562
    },
    {
        "lat": 37.712059855877314,
        "lon":-122.36434936523438
    },
    {
        "lat": 37.75350561243041,
        "lon":-122.37396240234374
    }]
  }
}

▲ Return to top

Run this endpoint

You can easily run this and other endpoints.

  1. Go to the TomTom API Explorer page.
  2. Click an endpoint.
    1. Click Try it out.
    2. Enter/select all required parameter values and any optional parameter values.
    3. At the bottom of the form, click Execute.
  3. Review the Response.

Request data

URL format

HTTPS Method: POST

For ease of viewing and identification:

  • Required constants and parameters are shown in bold text.
  • Optional parameters are shown in plain text.
https://api.tomtom.com/search/2/searchAlongRoute/pizza.json?maxDetourTime=1200&key=*****&limit=1

curl command

curl -v -XPOST -H "Content-type: application/json" -d
'{
  "route": {
      "points": [{
        "lat": 37.7524152343544,
        "lon":-122.43576049804686
    },
    {
        "lat": 37.70660472542312,
        "lon":-122.43301391601562
    },
    {
        "lat": 37.712059855877314,
        "lon":-122.36434936523438
    },
    {
        "lat": 37.75350561243041,
        "lon":-122.37396240234374
    }]
  }
}'
'https://api.tomtom.com/search/2/searchAlongRoute/pizza.json?maxDetourTime=1200&key=*****&limit=1'

▲ Return to top

Request parameters

The following table describes the parameters that can be used in a Request.

  • Required parameters must be used or the call will fail.
  • Optional parameters may be used.
  • A parameter's data type is beneath its name.
  • 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.
Required parameters
Parameter Description
baseURL
string
Base URL for calling the API:
Value: api.tomtom.com
versionNumber
integer
Service version number.
Value: The current value is 2.
query
string
The query string.

  • It must be properly URL-encoded.
  • You can provide latitude and longitude coordinates directly in a query.
  • Details can be found at Coordinates.

Value: A properly URL-encoded query string.

ext
string
A valid response format.
Values: JSON, JSONP, JS, or XML.
key
string
An API Key valid for the requested service.
Value: Your valid API Key.
maxDetourTime
integer
Maximum detour time.
Maximum value: 3600 seconds.
Optional parameters
Parameter Description
limit
integer
The maximum number of responses that will be returned.
Default value: 10
Maximum value: 20

▲ Return to top

Response data

Response body

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 following Response fields section for more information.

When requesting JSON output, the Response has the following structure:

{
    "summary": {
        "query": "pizza",
        "queryType": "NON_NEAR",
        "queryTime": 137,
        "numResults": 1,
        "offset": 0,
        "totalResults": 1,
        "fuzzyLevel": 1
    },
    "results": []
}

Each element of the results array is in the following format:

{
    "type": "POI",
    "id": "US/POI/p0/9033556",
    "score": 4.999,
    "dist": 32.32909635789851,
    "info": "search:ta:840061001865142-US",
    "poi": {
        "name": "Upper Crust Pizza & Pasta",
        "phone": "+(1)-(831)-4762333",
        "url": "www.uppercrustsc.com/",
        "categories": [
            "pizza",
            "restaurant"
        ],
        "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
            }
        }
    ],
    "detourTime": 113,
    "dataSources": {
        "chargingAvailability": {
           "id": "442009000132285"
        },
        "geometry": {
            "id": "00004e4c-3100-3c00-0000-0000685e23c7"
        }
    }
}

▲ Return to top

Response fields

The following tables 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.

Primary fields
Field Description
summary{}
object
Summary information about the search that was performed.
results[]
array
The result list, sorted in descending order by score.
summary{} object
Field Description
query
string
The query as interpreted by the search engine.
queryType
string
The Response type. See the following Response types.
queryTime
integer
Time spent on resolving the query.
numResults
integer
The number of Results in the response.
offset
integer
The starting offset of the returned Results within the full Result set.
totalResults
integer
The total number of Results found.
fuzzyLevel
integer
The maximum fuzzy level required to provide Results.
results[] array
Field Description
type
string
The type of Result. One of:

  • POI
  • Street
  • Geography
  • Point Address
  • Address Range
  • Cross Street
id
string
The non-stable unique id for this Result.
score
double
The score of the Result. A larger score means there is a probability that a Result meeting the query criteria is higher.
dist
double
Unit: meters.
info
string
Information about the original data source of the Result.
poi
object
Optional section. Only present if type = = POI.
address
object
Structured address for the Result.
position
object
Position of the Result: Latitude, Longitude
viewport
object
A viewport which can be used to display the Result on a map.
entrypoints
array
List of entry points of the POI (Point of Interest).
detourTime
integer
Detour time in seconds.
dataSources
object
Optional section. Reference ids for use with the Additional Data service.
poi{} object
Field Description
name
string
Name of the POI.
phone
string
Telephone number.
url
string
Website URL.
categories
array
Deprecated
The list of POI categories.

  • Use the classifications[] array instead.
  • See the following field.

May 1, 2018:

  • The categories response field has been deprecated.
  • It will be withdrawn following a 12 month deprecation period.
  • The planned withdrawal date is May 1, 2019.
classifications
array
The list of POI category classifications.
classifications{} object
Field Description
code
string
Fixed top-level category code. See Category Codes
names
array
List of category names with locale code information. Currently only the en-US locale is returned.
names[] array
Field Description
nameLocale
string
The locale code of this category name.
name
string
Category name in the given locale.
address{} object
Field Description
streetNumber
string
The number of the building on the street.
streetName
string
The street name.
municipalitySubdivision
string
Sub / Super City
municipality
string
City / Town
countrySecondarySubdivision
string
Country
countryTertiarySubdivision
string
Named Area
countrySubdivision
string
State or Province
postalCode
string
Postal Code / Zip Code
extendedPostalCode
string
Extended postal code (availability dependent on region)
countryCode
string
Country
country
string
Country name
countryCodeISO3
string
ISO alpha-3 country code
freeformAddress
string
An address line formatted according to the formatting rules of a Result's country of origin, or in case of countries, its full country name.
countrySubdivisionName
string
The full name of the first level of a country's administrative hierarchy.

  • This field appears only in case countrySubdivision is presented in an abbreviated form.
  • Supported only for USA, Canada, and Great Britain.
viewport{} object
Field Description
topLeftPoint
string
Top-left corner of the rectangle: LatLon
btmRightPoint
string
Bottom-right corner of the rectangle: LatLon
entryPoints[] array
Field Description
type
string
The main entry point. One of:

  • main
  • minor
position
string
Position of the entry point: Latitude, Longitude
dataSources {} object
Field Description
geometry
object
Information about the geometric shape of the result. Only present if type == Geography or POI.
charging availability
object
Information about the charging stations availability.
Only present if type == POI. Charging Availability
geometry
Field Description
id
string
Pass this as geometryId to the Additional Data service
to fetch geometry information for this result.
charging availability
Field Description
id
string
Pass this as chargingAvailabilityId to the Additional Data service
to fetch charging availability information for this result.

▲ Return to top

HTTP Response codes

Code Meaning & 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 server was unable to process your Request. Contact support to resolve the issue.

▲ Return to top

Response headers

The following table contains Response headers sent back from an API server.

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

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

▲ Return to top