TomTom

App · Travel & Places · 10 actions

Put TomTom's maps to work: search for places and addresses anywhere in the world, turn written addresses into coordinates and coordinates back into addresses, find everything of a given kind around a point, plan routes for cars, trucks, bikes or on foot with live traffic and a departure or arrival time, work out everywhere reachable inside a time or distance budget, and read the crashes, jams, closures and road works happening around any place right now.

Actions

ActionWhat it does
Calculate a reachable rangeEverywhere you can get to from one place inside a time or distance budget: a drive-time area, sometimes called an isochrone.
Calculate a routePlan a route between two places, with any number of stops along the way, and get back the distance, the travel time with live traffic, how much of that time is delay, and where the delay is.
Geocode a structured addressGeocode an address that is already split into fields: street number, street, city, state, postcode, rather than written on one line.
Geocode an addressTurn a written address or place name into coordinates, with the address parsed into its parts and a confidence score for the match.
Get traffic incidentsThe crashes, jams, closures and road works around a place right now, worst delay first, each with what happened, which road it is on, how long the delay is and how long it is expected to last.
List place categoriesTomTom's whole catalogue of place categories, with the id each one is filtered by, the names it also goes by, and the sub-categories under it.
Reverse geocode coordinatesTurn a latitude and longitude back into a street address, broken into its parts.
Search nearbyWhat is around a coordinate, nearest first, with the distance to each one.
Search placesSearch TomTom's map for anything written as words: a business name, an address, a street, a city, or a mix of them.
Search places by categoryEvery place of a given kind in an area: all the petrol stations within 5 km, all the hotels in a city, all the EV charging points along a corridor.

Calculate a reachable range

Everywhere you can get to from one place inside a time or distance budget: a drive-time area, sometimes called an isochrone. The answer to 'which customers are within 30 minutes of this depot', 'how far can this van get before its next stop', or 'draw the catchment area of this branch'. Returns the boundary as a list of coordinates plus the box that contains it, so it can be drawn on a map or tested against a list of addresses. The start takes an address or coordinates; the budget defaults to 30 minutes by car.

Inputs

Starting fromorigintextRequired
The place the range is measured from: an address, a place name, or 'latitude,longitude'.
Within (minutes)time_budget_minutesnumber
How long the trip may take. Defaults to 30 minutes when neither budget is set. Use this or a distance budget, not both.From 1 to 166666.
Within (km)distance_budget_kmnumber
How far the trip may go, in kilometres. Use this or a time budget, not both.From 0.1 to 50000.
Travelling bytravel_modetext
What the trip is made in or on.One of: car, truck, taxi, bus, van, motorcycle, bicycle, pedestrian (On foot). Default: car.
Optimise forroute_typetext
Which kind of route the range is measured along.One of: fastest (Fastest (shortest travel time)), shortest (Shortest (shortest distance)), eco (Eco (balances time against fuel or energy used)), thrilling (Thrilling (winding roads and fewer motorways)). Default: fastest.
Leaving atdepart_atdate and time
Optional. Measure the range for this departure time, using the traffic expected then.
Use live trafficuse_traffictrue/false
Take current and expected traffic into account.Default: true.
Avoidavoidlist
Optional. Road types to keep out of the range.One or more of: tollRoads (Toll roads), motorways, ferries, unpavedRoads (Unpaved roads), carpools (Carpool (HOV) lanes), alreadyUsedRoads (Roads already used on this route).
Engineengine_typetext
Optional. What the vehicle runs on, which changes how the range is worked out.One of: combustion (Petrol or diesel), electric.
Boundary smoothingsmoothingtext
Optional. How much to smooth the outline. Stronger smoothing gives a tidier shape to draw on a map.One of: none (None (raw polygon)), weak (Light), strong (Strong (smoothest outline)).

Outputs

