Overview
Developer Tools
Migration Guides
Travel Time Matrix API
Isochrone API
H3 API
Geohash API
Distance Map API
Routes API
Geocoding API
Additional API Reference
Error Handling
ArcGIS plugin
Alteryx plugin

Migration Guide: TomTom Reachable Range API to TravelTime Time Map Fast API
Copy link

1. Introduction
Copy link

This guide is aimed at helping a migration from the TomTom Calculate Reachable Range function (from the Routing API), to the Time Map Fast endpoint.

It covers the main similarities and differences between the two services, covering Features, Request Details, Response Details, and Error Handling.

Why migrate to TravelTime?
Copy link

  • Exceptional performance
  • Additional public transit, cycling, and walking modes
  • More detailed isochrones
  • Fixed cost and unlimited usage, instead of transactional pricing
  • Permissive caching policy

2. Features Comparison
Copy link

The table below covers the main features of the two services.

TomTom APITravelTime API
Maximum Isoline Size10,000,000 seconds3 hours*
Sync / AsyncSynchronousSynchronous
Transport ModesCar, Truck

In Beta - Taxi, Bus, Van, Motorcycle
Car, Pedestrian, Bicycle, Public Transit
Range TypesTravel time, Distance, Fuel, EnergyTravel time, Distance*
Time of Day ConfigurationAny time of dayPeak and Off Peak options
Response FormatsJSON
Javascript
GeoJSON
JSON
WKT
PricingUsage basedFixed price, unlimited usage
Endpoint PlaygroundN/Aplayground.traveltime.com/isochrones-fast
SupportPaidIncluded in all licences
CachingRestrictedPermitted

*Distance isolines are supported through a separate Distance Map endpoint

3. Request Comparison
Copy link

The sections below cover the main details of the API requests for each service, including endpoint details, authentication, and request structure.

A side-by-side comparison is provided to show how the same one hour driving isochrone can be generated using each service.

Endpoint
Copy link

TomTom APITravelTime API
Base URLapi.tomtom.com/routing/1/calculateReachableRangeapi.traveltimeapp.com/v4/time-map/fast
Primary Request TypeGET
POST
POST*

*TravelTime API supports GET requests through the Time Map endpoint

Authentication
Copy link

TomTom APITravelTime API
Authentication Methodkey in query stringX-Application-Id and X-Api-Key headers
Required HeadersN/AContent-Type: application/json
X-Application-Id: {Your_App_ID}
X-Api-Key: {Your_API_Key}
Optional HeadersAccept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json
Tracking-ID
Accept: application/json
(used to adjust the response format - e.g geoJSON, JSON,
or WKT)

Request Structure
Copy link

The primary difference between the request structure is that the TomTom API uses primarily GET requests, with parameters included in the query string (except for a handful of specific parameters). In contrast, the TravelTime API uses POST requests, with parameters included in the request body.

TomTom APITravelTime API
Batch SupportN/ASupported through an array of
one-to-many or many-to-one searches
Arrival vs DepartureOnly supports departure searches (travelling away from the origin)Determined by using either one_to_many or many_to_one search
Coordinate Inputlatitude, longitudecoords: { lat, lng }
Transport TypetravelMode: car / trucktransportation: { type:
driving+ferry /
cycling+ferry /
walking+ferry /
public_transport
}
Travel Time ConfigurationtimeBudgetInSec
(in seconds)
travel_time
(in seconds)
Time of Day Configurationdepart_at=2025-01-01T00:00:00Zarrival_time_period: weekday_morning
Shape GranularityN/AControlled through:

polygons_filter (remove smaller separated polygons)

level_of_detail (control the granularity of the shape)

no_holes (fill in holes in polygons)

Request Examples
Copy link

The curl examples below both show how to generate a simple one hour driving isochrone departing from a location in New York City.

These requests both include all of the required fields. Both services offer additional optional fields for tailoring the results further.

TomTom API Request:
Copy link

curl -X GET
"https://api.tomtom.com/routing/1/calculateReachableRange/40.72511,-73.99088/json?timeBudgetInSec=3600&travelMode=car&key={Your_API_Key}"

TravelTime API Request:
Copy link

