Skip to main content

Pricing

If you are building with the Navigation SDK v3 and higher, you can choose from two pricing options:

  • Metered trips pricing: Pay a fee for each trip your users make plus a low fee for each monthly active user (MAU) of your application. Trips include navigating with turn-by-turn instructions or cruising in free-drive mode. This option provides greater flexibility for you: pay only for trips your users take.
  • Unlimited trips pricing: Pay one flat fee for each monthly active user (MAU) of your application. This option includes unlimited trips at no additional cost. This means greater pricing predictability for you: pay a flat fee for each user regardless of their usage.

The metered trips option is intended for users that complete less than 50 trips per month. The unlimited trips option is intended for users that complete more than 200 trips per month on average. If you fall somewhere between 50 and 200, this guide can help you understand the benefits of each pricing option so you can make the right decision for your use case. Metered trips pricing is the default pricing option.

This guide will start by introducing some key terms that are important to understanding how billing works and then provide details on the two available pricing options.

Pricing change

To switch pricing options, upgrade Navigation SDK to v3.0.0 or later and contact sales.

Key terms

To understand how Navigation SDK usage is billed, you will need to understand what a trip is and how monthly active users (MAUs) are counted.

Trip

There are two trip types in the Navigation SDK:

  • An Active Guidance trip is a navigation session that has turn-by-turn instructions to a specific destination. See the Turn-by-turn navigation guides.
  • A Free Drive trip is a navigation session that does not have turn-by-turn instructions to a specific destination, but still map-matches the user to a specific location and shows relevant information along their path. See the Free-drive navigation guides.

Good practice

The recommended way to use the Navigation SDK is to start a Free Drive session before requesting the active guidance route. See details down here.

Active Guidance trip

An Active Guidance trip starts when SessionController.startActiveGuidance(with:startLegIndex:) got called. This method is called automatically after the view of the NavigationViewController is loaded. If you create more than one instance of NavigationViewController, only one Active Guidance trip will be billed.

If the route you created has multiple legs (waypoints), each leg counts as a separate trip. If the user aborts the route before finishes all legs, you will be billed only for the started ones.

The Active Guidance trip will be considered stopped when

  • SessionController.setToIdle() was called;
  • or the instance of NavigationViewController is destroyed;
  • or the trip exceeds the maximum duration of 12 hours. After an Active Guidance trip has been running for 12 hours, the Navigation SDK automatically begins a new trip, which will be counted separately on your Statistics page and in any invoices.

Updating a route during the user's navigation session might be counted as an additional trip depending on how different the waypoints in the new route are from the waypoints in the current route. Using startActiveGuidance(with:startLegIndex:) method might cause the current trip to end and a new trip to start:

  • If the distance between current route's remaining waypoints and new route's waypoints (excluding route origin) at the same index is less than 100 meters, the new route won't start a new trip.
  • If the distance between current route's remaining waypoints and new route's waypoints (excluding route origin) at the same index is greater than 100 meters, the new route will start a new trip.
  • If the number of waypoints (excluding route origin) in the new route is different than the number of remaining waypoints in the current route, changing the route will start a new trip.

Route origin and past waypoints from the current route are not included in the comparison.

This makes sure re-route events are not billed separately, but are part of the original trip.

Free Drive trip

A Free Drive trip starts when SessionController.startFreeDrive() is called. You need to call this method to restart the free drive session after the active guidance was finished and NavigationViewController was destroyed.

The Free Drive trip stops when SessionController.setToIdle() was called or the trip exceeds the maximum duration of 1 hour. After a Free Drive trip has been running for an hour, the Navigation SDK automatically begins a new trip, which will be counted separately on your Statistics page and in any invoices.

Monthly active user (MAU)

Here's a breakdown of how the Navigation SDK counts monthly active users.

How is the monthly period determined?

The month-long period aligns with your billing period, which is usually aligned with the calendar month. To see the billing period for your account, visit the Invoices page. Even if you have a shortened first billing period, your MAU statistics will start on the first day and end on the last day of each month.

When is a user considered active?

A user of your application will be counted as a monthly active user as soon as they start at least one Free Drive or Active Guidance trip. To learn more about trips, see the Trip section of this guide.

How are unique users counted?

A single user is billed as one MAU across app upgrades as long as the app is not deleted. Deleting and re-installing an app that uses the Navigation SDK would result in an additional MAU. Additionally, each simulated device used in development and testing will count as an MAU. As the SDK does not store personally identifying information, Mapbox cannot exclude individual devices from billing. Instead, a generous free tier for MAUs allows for a set number of devices to use the SDK without charge.

Which Mapbox services are included?

APIs

The Navigation SDK makes navigation resource requests to various Mapbox online services including:

  • Directions API
  • Route tiles API
  • Voice APIs
  • Directions refresh API

These APIs are used, for example, when displaying a map view, previewing a route on the map, or displaying a list of steps along the route.

Requests made by the Navigation SDK during an Active Guidance or Free Drive navigation session are included in both Navigation-related MAUs. This means you will not be billed separately for any requests made during the navigation session.

Requests that you make outside an Active Guidance or Free Drive navigation session are not included in any Navigation-related MAUs. This means you will be billed separately for each request as if you were directly interacting with the service. But, the Navigation SDK will not make any requests by itself when no navigation session is running. You would have to explicitly make a request (like a Mapbox Directions API request for a route).

