Pricing by products

This guide will walk you through which line items match up to some typical applications of:

Not included in this guide

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

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.

Mapbox GL JS v1.0.0 and higher

Overview
Updating from v1.x.x to v2.x.x

The action that triggers a map load changed in Mapbox GL JS v2.0.0:

  • Mapbox GL JS v2.x.x: A map load occurs whenever a Mapbox GL JS Map object is initialized on a webpage.
  • Mapbox GL JS v1.x.x: A map load occurs whenever a Mapbox GL JS Map object 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.

Mapbox GL JS < v1.0.0

Overview
  • 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 different types of tile requests that can be made by 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 described above, 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.

Mapbox.js or Leaflet

Overview
  • 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 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.

Raster tiles from Mapbox GL styles

If you are using a Mapbox GL map style (using a style URL) via L.mapbox.styleLayer, 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-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'));

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, another raster data source, or a classic style.

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);

Third-party tools

Overview
  • Billed by tile requests or Map Loads for Web
  • See rates and discounts per Vector Tiles API request, Static Tiles API request, or Raster Tiles API request in the pricing page's Maps section

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.

ProductsWhat will appear on your invoice
FramerXVector Tiles API
PowerBIMap Loads for Web
Carto with a style URLStatic Tiles API
ArcGIS with a style URLStatic Tiles API
QGIS with a style URLStatic Tiles API

Mobile applications

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

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).

Overview
  • 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.

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

Overview
  • 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

Overview
  • 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.

Cost per Legacy SDKs for mobile MAU

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:

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

Overview
  • 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

Overview
  • 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 Session & user pricing section

Applications built with the Mapbox Maps SDK for Unity are billed based on monthly active users.

The line item shown in your invoice will vary based on the version of the Maps SDK you are using. Below is a breakdown of what you can expect to see on your invoice:

ProductVersionUsage units
Maps SDK for Unity2.1.0 and higherMaps SDKs for Unity MAUs
Maps SDK for Unityless than 2.1.0Legacy SDKs for mobile MAUs

For Maps SDK for Unity MAUs, a single monthly active user may make unlimited Vector Tiles API, Raster Tiles API, and Static Tiles API requests per month. Usage of APIs and other Mapbox products outside the Vector Tiles API and Raster Tiles API are billed in addition to Maps SDK for Unity MAUs.

Cost per Legacy SDKs for mobile MAU

For all products listed above, 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.

Hybrid apps

Overview
  • Billed by Legacy SDK MAUs or tile requests
  • See rates and discounts per Vector Tiles API request, Raster Tiles API request, or Static Tiles API request in the pricing page's Maps section

Third-party frameworks built from the native Mapbox Mobile SDKs are typically billed based on monthly active users. Apps built with other third-party frameworks are billed based on tile requests. Below are some examples of popular SDKs and frameworks and whether Mapbox tracks usage through mobile users or tile requests.

SDK or frameworkLegacy SDK MAUsTile requests
Community-managed Maps SDK for React Native
Cordova + native SDK
Xamarin + native SDK
Phonegap + Mapbox.js
Cordova + Mapbox.js
Mapbox GL JS-based hybrid SDKs
Cost per Legacy SDKs for mobile MAU

For all products listed above, 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.

Offline maps

Overview
  • Billed by tile requests
  • Upgrade to new pricing by updating your Maps SDK version
  • See rates and discounts per Vector Tiles API request or Raster Tiles API request in the pricing page's Maps section

Offline maps usage in the Maps SDKs for Mobile are measured in tile requests. Resources downloaded for offline use are not included in MAU billing. For versions of the Maps SDK for iOS less than 5.3.0 or the Maps SDK for Android less than 8.3.0, the download limit for offline tiles is 6,000 per end user, which means each of your users can download 6,000 tiles for offline use. Upgrade to the latest versions of the SDKs to enable your users to download more than 6,000 tiles in your applications.

For offline maps pricing information for more recent versions of the Maps SDK, see the product documentation for the Maps SDK for iOS (v5.3.0 and higher) and the Maps SDK for Android (v8.3.0 and higher).

Adjust the tile limit per user

If you are using the Maps SDK for iOS v5.3.0 and higher or the Maps SDK for Android v8.3.0 and higher, you can adjust the limit of offline tiles your users can download. To do so, see the instructions for iOS and Android. Note that you will be billed accordingly for each tile request beyond the free tier. If you are using a version of the Maps SDK that is less than these versions, update your SDK version to take advantage of this capability.

For offline maps, two different types of tile requests can be made:

  • Vector Tiles API requests are made for offline regions that use vector tilesets including Mapbox-maintained tilesets like Mapbox Streets or any custom vector tileset uploaded to your Mapbox account.
  • Raster Tiles API requests are made for offline regions that use raster tilesets including Mapbox-maintained tilesets like Mapbox Satellite or any custom raster tileset uploaded to your Mapbox account.

Vector Tiles API requests and Raster Tiles API requests for offline maps are cumulative, meaning they are counted toward the total number of tile requests made with your account. For example, if you are accumulating tile requests via web maps in addition to offline maps, you will be billed according to the pricing tiers for the total number of tile requests made with your account (the sum of your web map usage and offline map tile downloads).

For pricing information for the Navigation-related APIs measured in API requests, see the relevant API documentation:

For pricing information for the Matrix API, which is measured in elements, see the Matrix API documentation.

We have several tools across platforms that allow you to integrate Mapbox Directions-related APIs into your existing applications, including:

When using a directions-related library or plugin with a Mapbox map, you will be billed for the number of directions-related requests made in addition to map loads, Maps MAUs, or tile requests (read the Web maps or Mobile applications section above to see which applies to your application).

Geocoding API

For pricing information for the Geocoding API, which is measured in API requests, see the Geocoding API documentation.

We have several tools across platforms that allow you to integrate the Mapbox Geocoding API into your existing applications, including:

When using a search-related library or plugin with a Mapbox map, you will be billed for the number of search-related requests made in addition to Maps MAUs for mobile applications or map loads or tile requests for web maps (read the Web maps or Mobile applications section above to see which applies to your application). For libraries and plugins that include autocomplete, searches are billed as one API call per keystroke. Visit the Geocoding API documentation to learn more.

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 Mapbox.js, a third-party tool such as Leaflet or Carto, or a hybrid app. See the Web maps section for more details. Otherwise, use of the Static Tiles API is billed by API requests rather than tile requests.

Processing and hosting events

Use of Mapbox Tiling Service (MTS) and the Uploads API is measured in processing and hosting events. For more information, see the relevant documentation:

API requests

Use of the Static Images API, the Static Tiles API, and the Tilequery API is measured in API requests. For more information, see the relevant API documentation:

Mapbox Studio

Prints

For pricing information about prints created using the Mapbox Studio print panel, see the Studio Manual.

Tilesets uploaded in Studio

While Mapbox Studio is powered by the Uploads API to create tilesets, it is subject to usage restrictions and alternative pricing. See the Studio Manual for pricing details.