boundarylist
The outline of the reachable area, as an ordered list of coordinates.
boundary_point_countnumber
How many points the outline has.
center_latitudenumber
Latitude of the point the range centres on.
center_longitudenumber
Longitude of the point the range centres on.
distance_budget_kmnumber
The distance budget used, when it was a distance budget.
foundtrue/false
Whether a range could be worked out.
max_latitudenumber
Northern edge of the box containing the range.
max_longitudenumber
Eastern edge of the box containing the range.
min_latitudenumber
Southern edge of the box containing the range.
min_longitudenumber
Western edge of the box containing the range.
originobject
The place the range was measured from.
time_budget_minutesnumber
The time budget used, when it was a time budget.
travel_modetext
The travel mode the range was measured for.
Example output
{
  "boundary": [
    {
      "latitude": 52.5541,
      "longitude": 4.90943
    },
    {
      "latitude": 52.4903,
      "longitude": 5.1712
    },
    {
      "latitude": 52.2611,
      "longitude": 5.0433
    },
    {
      "latitude": 52.2004,
      "longitude": 4.7716
    }
  ],
  "boundary_point_count": 4,
  "center_latitude": 52.37727,
  "center_longitude": 4.90943,
  "distance_budget_km": null,
  "found": true,
  "max_latitude": 52.5541,
  "max_longitude": 5.1712,
  "min_latitude": 52.2004,
  "min_longitude": 4.7716,
  "origin": {
    "address": "De Ruijterkade 154, 1011 AC Amsterdam",
    "geocoded": true,
    "input": "De Ruijterkade 154, Amsterdam",
    "latitude": 52.37727,
    "longitude": 4.90943
  },
  "time_budget_minutes": 30.0,
  "travel_mode": "car"
}

Calculate a route

Plan a route between two places, with any number of stops along the way, and get back the distance, the travel time with live traffic, how much of that time is delay, and where the delay is. Start, end and stops each take a plain address or coordinates, and an address is geocoded for you. Choose the vehicle (car, truck, bus, bicycle, on foot and more), what to optimise for, roads to avoid, a departure or arrival time, and whether to have the stops reordered into the shortest trip.

Inputs

StartorigintextRequired
Where the route starts: an address, a place name, or 'latitude,longitude'.
EnddestinationtextRequired
Where the route ends: an address, a place name, or 'latitude,longitude'.
Stops along the waywaypointslist
Optional. Places to pass through between the start and the end, in order. Each one may be an address or 'latitude,longitude'.
Travelling bytravel_modetext
What the trip is made in or on.One of: car, truck, taxi, bus, van, motorcycle, bicycle, pedestrian (On foot). Default: car.
Optimise forroute_typetext
Which of the possible routes to return.One of: fastest (Fastest (shortest travel time)), shortest (Shortest (shortest distance)), eco (Eco (balances time against fuel or energy used)), thrilling (Thrilling (winding roads and fewer motorways)). Default: fastest.
Leaving atdepart_atdate and time
Optional. Plan the trip for this departure time, using the traffic expected then. Leave it empty to leave now.
Arriving byarrive_atdate and time
Optional. Work backwards from this arrival time to say when to leave. Cannot be combined with a departure time.
Use live trafficuse_traffictrue/false
Take current and expected traffic into account. Turn it off for a time that ignores congestion entirely.Default: true.
Avoidavoidlist
Optional. Road types to keep off the route.One or more of: tollRoads (Toll roads), motorways, ferries, unpavedRoads (Unpaved roads), carpools (Carpool (HOV) lanes), alreadyUsedRoads (Roads already used on this route).
Alternative routesmax_alternativesnumber
How many other routes to return alongside the best one, for comparison.From 0 to 5. Default: 0.
Reorder the stopsoptimize_waypoint_ordertrue/false
Let TomTom put the stops in the order that makes the trip shortest, instead of visiting them as listed. Only applies when there are stops.Default: false.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.

Outputs