curl -X POST https://api.traveltimeapp.com/v4/time-map/fast \
-H 'Content-Type: application/json' \
-H 'Accept: application/geo+json' \
-H 'X-Application-Id: {YOUR_APP_ID}' \
-H 'X-Api-Key: {YOUR_APP_KEY}' \
-d '{
  "arrival_searches": {
    "one_to_many":[
      {
        "id": "Example",
        "coords": {
          "lat": 40.72511,
          "lng": -73.99088
        },
        "arrival_time_period": "weekday_morning",
        "travel_time": 3600,
        "transportation": {
          "type": "driving"
        }
      }
    ]
  }
}'

4. Response Comparison
Copy link

The sections below cover the main details of the API response for each service.

A side-by-side comparison is provided to show how the same one hour driving isochrone is returned using each service.

Structure Differences
Copy link

TomTom APITravelTime API
Response FormatsJSON
JSONP
JSON
GeoJSON
WKT
Support for HolesN/AJSON - handled by holes arrays
GeoJSON - handled natively
WKT - handled natively
Support for Multiple Disconnected PolygonsN/AJSON - handled by multiple shell arrays
GeoJSON - handled natively
WKT - handled natively
Isochrone Style PropertiesN/AN/A

Response Examples
Copy link

The response examples below both show a one hour driving isochrone from a location in New York City.

For the TravelTime response, geoJSON is used as the response format, but other formats are available (JSON, WKT).

TomTom API Response:
Copy link

{
   "formatVersion": "0.0.1",
   "reachableRange": {
       "center": {
           "latitude": 40.72514,
           "longitude": -73.99086
       },
       "boundary": [
           {
               "latitude": 41.31908,
               "longitude": -74.06374
           },
           {
               "latitude": 41.32552,
               "longitude": -74.11235
           },
           {
               "latitude": 41.30111,
               "longitude": -74.13399
           },
           {
               "latitude": 41.21247,
               "longitude": -74.23388
           },
           ...
           {
               "latitude": 41.34374,
               "longitude": -73.97576
           }
       ]
   }
}

TravelTime API Response:
Copy link

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "MultiPolygon",
                "coordinates": [
                    [
                        [
                            [
                                -74.66676814504899,
                                40.653876852826215
                            ],
                            [
                                -74.66441676905379,
                                40.65567800810095
                            ],
                            [
                                -74.66206539305858,
                                40.653876852826215
                            ],
                            [
                                -74.65971401706338,
                                40.65567800810095
                            ],
                            [
                                -74.65736264106818,
                                40.65567800810095
                            ],
                            ...
                            [
                                -73.28063199587632,
                                40.849302200134844
                            ]
                        ]
                    ]
                ]
            },
            "properties": {
                "search_id": "Example"
            }
        }
    ]
}

5. Error Handling
Copy link

Both the TravelTIme API and the TomTom API use standard http status codes, such as 429 Too Many Requests and 500 Internal Server Error.

The table below details the main differences in the structures of the error response for each service.

TomTom APITravelTime API
StructudeNested detailedErrorNested additional_info
HTTP Status CodeExcluded from JSON bodyIncluded in JSON body
Root ElementsformatVersion
detailedError
http_status
error_code
description
documentation_link
additional_info

Error Message Examples
Copy link

The response examples below show the error response for a poorly formatted JSON request, with http error code 400.

TomTom API Response:
Copy link

{
   "formatVersion": "0.0.1",
   "detailedError": {
       "message": "Invalid value for timeBudgetInSec: 3600s",
       "code": "BAD_INPUT"
   }
}

TravelTime API Response:
Copy link

{
   "http_status": 400,
   "error_code": 3,
   "description": "Failed to parse json - syntax error",
   "documentation_link": "https://docs.traveltime.com/reference/error-codes",
   "additional_info": {
       "syntax_errors": [
           "Unexpected character ('\"' (code 34)): was expecting comma to separate Object entries"
       ]
   }
}

6. Next Steps
Copy link

If you are looking to migrate from using the TomTom Routing API to TravelTime, you’ll need to first sign up for an API key.

Sign up

To help you get up and running, check out some of the links to more resources below.