Find an API

Search public APIs with auth details & Postman guides

← All APIs

Maps

tomtom · Location

Location No Auth Free & Open location

The Maps API web services suite offers the following APIs: - Raster The Maps Raster API renders map data that is divided into gridded sections called tiles. Tiles are square images (png or jpg format) in various sizes which are available at 19 different zoom levels, ranging from 0 to 20. For zoom level 0, the entire earth is displayed on one single tile, while at zoom level 20, the world is divided into 2 40 tiles. - Vector Similar to Maps Raster API, the Maps Vector API serves

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Static Image

The Static Image service renders a rectangular raster image in the style, size, and zoom level specified. The image can be requested using either a center point plus width and height or a bounding box.

https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/staticimage?bbox=example&view=Unified&zoom=12&layer=basic&style=main&width=512&center=example&format=png&height=512

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/staticimage?bbox=example&view=Unified&zoom=12&layer=basic&style=main&width=512&center=example&format=png&height=512"
import requests
params = {
    "bbox": "example",
    "view": "Unified",
    "zoom": "12",
    "layer": "basic",
    "style": "main",
    "width": "512",
    "center": "example",
    "format": "png",
    "height": "512"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/staticimage",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/staticimage');
url.searchParams.set('bbox', 'example');
url.searchParams.set('view', 'Unified');
url.searchParams.set('zoom', '12');
url.searchParams.set('layer', 'basic');
url.searchParams.set('style', 'main');
url.searchParams.set('width', '512');
url.searchParams.set('center', 'example');
url.searchParams.set('format', 'png');
url.searchParams.set('height', '512');

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/maps/1.0.0/map/{versionNumber}/staticimage")
	q := baseURL.Query()
	q.Set("bbox", "example")
	q.Set("view", "Unified")
	q.Set("zoom", "12")
	q.Set("layer", "basic")
	q.Set("style", "main")
	q.Set("width", "512")
	q.Set("center", "example")
	q.Set("format", "png")
	q.Set("height", "512")
	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/maps/1.0.0/map/{versionNumber}/staticimage")
uri.query = URI.encode_www_form({
  "bbox" => "example",
  "view" => "Unified",
  "zoom" => "12",
  "layer" => "basic",
  "style" => "main",
  "width" => "512",
  "center" => "example",
  "format" => "png",
  "height" => "512"
})

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/maps/1.0.0/map/{versionNumber}/staticimage?" . http_build_query([
    "bbox" => "example",
    "view" => "Unified",
    "zoom" => "12",
    "layer" => "basic",
    "style" => "main",
    "width" => "512",
    "center" => "example",
    "format" => "png",
    "height" => "512"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET GetMap

The GetMap call implements the Web Map Service 1.1.1 standard to access TomTom raster map tiles. This service is described in the response to the GetCapabilities API call.

https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms?srs=EPSG:3857&bbox=example&width=1&format=image/jpeg&height=1&layers=basic&styles=&request=GetMap&service=WMS&version=1.1.1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms/?srs=EPSG%3A3857&bbox=example&width=1&format=image%2Fjpeg&height=1&layers=basic&styles=&request=GetMap&service=WMS&version=1.1.1"
import requests
params = {
    "srs": "EPSG:3857",
    "bbox": "example",
    "width": "1",
    "format": "image/jpeg",
    "height": "1",
    "layers": "basic",
    "styles": "",
    "request": "GetMap",
    "service": "WMS",
    "version": "1.1.1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms/",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms/');
url.searchParams.set('srs', 'EPSG:3857');
url.searchParams.set('bbox', 'example');
url.searchParams.set('width', '1');
url.searchParams.set('format', 'image/jpeg');
url.searchParams.set('height', '1');
url.searchParams.set('layers', 'basic');
url.searchParams.set('styles', '');
url.searchParams.set('request', 'GetMap');
url.searchParams.set('service', 'WMS');
url.searchParams.set('version', '1.1.1');

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/maps/1.0.0/map/{versionNumber}/wms/")
	q := baseURL.Query()
	q.Set("srs", "EPSG:3857")
	q.Set("bbox", "example")
	q.Set("width", "1")
	q.Set("format", "image/jpeg")
	q.Set("height", "1")
	q.Set("layers", "basic")
	q.Set("styles", "")
	q.Set("request", "GetMap")
	q.Set("service", "WMS")
	q.Set("version", "1.1.1")
	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/maps/1.0.0/map/{versionNumber}/wms/")
uri.query = URI.encode_www_form({
  "srs" => "EPSG:3857",
  "bbox" => "example",
  "width" => "1",
  "format" => "image/jpeg",
  "height" => "1",
  "layers" => "basic",
  "styles" => "",
  "request" => "GetMap",
  "service" => "WMS",
  "version" => "1.1.1"
})

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/maps/1.0.0/map/{versionNumber}/wms/?" . http_build_query([
    "srs" => "EPSG:3857",
    "bbox" => "example",
    "width" => "1",
    "format" => "image/jpeg",
    "height" => "1",
    "layers" => "basic",
    "styles" => "",
    "request" => "GetMap",
    "service" => "WMS",
    "version" => "1.1.1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET GetCapabilities

The GetCapabilities call is part of TomTom's implementation of version 1.1.1 the Web Map Service (WMS). It provides descriptions of the other calls that are available in the implementation.

https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms?request=GetCapabilities&service=WMS&version=1.1.1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms//?request=GetCapabilities&service=WMS&version=1.1.1"
import requests
params = {
    "request": "GetCapabilities",
    "service": "WMS",
    "version": "1.1.1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms//",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/tomtom.com/maps/1.0.0/map/{versionNumber}/wms//');
url.searchParams.set('request', 'GetCapabilities');
url.searchParams.set('service', 'WMS');
url.searchParams.set('version', '1.1.1');

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/maps/1.0.0/map/{versionNumber}/wms//")
	q := baseURL.Query()
	q.Set("request", "GetCapabilities")
	q.Set("service", "WMS")
	q.Set("version", "1.1.1")
	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/maps/1.0.0/map/{versionNumber}/wms//")
uri.query = URI.encode_www_form({
  "request" => "GetCapabilities",
  "service" => "WMS",
  "version" => "1.1.1"
})

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/maps/1.0.0/map/{versionNumber}/wms//?" . http_build_query([
    "request" => "GetCapabilities",
    "service" => "WMS",
    "version" => "1.1.1"
]);
$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

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Maps?

Maps 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. Maps 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?

Open documentation ↗