alternative_countnumber
How many alternative routes came back.
alternative_routeslist
A summary of each alternative route, when any were asked for.
arrival_timetext
When the trip ends, in the destination's local time.
battery_consumption_kwhnumber
kWh used, when an electric model applies.
departure_timetext
When the trip starts, in the origin's local time.
destinationobject
Where the route ends.
distance_metersnumber
Total distance in metres.
distance_texttext
Total distance, written out: '51.2 km'.
foundtrue/false
Whether a route was found.
fuel_consumption_litersnumber
Litres of fuel, when a combustion model applies.
legslist
One leg per pair of consecutive stops.
no_traffic_travel_time_secondsnumber
What the trip would take with no traffic at all.
originobject
Where the route starts.
route_typetext
Which route was asked for: fastest, shortest, eco or thrilling.
traffic_delay_secondsnumber
How much of the travel time is traffic delay.
traffic_delay_texttext
The traffic delay, written out.
traffic_sectionslist
Where along the route the traffic delay actually is.
travel_modetext
The travel mode the route was planned for.
travel_time_secondsnumber
Total travel time in seconds, including traffic.
travel_time_texttext
Total travel time, written out: '1 h 15 min'.
waypointslist
The stops along the way, in the order they are visited.
Example output
{
  "alternative_count": 0,
  "alternative_routes": [],
  "arrival_time": "2026-09-01T10:00:42+02:00",
  "battery_consumption_kwh": null,
  "departure_time": "2026-09-01T09:00:00+02:00",
  "destination": {
    "address": "",
    "geocoded": false,
    "input": "51.9225,4.47917",
    "latitude": 51.9225,
    "longitude": 4.47917
  },
  "distance_meters": 78413,
  "distance_text": "78.4 km",
  "found": true,
  "fuel_consumption_liters": 5.4,
  "legs": [
    {
      "arrival_time": "2026-09-01T10:00:42+02:00",
      "departure_time": "2026-09-01T09:00:00+02:00",
      "distance_meters": 78413,
      "distance_text": "78.4 km",
      "end_latitude": 51.9225,
      "end_longitude": 4.47917,
      "leg_number": 1,
      "start_latitude": 52.37727,
      "start_longitude": 4.90943,
      "traffic_delay_seconds": 421,
      "travel_time_seconds": 3642,
      "travel_time_text": "1 h"
    }
  ],
  "no_traffic_travel_time_seconds": 3221,
  "origin": {
    "address": "De Ruijterkade 154, 1011 AC Amsterdam",
    "geocoded": true,
    "input": "De Ruijterkade 154, Amsterdam",
    "latitude": 52.37727,
    "longitude": 4.90943
  },
  "route_type": "fastest",
  "traffic_delay_seconds": 421,
  "traffic_delay_text": "7 min",
  "traffic_sections": [
    {
      "category": "JAM",
      "delay_seconds": 421,
      "delay_text": "7 min",
      "effective_speed_kmh": 34,
      "magnitude_of_delay": 2
    }
  ],
  "travel_mode": "car",
  "travel_time_seconds": 3642,
  "travel_time_text": "1 h",
  "waypoints": []
}

Geocode a structured address

Geocode an address that is already split into fields: street number, street, city, state, postcode, rather than written on one line. The right action when the address comes out of a CRM, a checkout form or a spreadsheet with a column per part: nothing has to be glued together first, and a city cannot be misread as part of the street. The country is required; give at least one other part.

Inputs

Countrycountry_codetextRequired
The country the address is in. Required.One of: AF (Afghanistan), AX (Åland Islands), AL (Albania), DZ (Algeria), AD (Andorra), AO (Angola), AI (Anguilla), AQ (Antarctica), AG (Antigua & Barbuda), AR (Argentina), and 239 more.
Street numberstreet_numbertext
Optional. The house or building number.
Streetstreet_nametext
Optional. The street name, without the number.
Cross streetcross_streettext
Optional. A cross street, for an address given as a junction rather than a number.
City or townmunicipalitytext
Optional. The city or town.
Districtmunicipality_subdivisiontext
Optional. A district or neighbourhood inside the city.
State or provincecountry_subdivisiontext
Optional. The state or province, as a name or a code ("California" or "CA").
Countycountry_secondary_subdivisiontext
Optional. The county or equivalent.
Named areacountry_tertiary_subdivisiontext
Optional. A named area below county level, where a country uses one.
Postcodepostal_codetext
Optional. The postcode or ZIP code.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Geopolitical viewviewtext
Optional. Which country's view of disputed borders to use. Leave it empty for the international one.One of: Unified (International (default)), AR (Argentina), CN (China), IN (India), IL (Israel), MA (Morocco), PK (Pakistan), RS (Serbia), RU (Russia), TR (Türkiye), TW (Taiwan).
Resultslimitnumber
How many results to return at most.From 1 to 100. Default: 10.

Outputs

