Pricing by products
This guide will walk you through which line items match up to some typical applications of:
- Web maps using older library versions
- Mobile applications using older SDK versions
- Web services APIs
- Hybrid frameworks
- Third-party tools
This page does not include the number of units included in the free tier, the exact cost per billable unit, or volume-based discounts. For this information, see the pricing page.
Web maps using older library versions
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 pricing information relating to Mapbox GL JS v1.0.0 and higher, see the current product pricing page.
Mapbox GL JS < v1.0.0
- Billed by tile requests
- Upgrade to new pricing by updating your Mapbox GL JS version
- See rates and discounts per Vector Tiles API request or Raster Tiles API request in the pricing page's Maps section
Web maps using any version of Mapbox GL JS before v1.0.0 are billed by tile requests. There are two types of tile requests made from Mapbox GL JS:
- Vector Tiles API requests for any tiles from vector tilesets including Mapbox-maintained tilesets like Mapbox Streets or any custom vector tileset uploaded to your Mapbox account.
- Raster Tiles API requests for any tiles from raster tilesets including Mapbox-maintained tilesets like Mapbox Satellite or any custom raster tileset uploaded to your Mapbox account.
There are a few key differences between this tile-based pricing and the map load pricing used by higher versions of Mapbox GL JS, including:
- Map interaction: The more the user interacts with the map, the more tiles are requested. Interact with the map in the demo below to see the relationship between user interaction and the number of tiles requested. (In map load based pricing, it counts as one map load regardless of how much the user interacts with the map.)
- Composite sources vs. non-composite sources: You can combine any Mapbox style with a Mapbox-maintained tileset, like Terrain v2 or Traffic v1, or tilesets that you upload to Mapbox Studio. Sources added on the client will not be composited so every tile from each vector source will be requested separately, counting toward total tile requests. You can composite vector tile sources in Mapbox Studio to reduce the number of tiles that are requested.
- Vector tiles vs. raster tiles: As described above, vector tiles and raster tiles are counted and billed separately.
Leaflet
- Billed by tile requests
- See rates and discounts per Static Tiles API request or Raster Tiles API request in the pricing page's Maps section
If you are using Leaflet with Mapbox-hosted map tiles, usage is determined by tile requests. Leaflet applications display raster tiles, but there are two different kinds of tile requests you may be making: Static Tiles API requests or Raster Tiles API requests.
Raster tiles from Mapbox GL styles
If you are using a Mapbox GL map style (using a style URL) via L.tileLayer
, you are requesting map tiles from the Static Tiles API, which takes GL-based styles and renders raster tiles.
The example below uses a GL-based style, mapbox://styles/mapbox/streets-v12
, with Leaflet. Each tile has a red border to help you see how many are required to display the map you see on the screen.
var map = L.map('map')
.setView([38.8929, -77.0252], 14)
.addLayer(
L.tileLayer(
'https://api.mapbox.com/styles/v1/mapbox/streets-v12/tiles/256/{z}/{x}/{y}?access_token=YOUR_MAPBOX_ACCESS_TOKEN',
{
maxZoom: 19,
attribution:
'© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> © <a href="https://www.mapbox.com/about/maps/">Mapbox</a> <strong><a href="https://labs.mapbox.com/contribute/" target="_blank">Improve this map</a></strong>'
}
)
);
Raster tiles from raster tilesets
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 or another raster data source.
The example below uses the raster tileset, mapbox.satellite
, with Leaflet. Each tile has a red border to help you see how many are required to display the map you see on the screen.
var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer(
'https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v12/tiles/256/{z}/{x}/{y}?access_token=YOUR_MAPBOX_ACCESS_TOKEN',
{
maxZoom: 19,
attribution:
'© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> © <a href="https://www.mapbox.com/about/maps/">Mapbox</a> <strong><a href="https://labs.mapbox.com/contribute/" target="_blank">Improve this map</a></strong>'
}
).addTo(map);
Mobile applications using older SDK versions
Pricing for mobile applications is either based on monthly active users (MAUs) or tile requests. The pricing method that applies to your application depends on which product you are using, and in some cases, the version of that product.
MAUs are users that accessed Mapbox services within your applications during a given month. The month-long period aligns with your billing period, which is likely not aligned with calendar months.
This guide does not include the number of units included in the free tier, the exact cost per billable unit, or volume-based discounts for each service. For this information, see the pricing page.
These are the SDKs and versions that are included in this section:
- Maps SDK for iOS and Android
- Navigation SDK for iOS and Android
- Vision SDK for iOS and Android
- Maps SDK for Unity
Maps SDK for iOS and Android
Applications built with the Mapbox Maps SDK are billed based on monthly active users (MAUs). The MAU line item shown in your invoice will vary based on the version of the Maps SDK you are using. This guide discusses pricing for older versions of the Maps SDK (less than v5.0.0 for iOS or less than v8.0.0 for Android), which are billed by _Legacy SDKs for mobile MAUs*.
For pricing information about more recent versions of the Maps SDK, which are billed by Maps SDKs for mobile MAUs, see the product documentation for the Maps SDK for iOS (v5.0.0 and higher) and the Maps SDK for Android (v8.0.0 and higher).
- Billed by Legacy SDKs for mobile MAUs
- Upgrade to new pricing by updating your Maps SDK version
- See rates and discounts per Maps MAUs in the pricing page's Session & user pricing section
The free tier and cost per Legacy SDKs for mobile MAU is equal to the free tier and cost for Maps SDK for mobile MAUs. To see the number of MAUs included in the free tier and the cost per MAU beyond the free tier, see the Maps SDK for mobile section of our pricing page.
Navigation SDK for iOS and Android
Applications built with the Mapbox Navigation SDK are billed based on monthly active users (MAUs). The MAU line items shown in your invoices will vary based on the version of the Navigation SDK you are using. This guide discusses pricing for older versions of the Navigation SDK, which are billed either by Maps SDKs for mobile MAUs and Directions API requests, or Legacy SDKs for mobile MAUs, Directions API requests, and Vector Tiles API requests.
For pricing information about more recent versions of the Navigation SDK, which are billed by Navigation SDK MAUs, see the product documentation for the Navigation SDK for iOS (v1.0.0 and higher) and the Navigation SDK for Android (v1.0.0).
Maps SDKs for mobile MAUs + Directions API requests
- Billed by Maps SDKs for mobile MAUs + Directions API requests
- Upgrade to new pricing by updating your Navigation SDK version
This line item applies to the following versions of the Navigation SDK:
- Android: 0.41.0 to 0.42.x
- iOS: 0.36.0 to 0.40.x
Applications built with these versions are billed based on a combination of monthly active users (specifically "Maps SDKs for mobile" MAUs) and Directions API requests. Maps SDKs for mobile MAUs include Vector Tiles API and Raster Tiles API requests. Directions API requests will appear as a separate line item in your monthly invoice.
To see the number of MAUs and requests included in the free tier and the cost per MAU or request beyond the free tier, see:
Legacy SDKs for mobile MAUs + Directions API requests + Vector Tiles API requests
- Billed by Legacy SDK MAUs + Directions API requests + Vector Tiles API requests
- Upgrade to new pricing by updating your Navigation SDK version
This line item applies to the following versions of the Navigation SDK:
- Android: less than 0.41.0
- iOS: less than 0.36.0
Applications built with these versions are billed based on a combination of monthly active users (specifically "Legacy SDKs for mobile" MAUs), Directions API requests, and Vector Tile API requests. Legacy versions of the Navigation SDKs billed by Legacy SDKs for mobile MAUs do not include Vector Tiles API, Raster Tiles API requests, and Directions API requests - those will appear as separate line items in your monthly invoice.
The free tier and cost per Legacy SDKs for mobile MAU is equal to the free tier and cost for Maps SDK for mobile MAUs as listed on our pricing page.
To see the number of MAUs and requests included in the free tier and the cost per MAU or request beyond the free tier, see:
- Maps SDKs for mobile section of our pricing page (equivalent to Legacy SDK for mobile rates and tiers)
- Directions API section of our pricing page
- Vector Tiles API section of our pricing page
Vision SDK for iOS and Android
Applications built with the Mapbox Vision SDK for iOS and the Mapbox Vision SDK for Android are billed based on monthly active users (MAUs). The MAU line item shown in your invoice will vary based on the version of the Vision SDK you are using. This guide discusses pricing for older versions of the Vision SDK, which are billed by Legacy SDKs for mobile MAUs.
For pricing information about more recent versions of the Vision SDK (v0.6.0 and higher for iOS and Android), which are billed by _Vision SDKs for mobile MAUs*, see the product documentation for the Vision SDK for iOS and the Vision SDK for Android.
Legacy SDKs for mobile MAUs
- Billed by Legacy SDKs for mobile MAUs
- Upgrade to new pricing by updating your Vision SDK version
- See rates and discounts per Vision MAUs in the pricing page's Session & user pricing section
This line item applies to the following versions of the Vision SDK:
- Android: less than 0.6.0
- iOS: less than 0.6.0
The free tier and cost per Legacy SDKs for mobile MAU is equal to the free tier and cost for Maps SDK for mobile MAUs. For details about this pricing, see the Maps SDK for Mobile section on our pricing page.
Maps SDK for Unity
- Billed by Maps SDK for Unity MAUs or Legacy SDKs for mobile MAUs
- Upgrade to new pricing by updating your Maps SDK for Unity version
- See rates and discounts per Maps SDK for Unity MAUs in the pricing page's Maps SDK for Unity section
Applications built with the Mapbox Maps SDK for Unity are billed based on monthly active users. For more details, see the Maps SDK for Unity pricing documentation.
Web services APIs
Maps-related APIs
Your use of Maps-related APIs is measured in tile requests, processing and hosting events, or API requests.
Tile requests
Use of the Vector Tiles API and the Raster Tiles API is measured in tile requests. For more information, see the relevant API documentation:
The Static Tiles API may be billed by tile requests if it is used with Leaflet, a third-party tool such as ArcGIS or Carto, or a hybrid framework. Otherwise, use of the Static Tiles API is billed by API requests rather than tile requests.