Raster Tiles
Raster tiles are pre-rendered map images served as PNG files. They work with Leaflet, OpenLayers, and any other library that supports the standard slippy map tile format.
Use raster tiles when you need a simple setup or when your library does not support vector tiles.
Standard Map Styles
https://styles.maptoolkit.net/maptoolkit/maptoolkit.summer.json?api_key=YOUR_API_KEYhttps://styles.maptoolkit.net/maptoolkit/maptoolkit.winter.json?api_key=YOUR_API_KEYhttps://styles.maptoolkit.net/maptoolkit/maptoolkit.hiking.json?api_key=YOUR_API_KEYhttps://styles.maptoolkit.net/maptoolkit/maptoolkit.cycling.json?api_key=YOUR_API_KEYhttps://styles.maptoolkit.net/maptoolkit/maptoolkit.street.json?api_key=YOUR_API_KEYhttps://styles.maptoolkit.net/maptoolkit/maptoolkit.light.json?api_key=YOUR_API_KEYhttps://styles.maptoolkit.net/maptoolkit/maptoolkit.dark.json?api_key=YOUR_API_KEYYou can preview all styles at maptoolkit.com/map.
Tile URL
https://rtc-cdn.maptoolkit.net/rtc/{style_name}/{z}/{x}/{y}.png?api_key=YOUR_API_KEYFor high-resolution displays, use the @2x suffix:
https://rtc-cdn.maptoolkit.net/rtc/{style_name}/{z}/{x}/{y}@2x.png?api_key=YOUR_API_KEYReplace {style_name} with one of the bold style names from the Standard Map Styles list above.
Authentication
Add your API key as ?api_key=YOUR_API_KEY to every request. See Authentication for details.
Use Raster Tiles with Leaflet
const map = L.map('map').setView([47.268, 11.400], 13);
L.tileLayer(
'https://rtc-cdn.maptoolkit.net/rtc/maptoolkit-maptoolkit.summer/{z}/{x}/{y}{ratio}.png?api_key=YOUR_API_KEY',
{
ratio: L.Browser.retina ? '@2x' : '',
maxZoom: 18,
attribution: '© <a href="https://www.maptoolkit.com">Maptoolkit</a> © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}
).addTo(map);<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css" />
<style>
body { margin: 0; }
#map { height: 400px; }
</style>
</head>
<body>
<div id="map"></div>
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js"></script>
<script>
const map = L.map('map').setView([47.268, 11.400], 13);
L.tileLayer(
'https://rtc-cdn.maptoolkit.net/rtc/maptoolkit-maptoolkit.summer/{z}/{x}/{y}{ratio}.png?api_key=YOUR_API_KEY',
{
ratio: L.Browser.retina ? '@2x' : '',
maxZoom: 18,
attribution: '© <a href="https://www.maptoolkit.com">Maptoolkit</a> © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}
).addTo(map);
</script>
</body>
</html>Custom Styles
Custom map styles are available on request. Contact us for details.
Examples
Working examples for this API, each with copyable source:
Errors
Errors return the HTTP status code with a plain-text message in the body.
| Status | Meaning |
|---|---|
403 | The API key is missing (Access denied!) or not recognized (Api-key not found!). See First Steps. |
400 | The tile could not be rendered. |
404 | The tile does not exist. |
Known messages
| Message | Cause |
|---|---|
Tile cannot be rendered | The renderer failed to produce the tile. |
Rastertiles start at zoomlevel 1 | Zoom level 0 is not supported. |
Tile does not exist | The tile is outside the style’s coverage area. |
Style initialization errors are forwarded as-is.
Rate limits
Limits are monthly request quotas tied to your plan rather than a per-second rate: the
service returns no RateLimit-* or Retry-After headers. Current allowances are on the
pricing page.
The free Basic plan has a hard limit, so requests are refused once it is reached. On Pro and Ultra, requests past the allowance are billed rather than refused. Enterprise plans use a flexible limit.
Tile requests are metered separately from API requests and at a lower rate, so a map-heavy application is budgeted differently from one making API calls.
Pricing
Self-service plans (Basic, Pro, and Ultra) are billed through RapidAPI; see RapidAPI for how to subscribe and authenticate. Plan limits and prices are listed on the Maptoolkit pricing page. Enterprise customers call the native hosts directly with a Maptoolkit API key.