addresstext
The best match's full address, as TomTom writes it.
country_codetext
The best match's two-letter country code.
foundtrue/false
Whether anything matched.
latitudenumber
Latitude of the best match, the field to feed a route.
longitudenumber
Longitude of the best match.
querytext
The address that was looked up.
resultslist
Every match, most confident first.
returned_countnumber
How many matches came back.
total_countnumber
How many matches there are in total.
Example output
{
  "address": "De Ruijterkade 154, 1011 AC Amsterdam",
  "country_code": "NL",
  "found": true,
  "latitude": 52.37727,
  "longitude": 4.90943,
  "query": "De Ruijterkade 154, 1011 AC, Amsterdam",
  "results": [
    {
      "address": "De Ruijterkade 154, 1011 AC Amsterdam",
      "country": "Netherlands",
      "country_code": "NL",
      "country_subdivision": "NH",
      "country_subdivision_name": "Noord-Holland",
      "entity_type": "",
      "id": "NL/PAD/p0/1234567",
      "latitude": 52.37727,
      "longitude": 4.90943,
      "match_score": 0.9959,
      "municipality": "Amsterdam",
      "municipality_subdivision": "Amsterdam-Centrum",
      "postal_code": "1011 AC",
      "street_name": "De Ruijterkade",
      "street_number": "154",
      "type": "Point Address",
      "viewport_bottom_right_latitude": 52.37637,
      "viewport_bottom_right_longitude": 4.91086,
      "viewport_top_left_latitude": 52.37817,
      "viewport_top_left_longitude": 4.908
    }
  ],
  "returned_count": 1,
  "total_count": 1
}

Geocode an address

Turn a written address or place name into coordinates, with the address parsed into its parts and a confidence score for the match. The step that comes before mapping, routing or distance work on addresses out of a form, a CRM or a spreadsheet. Bias it towards a point or restrict it to a set of countries when the same street name exists in several places. Use 'Geocode a structured address' instead when the address already arrives split into fields.

Inputs

AddressaddresstextRequired
The address or place name to look up.
Countriescountrieslist
Optional. Only return results in these countries. Choose none to search the whole world.One or more of: AF (Afghanistan), AX (Åland Islands), AL (Albania), DZ (Algeria), AD (Andorra), AO (Angola), AI (Anguilla), AQ (Antarctica), AG (Antigua & Barbuda), AR (Argentina), and 239 more.
Near latitudelatitudenumber
Optional. Prefer results near this point. Give a longitude too.From -90.0 to 90.0.
Near longitudelongitudenumber
Optional. Prefer results near this point. Give a latitude too.From -180.0 to 180.0.
Within (metres)radius_metersnumber
Optional. Only return results inside this many metres of the point above. Needs a latitude and longitude.From 1 to 500000.
Only these levelsentity_typeslist
Optional. Only return administrative areas of these levels, and no streets or addresses: the way to turn a name into a city or a state rather than a point on a road.One or more of: Country, CountrySubdivision (State or province), CountrySecondarySubdivision (County), CountryTertiarySubdivision (Named area), Municipality (City or town), MunicipalitySubdivision (District or neighbourhood), Neighbourhood, PostalCodeArea (Postcode area).
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Geopolitical viewviewtext
Optional. Which country's view of disputed borders to use. Leave it empty for the international one.One of: Unified (International (default)), AR (Argentina), CN (China), IN (India), IL (Israel), MA (Morocco), PK (Pakistan), RS (Serbia), RU (Russia), TR (Türkiye), TW (Taiwan).
Resultslimitnumber
How many results to return at most.From 1 to 100. Default: 10.

Outputs

addresstext
The best match's full address, as TomTom writes it.
country_codetext
The best match's two-letter country code.
foundtrue/false
Whether anything matched.
latitudenumber
Latitude of the best match, the field to feed a route.
longitudenumber
Longitude of the best match.
querytext
The address that was looked up.
resultslist
Every match, most confident first.
returned_countnumber
How many matches came back.
total_countnumber
How many matches there are in total.
Example output
{
  "address": "De Ruijterkade 154, 1011 AC Amsterdam",
  "country_code": "NL",
  "found": true,
  "latitude": 52.37727,
  "longitude": 4.90943,
  "query": "De Ruijterkade 154, 1011 AC, Amsterdam",
  "results": [
    {
      "address": "De Ruijterkade 154, 1011 AC Amsterdam",
      "country": "Netherlands",
      "country_code": "NL",
      "country_subdivision": "NH",
      "country_subdivision_name": "Noord-Holland",
      "entity_type": "",
      "id": "NL/PAD/p0/1234567",
      "latitude": 52.37727,
      "longitude": 4.90943,
      "match_score": 0.9959,
      "municipality": "Amsterdam",
      "municipality_subdivision": "Amsterdam-Centrum",
      "postal_code": "1011 AC",
      "street_name": "De Ruijterkade",
      "street_number": "154",
      "type": "Point Address",
      "viewport_bottom_right_latitude": 52.37637,
      "viewport_bottom_right_longitude": 4.91086,
      "viewport_top_left_latitude": 52.37817,
      "viewport_top_left_longitude": 4.908
    }
  ],
  "returned_count": 1,
  "total_count": 1
}

