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

Routed Filter


This endpoint comes handy when a list of POIs are already available and their drive distances or drive times need to be calculated from any location with a given heading.

To send the POI list you can use a POST/GET request with the JSON as a string value for 'poiList' parameter, POST is recommended for large datasets e.g.: 

GET

?poiList=[{"poi":{"name":"Cleaire Advanced Emission Controls"},"address":{"freeformAddress":"7220 Trade St, San Diego, CA 92121"},"position":{"lat":"37.83274","lon":"-122.27631"}}]

POST

{
  "poiList":[
    {
      "poi": {
        "name": "University of California San Diego",
      },
      "address": {
        "freeformAddress": "9500 Gilman Dr, San Diego, CA 92037",
      },
      "position": {
        "lat": 32.87349,
        "lon": -117.2378
      }
    },
    {
      "poi":{
        "name":"Cleaire Advanced Emission Controls"
      },
      "address":{
        "freeformAddress":"7220 Trade St, San Diego, CA 92121"
      },
      "position":{
        "lat":"37.83274",
        "lon":"-122.27631"
      }
    }
  ]
}

Request

Format

GET https://<baseURL>/search/<versionNumber>/routedFilter/<position>/<heading>.<ext>?key=<apiKey>[&routingTimeout=<routingTimeout>]

Parameters

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 api.tomtom.com
versionNumber Service version number. The current value is 2. Yes 2
position Lat./lon.  Yes Position
heading A person or vehicle is facing, usually similar to its course. Degrees measured clockwise from north. Yes Decimal
ext Valid response formats are JSON, JSONP, JS or XML. Yes String
poiList List of POIs to filter, format is as in the example above.
The only required attribute of a POI is position, everything else is optional and will be echoed back when passed in.
Yes JSON Object
key Your TomTom API key. Yes String
[routingTimeout] Only return results that return from routing engine within this limit. No Integer (milliseconds) 4000

Response

Format

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": {
        "numResults": 1,
        "queryTime": 176
    },
    "results": []
}

Each element of the results array is in the format:

{
    "poi": {
        "name": "Upper Crust Pizza & Pasta"
    },
    "address": {
        "freeformAddress": "2501 Soquel Dr, Santa Cruz, CA 95065"
    },
    "position": {
        "lat": 36.98844,
        "lon": -121.97483
    },
    "route": {
        "routeGeometry": [
            "36.98796, -121.97286",
            "36.98801, -121.97337",
            "36.98803, -121.97364",
            "36.9881, -121.97426",
            "36.98814, -121.97464",
            "36.98816, -121.97475",
            "36.9882, -121.97511",
            "36.98847, -121.97506"
        ],
        "routeInstructions": {
            "list": [
                {
                    "Instruction": "Proceed West on Soquel Dr",
                    "Point": "36.98796,-121.97286",
                    "description": "route maneuver 1",
                    "distance": {
                        "value": 0,
                        "uom": "MI"
                    },
                    "duration": "P0DT0H0M0S",
                    "waitTime": "P0DT0H0M0S",
                    "turnAngle": 0,
                    "turn": "Proceed",
                    "tour": 0
                },
                {
                    "Instruction": "Turn right onto Winkle Ave",
                    "Point": "36.98820,-121.97511",
                    "description": "route maneuver 2",
                    "distance": {
                        "value": 0.1249,
                        "uom": "MI"
                    },
                    "duration": "P0DT0H0M24S",
                    "waitTime": "P0DT0H0M0S",
                    "turnAngle": 89.9,
                    "turn": "Turn Right",
                    "tour": 0
                },
                {
                    "Instruction": "Arrive at destination",
                    "Point": "36.98847,-121.97506",
                    "description": "route maneuver 3",
                    "distance": {
                        "value": 0.0187,
                        "uom": "MI"
                    },
                    "duration": "P0DT0H0M7S",
                    "waitTime": "P0DT0H0M0S",
                    "turnAngle": 0,
                    "tour": 0,
                    "sideOfStreet": "Right"
                }
            ],
            "language": "english"
        },
        "routeSummary": {
            "boundingBox": {
                "topLeftPoint": "36.98846999999999, -121.97511",
                "btmRightPoint": "36.987960000000015, -121.97286000000001"
            },
            "totalDistance": {
                "value": 0.1436,
                "uom": "MI"
            },
            "totalTime": "P0DT0H0M31S",
            "totalTravelTime": "P0DT0H0M31S",
            "totalWaitTime": "P0DT0H0M0S"
        }
    }
}

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
Response
summary Summary information about the search that was performed. Summary
results Result list, sorted in descending order by score. Result[]
Summary
numResults Number of Results in the response. Integer
queryTime Time spent on resolving the query. Integer
Result
poi Optional section. Only present if type == POI. Poi
address Structured address for the Result. Address
position Position of the Result. LatLon
route A route from the query position and heading to this Result. Route
Poi
name Name of the POI. String
Address
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
Route
routeGeometry An ordered list of strings each in the form "latitude, longitude", denoting points along the route. String[]
routeInstructions Human readable guidance on how to follow the route. RouteInstructions
routeSummary Summary information about the route as a whole. RouteSummary
RouteInstructions
list An ordered list of human readable guidance instructions. RouteInstruction[]
language The language that the human readable instructions are given in. english
RouteInstruction
Instruction A human readable instruction, e.g. Turn left onto ... String
Point The "latitude,longitude" location at which the instructions should be executed. String
description A string describing the instruction, currently in the form "route maneuver N" with N being the 1-based index into the list of instructions. String
distance Distance from preceding maneuver. MeasuredUnit
duration The expected time to complete this maneuver. String
waitTime Time spent waiting at intersections. String
turnAngle The angle of the turn in the maneuver. 0.0° is straight ahead. 90.0° is a right angle turn to the right. 270.0° is a right angle turn to the left, and so on. Double
turn The procedure to complete this maneuver. Typically this is an instruction such as "Turn right". String
tour The number of waypoints passed thus far. Integer
RouteSummary
boundingBox A box that minimally encloses the route. BoundingBox
totalDistance The sum of the RouteInstruction distances. MeasuredUnit
totalTime The sum of the RouteInstruction durations. String
totalTravelTime The sum of the RouteInstruction durations. String
totalWaitTime The sum of the RouteInstruction durations, excluding the waitTimes. String
BoundingBox
topLeftPoint Top-left "latitude, longitude" coordinate of the bounding box. String
btmRightPoint Bottom right "latitude, longitude" coordinate of the bounding box. String
LatLon
lat Latitude. Double
lon Longitude. Double
MeasuredUnit
value A distance in unit uom. Double
uom Indicates that value is expressed in miles. MI

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