Pricing by products

This page will help you understand how the Mapbox products you use translate to line items on your Mapbox invoice. 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 either based on session-based map loads or tile requests. The pricing method that applies to your application depends on which product you are using, and in some cases, which version of that product. See below for pricing methods by product.

Mapbox GL JS v1.0.0 and higher

Overview

Web maps using Mapbox GL JS v1.0.0 and higher are billed by map loads. A map load occurs whenever a Mapbox GL JS Map object is initialized on a webpage and you request a Mapbox-hosted map tile. 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, we will count that as a new map load session.

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
Deprecating map view rates in December 2019

Usage for Mapbox GL JS < v1.0.0 is measured in tile requests. The rate per tile request is changing for users who created their account before May 22, 2019 and did not opt into new pricing on their Account page.

In December 2019 the legacy map view rate will be deprecated for all Pay-as-you-go accounts. If you have not upgraded to Mapbox GL JS v1.0.0 before your first billing period that begins after December 1, 2019, you will begin being charged at the standard tile request rates as listed on the pricing page.

Questions? Reach out to our support team.

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
  • Upgrade to new pricing on your Accounts page
  • See rates and discounts per Static Tiles API request or Raster Tiles API request in the pricing page's Maps section
Deprecating map view rates in December 2019

If you are using Mapbox.js or Leaflet with Mapbox-hosted map tiles, usage is determined by tile requests. The rate per tile request is changing for users who created their account before May 22, 2019 and did not opt into new pricing on their Account page.

In December 2019 the legacy map view rate will be deprecated for all Pay-as-you-go accounts. Usage throughout your first billing period that begins after December 1, 2019 will reflect standard tile request rates as listed on the pricing page.

Questions? Reach out to our support team.

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. Interact with the map to see the relationship between user interaction and tile requests.

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.

Update from classic styles to GL-based styles

If you are using a Mapbox-designed classic style in your application, we highly recommend updating to a GL-based style (described above). Mapbox-designed classic styles like mapbox.streets and mapbox.outdoors are built with the Mapbox Streets v6 tileset, which no longer receives data updates. To make sure your map has the most up-to-date data, use a style URL with styleLayer (for example, L.mapbox.styleLayer('mapbox://styles/mapbox/streets-v11')) or transition to Mapbox GL JS.

The example below uses the raster tileset, mapbox.satellite, with Mapbox.js. Interact with the map to see the relationship between user interaction and tile requests.

L.mapbox.map('map', 'mapbox.satellite')
  .setView([38.8929, -77.0252], 14);

Third-party tools

Overview
  • Billed by tile requests
  • Upgrade to new pricing on your Accounts page
  • 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
PowerBIVector Tiles API
Carto with a style URLStatic Tiles API
Carto with a Classic style tileset IDRaster Tiles API
ArcGIS with a style URLStatic Tiles API
ArcGIS with a Classic style tileset IDRaster Tiles API
QGIS with a style URLStatic Tiles API
QGIS with a Classic style tileset IDRaster Tiles API

Mobile applications

Pricing for mobile applications is either based on monthly active users (MAUs) or tile requests. All Mapbox-maintained mobile SDKs are currently billed by MAUs. Pricing for third-party hybrid frameworks varies.

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.

The number of MAUs included in the free tier, the cost per user beyond the what is included in the free tier vary by product. See details by product below.

Maps SDK for iOS and Android

Overview
  • Billed by Maps SDKs for mobile MAUs or 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

Applications built with the Mapbox Maps SDK for iOS and the Mapbox Maps SDK for Android 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. You will either see Maps SDKs for mobile MAUs or Legacy SDKs for mobile MAUs.

Below is a breakdown of what you can expect to see on your invoice:

ProductVersionUsage units
Maps SDK for Android8.0.0 and higherMaps SDKs for mobile MAUs
Maps SDK for Androidless than 8.0.0Legacy SDKs for mobile MAUs
Maps SDK for iOS5.0.0 and higherMaps SDKs for mobile MAUs
Maps SDK for iOSless than 5.0.0Legacy SDKs for mobile MAUs