Get traffic incidents

The crashes, jams, closures and road works around a place right now, worst delay first, each with what happened, which road it is on, how long the delay is and how long it is expected to last. Give an address or coordinates and a radius: the bounding box TomTom needs is worked out for you. Filter to the kinds of incident you care about, to a minimum delay, or to road works planned for later rather than what is happening now.

Inputs

AroundcentertextRequired
The place to look around: an address, a place name, or 'latitude,longitude'.
Within (metres)radius_metersnumber
How far around that place to look.From 1 to 500000. Default: 5000.
Kinds of incidentcategorieslist
Optional. Only report these kinds. Choose none for all of them.One or more of: Accident, Jam (Traffic jam), RoadWorks (Road works), RoadClosed (Road closed), LaneClosed (Lane closed), BrokenDownVehicle (Broken-down vehicle), DangerousConditions (Dangerous conditions), Rain, Ice, Fog, and 3 more.
Whentime_validitylist
Whether to report what is happening now, what is planned for later, or both. Defaults to what is happening now.One or more of: present (Happening now), future (Planned for later).
Only delays of at least (seconds)min_delay_secondsnumber
Optional. Ignore incidents causing less delay than this: a way to keep an alert to the ones worth acting on.From 0 to 86400. Default: 0.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Resultslimitnumber
How many incidents to return at most.From 1 to 200. Default: 50.

Outputs

bounding_boxobject
The box the radius was turned into.
centerobject
The place that was looked around.
incidentslist
The incidents found, worst delay first.
radius_metersnumber
The radius that was searched, in metres.
returned_countnumber
How many incidents came back.
total_countnumber
How many matched before the result cap was applied.
total_delay_secondsnumber
The delays of the returned incidents, added up.
total_delay_texttext
The total delay, written out.
worst_delay_secondsnumber
The longest single delay.
worst_delay_texttext
The longest single delay, written out.
Example output
{
  "bounding_box": {
    "max_latitude": 52.41813,
    "max_longitude": 4.9643,
    "min_latitude": 52.32821,
    "min_longitude": 4.81702
  },
  "center": {
    "address": "Amsterdam, Noord-Holland",
    "geocoded": true,
    "input": "Amsterdam",
    "latitude": 52.37317,
    "longitude": 4.89066
  },
  "incidents": [
    {
      "category": "Traffic jam",
      "category_code": 6,
      "delay_magnitude": "Moderate",
      "delay_seconds": 421,
      "delay_text": "7 min",
      "description": "Stationary traffic",
      "end_time": "2026-08-28T09:15:00Z",
      "from": "A10 junction S114",
      "id": "0d9a1a2b3c4d5e6f7a8b9c0d1e2f3a4b",
      "last_report_time": "2026-08-28T08:02:00Z",
      "latitude": 52.38712,
      "length_meters": 1834.0,
      "length_text": "1.8 km",
      "longitude": 4.87914,
      "number_of_reports": 4,
      "probability": "certain",
      "road_numbers": [
        "A10"
      ],
      "start_time": "2026-08-28T07:41:00Z",
      "time_validity": "present",
      "to": "A10 junction S116"
    }
  ],
  "radius_meters": 5000,
  "returned_count": 1,
  "total_count": 1,
  "total_delay_seconds": 421,
  "total_delay_text": "7 min",
  "worst_delay_seconds": 421,
  "worst_delay_text": "7 min"
}

List place categories

TomTom's whole catalogue of place categories, with the id each one is filtered by, the names it also goes by, and the sub-categories under it. Use it to turn a word a workflow receives, 'pharmacy' or 'car wash', into the category id the search actions filter on, or to see what can be asked for at all. One request returns every category; the search box filters them here, over both the names and their synonyms.

Inputs

Matchingquerytext
Optional. Only keep categories whose name or synonyms contain this word. Leave it empty for all of them.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.

Outputs

categorieslist
The matching categories, alphabetically.
querytext
The word the list was filtered by, if any.
returned_countnumber
How many categories matched.
total_countnumber
How many categories TomTom publishes in total.
Example output
{
  "categories": [
    {
      "child_category_ids": [
        7315002,
        7315003,
        7315005
      ],
      "id": 7315,
      "name": "RESTAURANT",
      "synonyms": [
        "eatery",
        "diner",
        "dining"
      ]
    },
    {
      "child_category_ids": [],
      "id": 9376002,
      "name": "RESTAURANT AREA",
      "synonyms": [
        "food court"
      ]
    }
  ],
  "query": "restaurant",
  "returned_count": 2,
  "total_count": 448
}