The initial route request will always be outside of the active guidance session, so to avoid a separate Directions API usage billing, a starting Free Drive trip session is recommended before the route request. If the route generated from that request is used immediately for active navigation, the free drive session will fall into the grace period and will not be billed.

Suppose you specify a separate speech access token that doesn't match the navigation access token in NavigationCoreApiConfiguration. In that case, you will be billed separately for each speech-related request.

SDKs

Maps-related MAUs and integrated Search SDK functionality are always billed separately from the navigation resources.

A user who meets the criteria of an active user of both the Navigation SDK (see When is a user considered active? above) and the Maps SDK (see the Maps SDK pricing guide) will be billed as both Navigation SDK and Maps SDK MAUs. For example, if you initialize the Navigation SDK, display a map to the user, the user selects a destination on the map, and starts a navigation session to that destination, then that user would be billed as both a "Maps SDKs for Mobile" MAU and "Navigation SDK for Mobile" MAU.

A user who meets the criteria of an active user of only the Navigation SDK will be billed only as a Navigation-related MAU. For example, if you initialize the Navigation SDK, a user inputs a coordinate to navigate to in a text field and starts a navigation session without loading the map view, then that user would be billed only as a "Navigation SDK for Mobile" MAU.

A user who meets the criteria of an active user of only the Maps SDK will be billed only as a Maps-related MAU even if you are using the Maps SDK via the Navigation SDK in your application. For example, if you initialize the Navigation SDK, display a map to a user, and preview a route without starting a navigation session, you would be billed for that user as a "Maps SDKs for Mobile" MAU.

Visit the pricing page to see the cost per "Maps SDKs for Mobile", "Search SDK requests", and "Navigation SDK for Mobile" (cost varies by pricing option).

Pricing options

Read about the two available pricing options and learn which line items are associated with which types of usage. Then you can visit the pricing page to see the cost per line item and use our pricing calculators to estimate your bills.

Pricing change

To switch pricing options, contact sales.

Option 1: Metered trips pricing

Metered trips pricing can be more cost-efficient for applications with any number of monthly users but whose users complete relatively few trips during a billing period. When you set your account to metered trips pricing, the billing covers two types of usage: trips and monthly active users (MAUs).

Trips: How trips are defined, the cost per trip, and the line item that will appear on your invoice varies by trip type as defined in the Trip section above. Depending on what trip types are used in your application, this usage will be labeled on any invoices (if you exceed the free tier) and on your Statistics page as:

  • "Free Drive Trip for Mobile"
  • "Active Guidance Trip for Mobile"

Monthly active users: You will also be charged a fee for each user of your application in a month-long period. The cost per monthly user for this option is significantly less than the cost per monthly user in Option 2: Unlimited trips pricing. This will be labeled as "Navigation SDK for Mobile" on any invoices (if you exceed the free tier) and on your Statistics page.

To see the costs per trip and MAU, visit the "Navigation SDK - Metered Trips" section of our pricing page.

Trip Grace Period

When the Navigation SDK v3.0.0 or later is used, each starting trip session has a grace period of 30 seconds. This means that a session will be counted only after this period has surpassed. This allows you to reduce the cost of using the SDK during development and testing of your applications, as well as in production. The grace period is especially helpful in decreasing the cost of short Free Drive sessions that are a transition between Active Guidance sessions, or when a session is aborted at once after it was started.

Example metered trips invoice

For example, if throughout May you had 100 users who each navigated for 6 hours in free-drive mode and 300 users who each navigated 4 one-leg routes using turn-by-turn instructions, then your invoice would include:

  • Cost per "Free Drive Trips for Mobile" x 600 = $0.00
  • Cost per "Active Guidance Trips for Mobile" x 1200 = $16.00
  • Cost per "Navigation SDK for Mobile" x 400 = $90.00

Your total cost for navigation that month would be $106.00. You can estimate your monthly costs using the calculators on our pricing page.

Optimize metered trips costs

Pause Free Drive trip

You can extend a Free Drive trip by pausing the session with SessionController.pauseFreeDrive() method.

Option 2: Unlimited trips pricing

Unlimited trips pricing can be more cost-efficient for applications with any number of monthly users who each complete many trips during a billing period.When you set your account to unlimited trips pricing, you will only see one type of usage: "Navigation SDK for Mobile" MAUs. This means your monthly charges can be more predictable if you know the number of users you have.

To see the number of Navigation SDKs MAUs included in the free tier and the cost per Navigation SDKs MAU beyond the free tier, visit the "Navigation SDK - Unlimited Trips" section of our pricing page.

Example unlimited trips invoice

For example, if you have 200 delivery drivers using your application to take 200 trips per month, then your invoice would include only:

  • Cost per "Navigation SDK for Mobile" x 200 = $950.00

Your total cost for navigation that month would be $950.00. You can estimate your monthly costs using the calculators on our pricing page, starting with Navigation SDKs.

Optimize unlimited trips costs

Start a Free Drive session before making any resource requests. In this case, these requests will be covered by the "Navigation SDK for Mobile" MAU.

Legacy pricing

For pricing information on pre-v3.0.0 versions of the Navigation SDK, see:

Was this page helpful?