Already running Leaflet? maps.guru serves raster/static fallbacks via the public Tiles API. Paste the URL pattern into L.tileLayer and you are done. For vector, switch to MapLibre for the same auth.
pnpm add leaflet @types/leafletimport L from 'leaflet';
import 'leaflet/dist/leaflet.css';
// Raster fallback (works with plain tiles already in your Leaflet app).
// For vector tiles + WMS sprites/glyphs, switch to MapLibre (see /maps-for/maplibre).
const TILE_URL =
'https://tiles.maps.guru/v1/planet-vector/{z}/{x}/{y}.png?key=YOUR_API_KEY';
const map = L.map('map-canvas').setView([28.6139, 77.209], 11);
L.tileLayer(TILE_URL, {
maxZoom: 19,
attribution: '© maps.guru · OpenStreetMap contributors',
}).addTo(map);
L.marker([28.6139, 77.209]).addTo(map).bindPopup('New Delhi');
Free-tier generous enough for real production traffic. 50,000 tile requests/month , no credit card.
Not natively. Leaflet is a raster tile renderer. For vector tiles, use MapLibre. The maps.guru style URL works the same way, so the migration is mostly drop-in.
Sign up at /signup, then visit /dashboard/tokens to create a key with the "maps" scope.
The vocabulary behind vector tiles, styles, and geocoding, in plain language.
Join developers worldwide who trust maps.guru for their mapping needs. Start free, no credit card required.