Terrain Tiles
On this page
Terrain tiles provide elevation data and hillshading overlays for 3D map rendering. Add them on top of a vector tile map in MapLibre GL or Mapbox GL.
Authentication
Add your API key as ?api_key=YOUR_API_KEY to every request. See Authentication for details.
Hillshading
A raster hillshading overlay you can add on top of any vector map. Maximum zoom level: 14.
https://vtc-cdn.maptoolkit.net/hillshading/{z}/{x}/{y}.png?api_key=YOUR_API_KEYAdd hillshading as a layer in MapLibre GL:
map.on('load', () => {
map.addSource('shading', {
type: 'raster',
tiles: ['https://vtc-cdn.maptoolkit.net/hillshading/{z}/{x}/{y}.png?api_key=YOUR_API_KEY'],
tileSize: 256,
maxzoom: 14
});
map.addLayer({
id: 'hillshading-layer',
type: 'raster',
source: 'shading',
paint: { 'raster-opacity': 0.5 }
});
});3D Terrain
Elevation data encoded as a raster image (Terrarium encoding). Used for 3D terrain rendering in MapLibre GL and Mapbox GL. Maximum zoom level: 14.
https://tiles.maptoolkit.net/terrain/{z}/{x}/{y}.webp?api_key=YOUR_API_KEYAdd 3D terrain in MapLibre GL:
map.on('load', () => {
map.addSource('terrain-rgb', {
type: 'raster-dem',
tiles: ['https://tiles.maptoolkit.net/terrain/{z}/{x}/{y}.webp?api_key=YOUR_API_KEY'],
encoding: "terrarium",
tileSize: 256,
maxzoom: 14
});
map.setTerrain({ source: 'terrain-rgb', exaggeration: 1.5 });
});Examples
Working examples for this API, each with copyable source:
MapLibre GL JS





Mapbox GL JS
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. |
404 | Tile source not found. The tileset name in the URL does not exist. |
500 | Internal server error. |
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 have no request 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.
