Host PMTiles with Mappinest
Host PMTiles files with Mappinest and serve uploaded tilesets through TileJSON, vector tile, and raster tile endpoints.
Use this page when your workflow already produces a PMTiles archive and you want to publish it through Mappinest. After upload, Mappinest exposes the tileset through the same TileJSON, vector tile, and raster tile URL patterns used by other uploaded tilesets.
This keeps your application URL-first. Your map client does not need a custom PMTiles integration path unless you specifically want one. It can consume the Mappinest Tiles API through standard metadata and tile endpoints.
When to use PMTiles hosting
- Use PMTiles when your pipeline already exports
.pmtilesfiles. - Use it when you want to keep the source artifact as a portable single-file tile archive.
- Use it for vector or raster tilesets that should be served through normal web map endpoints.
- Use Host MBTiles with Mappinest when your tooling exports
.mbtilesfiles instead.
Upload and publish flow
- Create the PMTiles file with your preferred tiling workflow.
- Upload the PMTiles file through the console. See Upload Data for the full upload workflow, accepted formats, and validation steps.
- Let Mappinest validate the archive, metadata, tile weight, and supported output format.
- Open Tilesets, click the ready tileset name to open the preview, then click
Show API URLand copy the TileJSON or direct tile URL from the API drawer. - Use the published URL in MapLibre GL JS, Mapbox GL JS, OpenLayers, Leaflet, or another compatible map client.
Primary endpoint
Use TileJSON when the map client can read source metadata from a URL. It avoids hardcoding the tile template and gives the map client the bounds, zoom range, and layer metadata it needs.
Use the uploaded PMTiles in a map client
const apiKey = 'YOUR_MAPPINEST_KEY';
map.addSource('parcels', {
type: 'vector',
url: `https://api.mappinest.com/v1/tiles/mappinest.PARCELS.json?key=${apiKey}`
});
map.addLayer({
id: 'parcels-line',
type: 'line',
source: 'parcels',
'source-layer': 'PARCELS',
paint: {
'line-color': '#0f766e',
'line-width': 1
}
});Replace PARCELS with your own tileset Id and source layer. If the map does not render, fetch the TileJSON document directly and check the vector_layers array before changing your style code.
Production notes
- Use API key restrictions before exposing the URL in browser code.
- Check Upload Data for current file, vector, and raster limits.
- Use direct tile URLs only when the map client cannot consume TileJSON cleanly.
What to read next
Last updated: June 24, 2026