The number of MAUs included in the free tier and the cost per MAU is different for Maps SDKs for mobile MAUs and Legacy SDKs for mobile MAUs. If you are using a version of the Maps SDK billed by Legacy SDK MAUs, the number of MAUs included in the free tier and the cost per MAU will be the same as past billing periods. You can see your Invoices page for more details.

The cost of Legacy SDKs for mobile MAUs is changing in December 2019

The free tier and cost per Legacy SDKs for mobile MAU is changing for all Pay-as-you-go accounts in December 2019. Beginning with your first billing period that starts after December 1, 2019, free tier and cost per Legacy SDKs for mobile MAU will be equal to the standard rate for Maps SDK for mobile MAUs.

The number of MAUs included in the free tier will decrease from 50,000 to 25,000 MAUs per month. The cost per additional user will vary. For more details, see the pricing page.

Overview
  • Billed by Legacy SDK MAUs + Directions API requests
  • See rates and discounts per Directions API request in the pricing page's Navigation section

Applications built with the Mapbox Navigation SDK for iOS and the Mapbox Navigation SDK for Android are billed based on monthly active users plus Directions API requests.

The monthly active user (MAU) line item shown in your invoice will vary based on the version of the Navigation SDK you are using. You will either see Maps SDKs for mobile MAUs or Legacy SDKs for mobile MAUs.

ProductVersionUsage units
Navigation SDK for Android0.41.0 and higherMaps SDKs for mobile MAUs + Directions API requests
Navigation SDK for Androidless than 0.41.0Legacy SDKs for mobile MAUs + Directions API requests
Navigation SDK for iOS0.36.0 and higherMaps SDKs for mobile MAUs + Directions API requests
Navigation SDK for iOSless than 0.36.0Legacy SDKs for mobile MAUs + Directions API requests
The cost of Legacy SDKs for mobile MAUs is changing in December 2019

The free tier and cost per Legacy SDKs for mobile MAU is changing for all Pay-as-you-go accounts in December 2019. Beginning with your first billing period that starts after December 1, 2019, free tier and cost per Legacy SDKs for mobile MAU will be equal to the standard rate for Maps SDK for mobile MAUs.

The number of MAUs included in the free tier will decrease from 50,000 to 25,000 MAUs per month. The cost per additional user will vary. For more details, see the pricing page.

Vision SDK for iOS and Android

Overview
  • Billed by Vision SDKs for mobile MAUs or 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

Applications built with the Mapbox Vision SDK for iOS and the Mapbox Vision SDK for Android are billed based on monthly active users.

The line item shown in your invoice will vary based on the version of the Vision SDK you are using. You will either see Vision SDKs for mobile MAUs or Legacy SDKs for mobile MAUs.

Below is a breakdown of what you can expect to see on your invoice:

ProductVersionUsage units
Vision SDK for Android0.6.0 and higherVision SDKs for mobile MAUs
Vision SDK for Androidless than 0.6.0Legacy SDKs for mobile MAUs
Vision SDK for iOS0.6.0 and higherVision SDKs for mobile MAUs
Vision SDK for iOSless than 0.6.0Legacy SDKs for mobile MAUs

For Vision SDKs for mobile MAUs, a single monthly active user is a user of Mapbox vision services within your mobile app during your month-long billing period. Each user may make unlimited requests to APIs in the vision service via the Vision SDKs for iOS and Android. Usage of APIs and other Mapbox products outside the vision service are billed in addition to Vision SDK MAUs.

The cost of Legacy SDKs for mobile MAUs is changing in December 2019

The free tier and cost per Legacy SDKs for mobile MAU is changing for all Pay-as-you-go accounts in December 2019. Beginning with your first billing period that starts after December 1, 2019, free tier and cost per Legacy SDKs for mobile MAU will be equal to the standard rate for Maps SDK for mobile MAUs.

The number of MAUs included in the free tier will decrease from 50,000 to 25,000 MAUs per month. The cost per additional user will vary. For more details, see the 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.

The cost of Legacy SDKs for mobile MAUs is changing in December 2019