Reverse geocode coordinates

Turn a latitude and longitude back into a street address, broken into its parts. What a GPS ping, a photo's location, a vehicle position or a map click needs before it can be shown to a person or matched against a record. Optionally return the posted speed limit for the road the point sits on, or pin the answer to an administrative level: the city or the state the point falls in rather than the street.

Inputs

LatitudelatitudenumberRequired
The latitude to look up.From -90.0 to 90.0.
LongitudelongitudenumberRequired
The longitude to look up.From -180.0 to 180.0.
Search within (metres)radius_metersnumber
Optional. How far from the point to look for an address. TomTom uses 10 km when this is empty.From 1 to 500000.
Include speed limitinclude_speed_limittrue/false
Also return the posted speed limit for the road the point is on, where TomTom has one.Default: false.
Answer withentity_typetext
Optional. Return the administrative area the point falls in at this level instead of a street address.One of: Country, CountrySubdivision (State or province), CountrySecondarySubdivision (County), CountryTertiarySubdivision (Named area), Municipality (City or town), MunicipalitySubdivision (District or neighbourhood), Neighbourhood, PostalCodeArea (Postcode area).
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Geopolitical viewviewtext
Optional. Which country's view of disputed borders to use. Leave it empty for the international one.One of: Unified (International (default)), AR (Argentina), CN (China), IN (India), IL (Israel), MA (Morocco), PK (Pakistan), RS (Serbia), RU (Russia), TR (Türkiye), TW (Taiwan).

Outputs

addresstext
The nearest address, on one line.
addresseslist
Every address returned for the point.
countrytext
Country name.
country_codetext
Two-letter country code.
country_subdivisiontext
State or province code.
foundtrue/false
Whether an address was found there.
latitudenumber
The latitude that was looked up.
longitudenumber
The longitude that was looked up.
municipalitytext
City or town.
postal_codetext
Postcode.
returned_countnumber
How many addresses came back.
speed_limittext
The posted speed limit, when it was asked for and TomTom has one.
street_nametext
Street name.
street_numbertext
House or building number.
Example output
{
  "address": "De Ruijterkade 154, 1011 AC Amsterdam",
  "addresses": [
    {
      "address": "De Ruijterkade 154, 1011 AC Amsterdam",
      "country": "Netherlands",
      "country_code": "NLD",
      "country_subdivision": "NH",
      "country_subdivision_name": "Noord-Holland",
      "id": "NL/PAD/p0/1234567",
      "latitude": 52.37727,
      "longitude": 4.90943,
      "match_type": "AddressPoint",
      "municipality": "Amsterdam",
      "municipality_subdivision": "Amsterdam-Centrum",
      "postal_code": "1011 AC",
      "speed_limit": "50.00 KPH",
      "street_name": "De Ruijterkade",
      "street_number": "154"
    }
  ],
  "country": "Netherlands",
  "country_code": "NLD",
  "country_subdivision": "NH",
  "found": true,
  "latitude": 52.37727,
  "longitude": 4.90943,
  "municipality": "Amsterdam",
  "postal_code": "1011 AC",
  "returned_count": 1,
  "speed_limit": "50.00 KPH",
  "street_name": "De Ruijterkade",
  "street_number": "154"
}

Search nearby

What is around a coordinate, nearest first, with the distance to each one. The action for 'what is near this delivery address', 'which of our branches is closest to this postcode', or filling out a place a workflow only knows the position of. Filter it by category or brand to ask a narrower question.

Inputs

LatitudelatitudenumberRequired
The latitude to search around.From -90.0 to 90.0.
LongitudelongitudenumberRequired
The longitude to search around.From -180.0 to 180.0.
Within (metres)radius_metersnumber
How far around the point to look. TomTom defaults to 10 km when this is left empty.From 1 to 500000.
Place categoriescategory_idslist
Optional. Only return places in these categories: restaurants, petrol stations, hotels and so on. The list comes from your connection.
Brandsbrandslist
Optional. Only return places belonging to these brands, spelled the way TomTom spells them ("Starbucks", "Shell"). A place's brands are on every result this integration returns.
Open today onlyopen_nowtrue/false
Only keep places that are open at some point today. TomTom has no "open right now" filter, so this asks for the week's opening hours and keeps the places with an opening listed for today.Default: false.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Resultslimitnumber
How many results to return at most.From 1 to 100. Default: 10.
Skipoffsetnumber
How many results to skip before the ones returned: set it to the previous step's 'next offset' to read the next page.From 0 to 1900. Default: 0.

