Skip to main content

Maps API


The Protomaps Map API is a hosted, CDN-accelerated web service for interactive maps on the web. The Map API serves square Web Mercator tiles based on the MVT Vector Tiles specification : vector-tile-spec


The Protomaps Map API is under heavy development.

  • Access requires an API key.
  • Requests made from a web browser are subject to Cross-Origin Resource Sharing (CORS) limitations. The list of allowed sites can be set per API key at the Dashboard.

The URL for accessing map tiles is:{z}/{x}/{y}.pbf?key=<YOUR API KEY>

Other assets such as JavaScript Libraries, map styles, and fonts, can be loaded from content delivery networks and do not need an API key.

Examples:[email protected]/dist/leaflet.css[email protected]/dist/leaflet.js[email protected]/dist/protomaps.min.js

Vector Tile Layers & Tags#

Protomaps vector tiles are organized into the following layers:

  • natural (polygon)
    • Physical features like forests, wetlands and glaciers
  • landuse (polygon)
    • Manmade physical features like parks as well as abstract designations such as residential areas.
  • water (polygon)
    • Lakes, oceans, wide rivers, man made bodies of water such as pools, reservoirs
  • buildings (polygon)
  • physical_line (line)
    • Embankments, waterway centerlines
  • transit (line)
  • roads (line)
    • includes a pmap:kind key, which is one of highway, major_road, medium_road, minor_road, other
  • admin (line)
    • Human-defined boundaries - countries and administrative divisions
  • physical_point (point)
    • Label points for seas, mountain peaks
  • place (point)
    • Human-defined label points for neighborhoods, cities, countries and neighborhoods
  • poi (point)
    • Zoom level 14 and above


A map rendering library is needed to display interactive maps on the web. The Protomaps Map API is designed to work with any renderer that supports MVT format tiles, including:

  • Protomaps JS
  • MapLibre GL JS
  • Tangram JS
  • Leaflet.VectorGrid
  • OpenLayers

For more information on these see Protomaps.JS documentation and Alternate Renderers