The free tier and cost per Legacy SDKs for mobile MAU is changing for all Pay-as-you-go accounts in December 2019. Beginning with your first billing period that starts after December 1, 2019, free tier and cost per Legacy SDKs for mobile MAU will be equal to the standard rate for Maps SDK for mobile MAUs.

The number of MAUs included in the free tier will decrease from 50,000 to 25,000 MAUs per month. The cost per additional user will vary. For more details, see the pricing page.

Hybrid apps

Overview
  • Billed by Legacy SDK MAUs or tile requests
  • Upgrade to new pricing for tile requests on your Accounts page
  • 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
The cost of Legacy SDKs for mobile MAUs is changing in December 2019

The free tier and cost per Legacy SDKs for mobile MAU is changing for all Pay-as-you-go accounts in December 2019. Beginning with your first billing period that starts after December 1, 2019, free tier and cost per Legacy SDKs for mobile MAU will be equal to the standard rate for Maps SDK for mobile MAUs.

The number of MAUs included in the free tier will decrease from 50,000 to 25,000 MAUs per month. The cost per additional user will vary. For more details, see the 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. There are two different types of tile requests that 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.

Developers are billed accordingly for each tile request beyond the free tier. The number of tiles that can be downloaded varies based on the version of the Maps SDK you are using. Below is a breakdown of what you can expect:

ProductVersionAllowed tile requests per end userNotes
Maps SDK for Android8.3.0 and higherNo hard limit on tile requests, but you can set limits for your users
  • The tile limit is set to 6,000 by default
  • This limit can be adjusted
  • Cost per tile is described on the pricing page
Maps SDK for Androidless than 8.3.0Up to 6,000 tile requestsAdditional tile requests require an Enterprise license
Maps SDK for iOS5.3.0 and higherNo hard limit on tile requests, but you can set limits for your users
  • The tile limit is set to 6,000 by default
  • This limit can be adjusted
  • Cost per tile is described on the pricing page
Maps SDK for iOSless than 5.3.0Up to 6,000 tile requestsAdditional tile requests require an Enterprise license
Cumulative tile requests

Vector Tiles API requests and Raster Tiles API requests for offline maps 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 the Maps SDK for iOS v5.3.0 and higher and the Maps SDK for Android v8.3.0 and higher, offline maps usage is shown on your Statistics page as Vector Tile or Raster Tile API requests.

Adjust the tile limit per user

For the Maps SDK for iOS v5.3.0 and higher and the Maps SDK for Android v8.3.0 and higher there are no hard limits to the number of tiles your users can download. But, because you are responsible for the cost of all tiles downloaded by your users, you may want to set an offline tile limit.

By default, the offline tile limit is set to 6,000, which means each of your users may download 6,000 tiles for offline use. Use the Mapbox offline tile count estimator to estimate how many tiles your users may need for their offline maps usage. To increase or decrease the number of offline tiles your users may download, change the offline tile limit:

Directions API, Optimization API, Map Matching API, Isochrone API

Overview
  • Billed by requests
  • Upgrade to new pricing on your Accounts page
  • See rates and discounts per Directions API, Optimization API, Map Matching API, or Isochrone API request in the pricing page's Navigation section

Usage of the Directions API, Optimization API, Map Matching API, and Isochrone API are all measured in API requests. The number of requests included in the free tier and the cost per request beyond what is included in the free tier are the same across APIs.

Matrix API

Overview
  • Billed by elements
  • Upgrade to new pricing on your Accounts page
  • See rates and discounts per Matrix API element in the pricing page's Navigation section

The Mapbox Matrix API is billed by elements rather than by requests, since this API handles requests of widely varying sizes. For instance, one request from the Matrix API can be many different origin and destination pairs, so one request from the Matrix API is equal to the number of sources multiplied by the number of destinations. The minimum number of elements included in a single request would be two (1 source x 2 destinations), while the maximum number of elements included in a single request would be 625 (25 sources x 25 destinations).