Outputs

has_moretrue/false
Whether more results are available after these.
latitudenumber
The latitude that was searched around.
longitudenumber
The longitude that was searched around.
next_offsetnumber
The 'Skip' value that reads the next page, or nothing at the end.
offsetnumber
How many results were skipped before these.
querytext
What was searched for.
resultslist
The places found, best match first.
returned_countnumber
How many results came back.
total_countnumber
How many results match in total.
Example output
{
  "has_more": true,
  "latitude": 52.37905,
  "longitude": 4.90019,
  "next_offset": 1,
  "offset": 0,
  "query": "52.37905,4.90019",
  "results": [
    {
      "address": "Stationsplein, 1012 AB Amsterdam",
      "brands": [
        "NS"
      ],
      "categories": [
        "public transport stop",
        "railroad station"
      ],
      "category_ids": [
        7380,
        7380002
      ],
      "country": "Netherlands",
      "country_code": "NL",
      "country_subdivision": "Noord-Holland",
      "distance_meters": 412.0,
      "id": "528009004256510",
      "latitude": 52.37905,
      "longitude": 4.90019,
      "municipality": "Amsterdam",
      "name": "Amsterdam Centraal",
      "opening_hours": [
        "2026-08-28 00:00\u201323:59"
      ],
      "phone": "+31 30 751 5155",
      "postal_code": "1012 AB",
      "score": 4.94,
      "street_name": "Stationsplein",
      "street_number": "",
      "time_zone": "Europe/Amsterdam",
      "type": "POI",
      "website": "https://www.ns.nl/"
    }
  ],
  "returned_count": 1,
  "total_count": 37
}

Search places

Search TomTom's map for anything written as words: a business name, an address, a street, a city, or a mix of them. Returns each match with its coordinates, full address, phone, website, categories and brands. Narrow it to a point and a radius, to a set of countries, to particular categories or brands, or to places open today. This is the general search: use 'Search places by category' when you want every restaurant or petrol station in an area rather than a specific one.

Inputs

Search forquerytextRequired
What to look for: a name, an address, or both together.
Near latitudelatitudenumber
Optional. Prefer results near this point. Give a longitude too.From -90.0 to 90.0.
Near longitudelongitudenumber
Optional. Prefer results near this point. Give a latitude too.From -180.0 to 180.0.
Within (metres)radius_metersnumber
Optional. Only return results inside this many metres of the point above. Needs a latitude and longitude.From 1 to 500000.
Countriescountrieslist
Optional. Only return results in these countries. Choose none to search the whole world.One or more of: AF (Afghanistan), AX (Åland Islands), AL (Albania), DZ (Algeria), AD (Andorra), AO (Angola), AI (Anguilla), AQ (Antarctica), AG (Antigua & Barbuda), AR (Argentina), and 239 more.
Place categoriescategory_idslist
Optional. Only return places in these categories: restaurants, petrol stations, hotels and so on. The list comes from your connection.
Brandsbrandslist
Optional. Only return places belonging to these brands, spelled the way TomTom spells them ("Starbucks", "Shell"). A place's brands are on every result this integration returns.
Open today onlyopen_nowtrue/false
Only keep places that are open at some point today. TomTom has no "open right now" filter, so this asks for the week's opening hours and keeps the places with an opening listed for today.Default: false.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Resultslimitnumber
How many results to return at most.From 1 to 100. Default: 10.
Skipoffsetnumber
How many results to skip before the ones returned: set it to the previous step's 'next offset' to read the next page.From 0 to 1900. Default: 0.

Outputs

has_moretrue/false
Whether more results are available after these.
next_offsetnumber
The 'Skip' value that reads the next page, or nothing at the end.
offsetnumber
How many results were skipped before these.
querytext
What was searched for.
resultslist
The places found, best match first.
returned_countnumber
How many results came back.
total_countnumber
How many results match in total.
Example output
{
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "query": "Amsterdam Centraal",
  "results": [
    {
      "address": "Stationsplein, 1012 AB Amsterdam",
      "brands": [
        "NS"
      ],
      "categories": [
        "public transport stop",
        "railroad station"
      ],
      "category_ids": [
        7380,
        7380002
      ],
      "country": "Netherlands",
      "country_code": "NL",
      "country_subdivision": "Noord-Holland",
      "distance_meters": 412.0,
      "id": "528009004256510",
      "latitude": 52.37905,
      "longitude": 4.90019,
      "municipality": "Amsterdam",
      "name": "Amsterdam Centraal",
      "opening_hours": [
        "2026-08-28 00:00\u201323:59"
      ],
      "phone": "+31 30 751 5155",
      "postal_code": "1012 AB",
      "score": 4.94,
      "street_name": "Stationsplein",
      "street_number": "",
      "time_zone": "Europe/Amsterdam",
      "type": "POI",
      "website": "https://www.ns.nl/"
    }
  ],
  "returned_count": 1,
  "total_count": 37
}

