Atlas / Categories / Geocoding / TomTom Geocoding — entry 072 of 80
TomTom Verified Jul 2026
TomTom's Geocoding API converts addresses and place names into coordinates and back, drawing on TomTom's own commercial map data rather than open datasets like OSM, and sits alongside its routing, traffic, and search products. TomTom is steering new integrations toward its newer Orbis Maps platform while keeping this legacy Maps/Geocoding API live and documented. New accounts get 20,000 free geocoding requests a month with no card required, with metered paid tiers above that.
geocoding maps address-lookup freemium
Authentication API Key Sign up with the provider to obtain credentials.
HTTPS Supported Traffic is encrypted in transit.
CORS Enabled Callable directly from browser JavaScript.
Pricing Freemium A usable free tier exists, with paid plans for more volume.
Formats JSON Responses can be requested as JSON.
GreatAPIs Score Score 81 out of 100
Authentication 15/25 API key required
Pricing 17/20 Freemium tier available
Docs 20/20 Machine-readable spec file bundled
Formats 9/15 Single response format
Freshness 20/20 Verified within 6 months
Embed this badge <a href="https://greatapis.com/api/tomtom/"><img src="https://greatapis.com/badge/tomtom.svg" alt="Scored 81 on greatapis.com"></a>
Auth quickstart Get a key at the provider Send it on every request as a query param ?key=<key>Stored key No key stored Clear key
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints Additional Data 1 GET /search/{versionNumber}/additionalData.{ext}Additional Data Parameters Name In Required Type versionNumberpath yes integer extpath yes string geometriesquery yes string geometriesZoomquery no integer
Responses Status Description Schema 200OK: additional data were retrieved and the body of the response contains requested data. — 400Bad request: one or more parameters(i.e. geometries, ext) were incorrectly specified. — 403Permission, capacity, or authentication issues:
- Forbidden
- Not authorized
- Account inactive
- Account over queries per second limit
- Account over rate limit
- Rate limit exceeded — 404Not Found: the requested resource could not be found, but it may be available again in the future. — 405Method Not Allowed: the client used a HTTP method other than GET. — 408Request timeout. — 414Requested uri is too long. — 500An error occurred while processing the request. Please try again later. — 502Internal network connectivity issue. — 503Service currently unavailable. — 504Internal network connectivity issue or a request that has taken too long to complete. — 596Service not found. —
Filters 4 GET /search/{versionNumber}/geometryFilter.{ext}Geometry Filter Parameters Name In Required Type versionNumberpath yes integer extpath yes string geometryListquery yes string poiListquery yes string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
POST /search/{versionNumber}/geometryFilter.{ext}Geometry Filter Parameters Name In Required Type versionNumberpath yes integer extpath yes string
Request body application/json
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/routedFilter/{position}/{heading}.{ext}Routed Filter Parameters Name In Required Type versionNumberpath yes integer positionpath yes string headingpath yes number extpath yes string poiListquery yes string routingTimeoutquery no integer
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
POST /search/{versionNumber}/routedFilter/{position}/{heading}.{ext}Routed Filter Parameters Name In Required Type versionNumberpath yes integer positionpath yes string headingpath yes number extpath yes string routingTimeoutquery no integer
Request body application/json
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
Geocoding 2 GET /search/{versionNumber}/geocode/{query}.{ext}Geocode Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string storeResultquery no boolean typeaheadquery no boolean limitquery no integer ofsquery no integer countrySetquery no string latquery no number lonquery no number radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string extendedPostalCodesForquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/structuredGeocode.{ext}Structured Geocode Parameters Name In Required Type versionNumberpath yes integer extpath yes string countryCodequery yes string limitquery no integer ofsquery no integer streetNumberquery no string streetNamequery no string crossStreetquery no string municipalityquery no string municipalitySubdivisionquery no string countryTertiarySubdivisionquery no string countrySecondarySubdivisionquery no string countrySubdivisionquery no string postalCodequery no string languagequery no string extendedPostalCodesForquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
Reverse Geocoding 2 GET /search/{versionNumber}/reverseGeocode/crossStreet/{position}.{ext}Cross Street lookup Parameters Name In Required Type versionNumberpath yes integer positionpath yes string extpath yes string limitquery no integer spatialKeysquery no boolean headingquery no number radiusquery no integer languagequery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/reverseGeocode/{position}.{ext}Reverse Geocode Parameters Name In Required Type versionNumberpath yes integer positionpath yes string extpath yes string spatialKeysquery no boolean returnSpeedLimitquery no boolean headingquery no number radiusquery no integer numberquery no string returnRoadUsequery no boolean roadUsequery no string callbackquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
Search 10 GET /search/{versionNumber}/cS/{category}.{ext}Low Bandwith Category Search Parameters Name In Required Type versionNumberpath yes integer categorypath yes string extpath yes string typeaheadquery no boolean limitquery no integer ofsquery no integer countrySetquery no string latquery no number lonquery no number radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string idxSetquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/categorySearch/{query}.{ext}Category Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string typeaheadquery no boolean limitquery no integer ofsquery no integer countrySetquery no string latquery no number lonquery no number radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string extendedPostalCodesForquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/geometrySearch/{query}.{ext}Geometry Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string geometryListquery no string limitquery no integer languagequery no string extendedPostalCodesForquery no string idxSetquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
POST /search/{versionNumber}/geometrySearch/{query}.{ext}Geometry Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string limitquery no integer languagequery no string extendedPostalCodesForquery no string idxSetquery no string
Request body application/json
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/nearbySearch/.{ext}Nearby Search Parameters Name In Required Type versionNumberpath yes integer extpath yes string latquery yes number lonquery yes number limitquery no integer ofsquery no integer countrySetquery no string radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string extendedPostalCodesForquery no string minFuzzyLevelquery no integer maxFuzzyLevelquery no integer idxSetquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/poiSearch/{query}.{ext}Points of Interest Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string typeaheadquery no boolean limitquery no integer ofsquery no integer countrySetquery no string latquery no number lonquery no number radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string extendedPostalCodesForquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/routedSearch/{query}/{position}/{heading}.{ext}Routed Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string positionpath yes string headingpath yes number extpath yes string typeaheadquery no boolean limitquery no integer multiplierquery no integer routingTimeoutquery no integer languagequery no string extendedPostalCodesForquery no string idxSetquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/s/{query}.{ext}Low bandwith Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string typeaheadquery no boolean limitquery no integer ofsquery no integer countrySetquery no string latquery no number lonquery no number radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string idxSetquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
GET /search/{versionNumber}/search/{query}.{ext}Fuzzy Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string typeaheadquery no boolean limitquery no integer ofsquery no integer countrySetquery no string latquery no number lonquery no number radiusquery no integer topLeftquery no string btmRightquery no string languagequery no string extendedPostalCodesForquery no string minFuzzyLevelquery no integer maxFuzzyLevelquery no integer idxSetquery no string viewquery no string
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
POST /search/{versionNumber}/searchAlongRoute/{query}.{ext}Along Route Search Parameters Name In Required Type versionNumberpath yes integer querypath yes string extpath yes string maxDetourTimequery yes integer limitquery no integer
Request body application/json
Responses Status Description Schema 200— — 400— — 403— — 405— — 596— — 5XX— —
Developer reference Base URL https://api.tomtom.com
Rate limit Free tier: per-API monthly allowances (e.g. ~20,000 geocoding calls/month); TomTom is revising this pricing structure as of July 2026
Key endpoints GET /search/{versionNumber}/geocode/{query}.{ext} GET /search/{versionNumber}/structuredGeocode.{ext} GET /search/{versionNumber}/reverseGeocode/{position}.{ext} GET /search/{versionNumber}/poiSearch/{query}.{ext} GET /search/{versionNumber}/search/{query}.{ext}