Pricing for web map usage is based on API requests (i.e. tile requests), sessions (i.e. map loads) or monthly users (i.e. seats). The pricing method that applies to your application depends on which product you are using, and in some cases, which version of that product. These are the libraries, tools, and versions that are included in this section:
For an overview of how to manage your costs for common interactive, non-interactive, and hybrid web map implementations, see the Manage your web map costs troubleshooting guide.
The action that triggers a map load changed in Mapbox GL JS v2.0.0:
Mapobject is initialized on a webpage.
Mapobject is initialized on a webpage and you request a Mapbox-hosted map tile.
Before updating an existing implementation from v1.x.x to v2.x.x, please review this pricing documentation to estimate expected costs.
Web maps using Mapbox GL JS v1.0.0 and higher are billed by map loads. Beginning with Mapbox GL JS v2.0.0, a map load occurs whenever a Mapbox GL JS
Map object is initialized. Measuring usage by map loads means that users interacting with your web map can toggle layers from non-composited sources on and off, zoom and pan around the map, and toggle between styles without affecting your usage. You can also add non-composited vector or raster sources to your map at runtime without incurring additional charges. The maximum session length for a map load is 12 hours. If a user has the same map open after 12 hours, Mapbox will count that as a new map load session.
Web maps using Mapbox GL JS Seats are billed by seats. A seat consists of a single user who uses Mapbox services within your web application during your month-long billing period. Each user can use unlimited Vector Tiles API and Raster Tiles API requests per month.
Web maps using any version of Mapbox GL JS before v1.0.0 are billed by tile requests. There are two different types of tile requests that can be made by Mapbox GL JS:
There are a few key differences between this tile-based pricing and the map load pricing described above, including:
If you are using Mapbox.js or Leaflet with Mapbox-hosted map tiles, usage is determined by tile requests. Mapbox.js and Leaflet applications display raster tiles, however there are two different kinds of tile requests you may be making: Static Tiles API requests or Raster Tiles API requests.
The example below uses a GL-based style,
mapbox://styles/mapbox/streets-v11, with Mapbox.js. Each tile has a red border to help you see how many are required to display the map you see on the screen.
L.map('map') .setView([38.8929, -77.0252], 14) .addLayer(L.mapbox.styleLayer('mapbox://styles/mapbox/streets-v11'));
If you are setting the map style via a raster tileset's tileset ID, you are requesting map tiles from the Raster Tiles API. Raster tiles can be satellite imagery, another raster data source, or a classic style.
As of June 1, 2020, Mapbox classic styles are no longer supported and cannot be requested by new applications. If you are using a Mapbox Studio Classic style, follow either the guide to migrate to the modern Static Images API or the guide to migrate to the modern Static Tiles API.
The example below uses the raster tileset,
mapbox.satellite, with Mapbox.js. Each tile has a red border to help you see how many are required to display the map you see on the screen.
L.mapbox.map('map', 'mapbox.satellite') .setView([38.8929, -77.0252], 14);
Web maps that rely on Mapbox-hosted tiles, but are not served via Mapbox GL JS are billed by tile requests. This includes vector tiles from vector tilesets, GL-based styles rendered as raster tiles, and raster tiles from raster tilesets. The table below includes some popular third-party integrations. Not all possible third-party tools are included.