Search places by category

Every place of a given kind in an area: all the petrol stations within 5 km, all the hotels in a city, all the EV charging points along a corridor. Pick the categories from the dropdown, which is filled from TomTom's own category tree, and optionally add words to narrow it further. Returns the same detail as 'Search places'.

Inputs

Place categoriescategory_idslistRequired
The kinds of place to find. The list comes from your connection: pick one or several.
Also matchingquerytext
Optional. Extra words the place must match, on top of the categories: "24 hour", a brand, a street name.
Near latitudelatitudenumber
Optional. Prefer results near this point. Give a longitude too.From -90.0 to 90.0.
Near longitudelongitudenumber
Optional. Prefer results near this point. Give a latitude too.From -180.0 to 180.0.
Within (metres)radius_metersnumber
Optional. Only return results inside this many metres of the point above. Needs a latitude and longitude.From 1 to 500000.
Countriescountrieslist
Optional. Only return results in these countries. Choose none to search the whole world.One or more of: AF (Afghanistan), AX (Åland Islands), AL (Albania), DZ (Algeria), AD (Andorra), AO (Angola), AI (Anguilla), AQ (Antarctica), AG (Antigua & Barbuda), AR (Argentina), and 239 more.
Brandsbrandslist
Optional. Only return places belonging to these brands, spelled the way TomTom spells them ("Starbucks", "Shell"). A place's brands are on every result this integration returns.
Open today onlyopen_nowtrue/false
Only keep places that are open at some point today. TomTom has no "open right now" filter, so this asks for the week's opening hours and keeps the places with an opening listed for today.Default: false.
Languagelanguagetext
Optional. The language TomTom writes names and addresses in. Leave it empty for each place's local language.One of: en-GB (English (UK)), en-US (English (US)), en-AU (English (Australia)), en-NZ (English (New Zealand)), af-ZA (Afrikaans), ar (Arabic), bg-BG (Bulgarian), ca-ES (Catalan), cs-CZ (Czech), da-DK (Danish), and 36 more.
Resultslimitnumber
How many results to return at most.From 1 to 100. Default: 10.
Skipoffsetnumber
How many results to skip before the ones returned: set it to the previous step's 'next offset' to read the next page.From 0 to 1900. Default: 0.

Outputs

category_idslist
The category ids that were searched for.
has_moretrue/false
Whether more results are available after these.
next_offsetnumber
The 'Skip' value that reads the next page, or nothing at the end.
offsetnumber
How many results were skipped before these.
querytext
What was searched for.
resultslist
The places found, best match first.
returned_countnumber
How many results came back.
total_countnumber
How many results match in total.
Example output
{
  "category_ids": [
    7380
  ],
  "has_more": true,
  "next_offset": 1,
  "offset": 0,
  "query": "Amsterdam Centraal",
  "results": [
    {
      "address": "Stationsplein, 1012 AB Amsterdam",
      "brands": [
        "NS"
      ],
      "categories": [
        "public transport stop",
        "railroad station"
      ],
      "category_ids": [
        7380,
        7380002
      ],
      "country": "Netherlands",
      "country_code": "NL",
      "country_subdivision": "Noord-Holland",
      "distance_meters": 412.0,
      "id": "528009004256510",
      "latitude": 52.37905,
      "longitude": 4.90019,
      "municipality": "Amsterdam",
      "name": "Amsterdam Centraal",
      "opening_hours": [
        "2026-08-28 00:00\u201323:59"
      ],
      "phone": "+31 30 751 5155",
      "postal_code": "1012 AB",
      "score": 4.94,
      "street_name": "Stationsplein",
      "street_number": "",
      "time_zone": "Europe/Amsterdam",
      "type": "POI",
      "website": "https://www.ns.nl/"
    }
  ],
  "returned_count": 1,
  "total_count": 37
}

On this page