Search
tomtom · Location
Search API is a RESTful API that allows developers to run a single line fuzzy search for addresses and POIs. Search API returns the latitude/longitude of a specific address, cross street, geographic feature, or point of interest (POI).
Authentication
Sample Requests
Additional Data
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/additionalData.{ext}?geometries=example&geometriesZoom=0"import requests
params = {
"geometries": "example",
"geometriesZoom": "0"
}
response = requests.get(
"https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/additionalData.{ext}",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/additionalData.{ext}');
url.searchParams.set('geometries', 'example');
url.searchParams.set('geometriesZoom', '0');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/additionalData.{ext}")
q := baseURL.Query()
q.Set("geometries", "example")
q.Set("geometriesZoom", "0")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/additionalData.{ext}")
uri.query = URI.encode_www_form({
"geometries" => "example",
"geometriesZoom" => "0"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/additionalData.{ext}?" . http_build_query([
"geometries" => "example",
"geometriesZoom" => "0"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Geometry Filter
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/geometryFilter.{ext}?poiList=example&geometryList=example"import requests
params = {
"poiList": "example",
"geometryList": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/geometryFilter.{ext}",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/geometryFilter.{ext}');
url.searchParams.set('poiList', 'example');
url.searchParams.set('geometryList', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/geometryFilter.{ext}")
q := baseURL.Query()
q.Set("poiList", "example")
q.Set("geometryList", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/geometryFilter.{ext}")
uri.query = URI.encode_www_form({
"poiList" => "example",
"geometryList" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/geometryFilter.{ext}?" . http_build_query([
"poiList" => "example",
"geometryList" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Nearby Search
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/nearbySearch/.{ext}?lat=51.5074&lon=-0.1278&ofs=0&view=Unified&limit=10&idxSet=example&radius=10000&topLeft=example&btmRight=example&language=en&countrySet=example&maxFuzzyLevel=2&minFuzzyLevel=1&extendedPostalCodesFor=example"import requests
params = {
"lat": "51.5074",
"lon": "-0.1278",
"ofs": "0",
"view": "Unified",
"limit": "10",
"idxSet": "example",
"radius": "10000",
"topLeft": "example",
"btmRight": "example",
"language": "en",
"countrySet": "example",
"maxFuzzyLevel": "2",
"minFuzzyLevel": "1",
"extendedPostalCodesFor": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/nearbySearch/.{ext}",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/nearbySearch/.{ext}');
url.searchParams.set('lat', '51.5074');
url.searchParams.set('lon', '-0.1278');
url.searchParams.set('ofs', '0');
url.searchParams.set('view', 'Unified');
url.searchParams.set('limit', '10');
url.searchParams.set('idxSet', 'example');
url.searchParams.set('radius', '10000');
url.searchParams.set('topLeft', 'example');
url.searchParams.set('btmRight', 'example');
url.searchParams.set('language', 'en');
url.searchParams.set('countrySet', 'example');
url.searchParams.set('maxFuzzyLevel', '2');
url.searchParams.set('minFuzzyLevel', '1');
url.searchParams.set('extendedPostalCodesFor', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/nearbySearch/.{ext}")
q := baseURL.Query()
q.Set("lat", "51.5074")
q.Set("lon", "-0.1278")
q.Set("ofs", "0")
q.Set("view", "Unified")
q.Set("limit", "10")
q.Set("idxSet", "example")
q.Set("radius", "10000")
q.Set("topLeft", "example")
q.Set("btmRight", "example")
q.Set("language", "en")
q.Set("countrySet", "example")
q.Set("maxFuzzyLevel", "2")
q.Set("minFuzzyLevel", "1")
q.Set("extendedPostalCodesFor", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/nearbySearch/.{ext}")
uri.query = URI.encode_www_form({
"lat" => "51.5074",
"lon" => "-0.1278",
"ofs" => "0",
"view" => "Unified",
"limit" => "10",
"idxSet" => "example",
"radius" => "10000",
"topLeft" => "example",
"btmRight" => "example",
"language" => "en",
"countrySet" => "example",
"maxFuzzyLevel" => "2",
"minFuzzyLevel" => "1",
"extendedPostalCodesFor" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/tomtom.com/search/1.0.0/search/{versionNumber}/nearbySearch/.{ext}?" . http_build_query([
"lat" => "51.5074",
"lon" => "-0.1278",
"ofs" => "0",
"view" => "Unified",
"limit" => "10",
"idxSet" => "example",
"radius" => "10000",
"topLeft" => "example",
"btmRight" => "example",
"language" => "en",
"countrySet" => "example",
"maxFuzzyLevel" => "2",
"minFuzzyLevel" => "1",
"extendedPostalCodesFor" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Search?
Search is a Location API. Developers commonly use location APIs for:
- tracking assets and vehicles in real time
- building delivery and logistics apps
- finding nearby businesses or services
- geo-fencing and location-based notifications
- address validation and autocomplete
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Search is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?