By default, the Mapbox Matrix API returns a symmetric matrix, using all input coordinates as both sources and destinations. In this case, the number of elements would be the number of coordinates2. You may also generate an asymmetric matrix, with only some coordinates as sources or destinations. In that case, the number of elements per request would be the number of sources multiplied by the number of destinations.

Read more about how the Mapbox Matrix API works on our comprehensive How Directions Works guide.

For high volume use of the Mapbox Matrix API, contact our sales team for pricing.

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

Overview
  • Billed by requests
  • Upgrade to new pricing on your Accounts page
  • See rates and discounts per Geocoding API request in the pricing page's Search section

Usage of the Geocoding API is measured in API requests. Details about the number of requests included in the free tier and the cost per request beyond what is included in the free tier are available on the pricing page. You may only use responses from the Geocoding API ("Geocodes") in conjunction with a Mapbox map.

The Geocoding API's autocomplete parameter is enabled by default. The autocomplete parameter is ideal for applications in which you want to suggest search results while a user enters their query. If you are using the API with autocomplete enabled, you will likely accumulate one API request per keystroke. For example, if you have autocomplete turned on and you set up your application to make a Geocoding API request every time a user types a character into a search bar, then a user typing "coff" looking for "coffee shops" will be making four Geocoding API requests, one for each letter.

To reduce the number of requests made while autocomplete is enabled, you can wait to begin making API requests until a specific number of characters are entered. The Geocoding API doesn't have a parameter for limiting requests built in, but you can use the Mapbox GL Geocoder (discussed below in the Geocoding-related libraries and plugins section), which does have that option, or you can write it into your application directly.

Billing for batch geocoding requests

Batch geocoding allows you to have multiple geocoding queries in a single request.

Each individual semicolon-separated search in a batch geocoding request counts as one request. For example, a request that contains three semicolon-separated search strings would count as three requests and be billed as such. These three requests would be reflected on your statistics graph and your bill.

Batch geocoding is only available using the mapbox.places-permanent endpoint. If you're interested in using the mapbox.places-permanent endpoint, contact Mapbox sales.

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. For example, if you have autocomplete turned on and a user types "coff" in your application looking for "coffee shops", you will see four Geocoding API requests reflected on your Statistics page for this interaction, one for each letter.

To reduce the total requests sent (and billed), you should configure your application to only call the API after a specific number of characters are typed — usually 1-3 characters is a good range to reduce requests with limited impact on user experience. If you are using the Mapbox GL Geocoder, you can set this preference using setMinLength.

Usage of Maps-related APIs is measured in either tile requests or API requests.

For information on APIs measured in tile requests including the Vector Tiles API, Raster Tiles API, and Static Tiles API, see the Web maps section above.

For all other maps-related APIs measured in API requests, see below.

Tilequery API

Overview
  • Billed by requests
  • Upgrade to new pricing on your Accounts page
  • See rates and discounts per Tilequery API request in the pricing page's Maps section

Each query for geographic features in one or more Mapbox-hosted vector tilesets at a given latitude and longitude will be counted as one Tilequery API request. Details about the number of Tilequery API requests included in the free tier and the cost per request beyond what is included in the free tier are available on the pricing page.

Static Images API

Overview
  • Billed by requests
  • Upgrade to new pricing on your Accounts page
  • See rates and discounts per Static Images API request in the pricing page's Maps section

Usage of the Static Images API is measured in API requests. Details about the number of requests included in the free tier and the cost per request beyond what is included in the free tier are available on the pricing page.

Uploads API storage

All Mapbox accounts come with 50 GB of free storage, per month, to store data that has been uploaded to Mapbox using the Uploads API. To request a higher storage limit, contact Mapbox sales.

Mapbox Studio prints

Mapbox Studio offers 100 high resolution image exports per account using the print panel. These 100 exports are free for all users. Usage of the Mapbox Studio print export option will not be reflected on your invoice. After 100 exports have been used on your account, you will no longer be able to access the print panel.

Mapbox customers with Enterprise plans have a higher number of allowed image exports. Contact Mapbox sales for more information about Enterprise accounts.

Was this page helpful?