search icon
Overview
Developer Tools
Travel Time Matrix API
Isochrone API
H3 API
Geohash API
v4/geohash/fast
Endpoint Reference
v4/geohash
Endpoint Reference
Distance Map API
Routes API
Geocoding API
Additional API Reference
Error Handling
ArcGIS plugin
Alteryx plugin
TravelTime.comchevronDocs

Migration Guide: HERE Isoline Routing API v8 to TravelTime Time Map Fast API

1. Introduction

This guide is aimed at helping a migration from the Isoline Routing API (v8) from HERE, 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.

For the purposes of this comparison, it is assumed that requests to the HERE Isoline Routing API are using the recommended GET method. POST requests are also available, but only a limited number of parameters can be used in the request body.

Why migrate to TravelTime?

  • Exceptional performance
  • Scaling to any size of application
  • Support for public transit
  • Fixed cost and unlimited usage, instead of transactional pricing
  • Permissive caching policy

2. Features Comparison

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

FeatureHERE APITravelTime API
Maximum Isoline Size9 hours3 hours*
Sync / AsyncSynchronousSynchronous
Transport ModesCar, Truck, Pedestrian, Taxi, ScooterCar, Pedestrian, Bicycle, Public Transit
Range TypesTravel time, Distance, ConsumptionTravel time, Distance**
Time of Day ConfigurationAny time of dayPeak and Off Peak options
Response FormatsEncoded polylineJSON
GeoJSON
WKT
Endpoint PlaygroundN/Aplayground.traveltime.com/isochrones-fast
SupportPaidIncluded in all licences
CachingRestrictedPermitted

*Higher travel times available through the Time Map endpoint

**Distance isolines are supported through a separate Distance Map endpoint

3. Request Comparison

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

FeatureHERE APITravelTime API
Base URLisoline.router.hereapi.com/v8/isolinesapi.traveltimeapp.com/v4/time-map/fast
API VersionIncluded in URL path (/v8)Included in URL path (/v4)
Primary Request Type*GETPOST

* HERE API supports POST requests, but with a limited number of parameters able to go in the request body

*TravelTime API supports GET requests through the Time Map endpoint

Authentication

FeatureHERE APITravelTime API
Authentication MethodapiKey in query string

OR

Bearer token (JWT)
X-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 HeadersX-Request-ID
(used to track a request or a group of requests)
Accept: application/json
(used to adjust the response format - e.g geoJSON, or WKT)

Request Structure

The primary difference between the request structure is that the HERE API uses GET requests, with parameters included in the query string, while the TravelTime API uses POST requests, with parameters included in the request body.

FeatureHERE APITravelTime API
Batch SupportLimited to just multiple range valuesSupported through an array of
one-to-many or many-to-one searches
Arrival vs DepartureDetermined by using either origin or destination parameterDetermined by using either one_to_many or many_to_one search
Coordinate Inputorigin=lat,lng

OR

destination=lat,lng
coords: { lat, lng }
Transport TypetransportMode=
car /
truck /
pedestrian /
taxi /
scooter
transportation: { type:
driving+ferry /
cycling+ferry /
walking+ferry /
public_transport
}
Time of Day ConfigurationdepartureTime=2025-01-01T00:00:00

OR

arrivalTime=2025-01-01T00:00:00
arrival_time_period: weekday_morning
Travel Time Configurationrange[values]
&range[type]=time
(in seconds)
travel_time
(in seconds)
Routing ModeroutingMode=
fast /
short
N/A (routes are always optimised for the fastest)
Shape GranularityControlled through:

shape[maxPoints]

optimizeFor
(both control the granularity of the shape)
Controlled 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

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.

HERE Isoline Routing API Request:


curl -gX GET 'https://isoline.router.hereapi.com/v8/isolines?'\
'transportMode=car&'\
'origin=40.72511,-73.99088&'\
'range[type]=time&'\
'range[values]=3600&'\
'apiKey={Your_API_Key}'

TravelTime API Request:

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

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

FeatureHERE APITravelTime API
Response FormatsEncoded polylineJSON
GeoJSON
WKT
Decoding RequiredYesNo
Support for HolesHandled by inner arrayJSON - handled by holes arrays
GeoJSON - handled natively
WKT - handled natively
Support for Multiple Disconnected PolygonsNot supportedJSON - handled by multiple shell arrays
GeoJSON - handled natively
WKT - handled natively

Response Examples

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).

HERE Isoline Routing API Response:

{
   "departure": {
       "time": "2025-05-01T07:31:54-04:00",
       "place": {
           "type": "place",
           "location": {
               "lat": 40.7251271,
               "lng": -73.9908676
           },
           "originalLocation": {
               "lat": 40.7251099,
               "lng": -73.99088
           }
       }
   },
   "isolines": [
       {
           "range": {
               "type": "time",
               "value": 3600
           },
           "polygons": [
               {
                   "outer": "BGsshxtC5xt-uEA64S2rFgjQ-lgBq3K2rFgjQAy61C0rFgjQgmgBq3K0uV0uV2rFgjQA-rgC0rFgjQgmgBq3K0uV0uV2rFgjQ1rFgjQ9lgBq3KAq3Ko9qBq9qBgmgBq3Kq3K-lgB-lgBq3K2rFgjQA0uV1rFgjQ9lgBq3K1rFgjQA0uVzrFgjQ_lgBq3KzrFgjQ0rFgjQgjQ0rF0uVAgjQ2rFq3K-lgBgmgBs3K-lgB-lgBgjQ2rF0uVAgjQ1rFq3[...]K_lgBp3Kp3KzrF_iQAzuV0rF_iQq3Kp3K2rF_iQA53gE2rF_iQ-iQ1rF2uVA-iQ61C2rFwhIAmtN"
               }
           ]
       }
   ]
}

TravelTime API Response:

{
    "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

Both the TravelTIme API and the HERE API use standard http status codes, such as 401 Unauthorized and 500 Internal Server Error.

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

FeatureHERE APITravelTime API
StructudeFlat (no nesting)Nested additional_info
HTTP Status CodeOutside JSON bodyIncluded in JSON body
Root Elementstitle
status
code
cause
action
correlationID
http_status
error_code
description
documentation_link
additional_info

Error Message Examples

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

HERE Isoline Routing API Response:

{
   "title": "Malformed request",
   "status": 400,
   "code": "E605001",
   "cause": "Error while parsing request: Either one of 'origin or destination' parameter is required",
   "action": "",
   "correlationId": "b28af7be-3553-4afe-8be5-e69246e0ec08"
}

TravelTime API Response:

{
   "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

If you are looking to migrate from using the HERE Isoline 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.