All alternatives

unmap as an alternative to Mapbox

When unmap fits a Canadian map, search or route better than Mapbox, when Mapbox is the better choice, and how the two bills count what you use.

The unmap API for each need

What you needunmapMapbox
MapsMaps APIMapbox GL JS, Vector Tiles API and Styles API
GeocodingGeocoding APIGeocoding API
Place searchPlacesSearch Box API
RoutingRouting API · RouteDirections API
Travel-time areasRouting API · IsochroneIsochrone API
Distance matrixRouting API · MatrixMatrix API
Map matchingRouting API · MatchMap Matching API
Route optimizationRouting API · OptimizeOptimization API v1

Published prices

The first paid tier from the provider's public pricing page, as read on the date shown. Prices change: check the source before you decide.

What you needPrice after the free allowanceFree allowanceCheckedSource
Maps$5.00 per 1,000 web map loads (50,001 to 100,000)50,000 map loads2026-11-05Mapbox
Geocoding$0.75 per 1,000 temporary geocoding requests (100,001 to 500,000)100,000 requests2026-11-05Mapbox
Routing$2.00 per 1,000 Directions requests (100,001 to 500,000)100,000 requests2026-11-05Mapbox
Travel-time areas$2.00 per 1,000 Isochrone requests (100,001 to 500,000)100,000 requests2026-11-05Mapbox
Distance matrix$2.00 per 1,000 matrix elements (100,001 to 500,000)100,000 elements2026-11-05Mapbox
Route optimization$2.00 per 1,000 Optimization requests (100,001 to 500,000)100,000 requests2026-11-05Mapbox

When unmap is the better fit

  • You want to keep what you fetch. Our terms let you cache maps and geocoding results permissively, and what you have cached stays yours after you cancel. Mapbox's Geocoding API is temporary by default, and temporary results may not be cached; storing them means asking for permanent geocoding.
  • Your users search in Canada, in either official language. One record carries its English and French names, plus Indigenous-language names where the source data has them, and a query typed in Inuktitut syllabics finds the place. See Languages.
  • You route transit riders in Canada. mode=transit routes and draws travel-time areas on scheduled Canadian transit (Transit routing). Mapbox's Directions API offers driving, driving with traffic, walking and cycling, with no transit profile.
  • You search by legal land description. With the Legal Land add-on, a Dominion Land Survey or NTS description such as NW-25-24-1-W5 is an ordinary search query (Legal land).
  • You want to keep your map code. MapLibre GL JS is a fork of Mapbox GL JS, so your markers, popups, sources, layers and map.on handlers keep working. The token, the style URL and the search and directions hosts are what change (From Mapbox).

When Mapbox is the better fit

  • You search or route outside Canada. unmap's basemap is worldwide, but search and routing cover Canada only, and a route that leaves the country is a 422 (Coverage). Mapbox's driving-traffic profile is available globally, its Geocoding API documents country-specific search such as a dedicated Japan mode, and its Search Box API covers the United States, Canada and Europe.
  • Your drive times need live traffic. The Directions API's mapbox/driving-traffic profile accounts for current and historic traffic. unmap drive times have no live or predicted traffic.
  • You ship a native mobile app. Mapbox has the Maps SDK for iOS and the Navigation SDK, which plays voice instructions. unmap ships a web SDK and no native mobile SDK.
  • Your styles live in Mapbox Studio. Studio is a visual style editor that publishes changes without a redeploy. unmap has fifteen styles and a theme builder, and it does not load a mapbox://styles/... document.

How the bill compares

The table above is Mapbox's first paid tier for each product, each with its own free allowance, as read on the date shown. Its geocoding row is temporary geocoding, the kind you may not cache.

unmap has one meter instead. Every request is one call, tiles included, and every API draws from the same pool. Three bulk paths count work, not requests: batch geocoding is one call per non-blank query, a hosted batch job is one call per eligible row, and Optimize is one call per shipment a successful solve performs. The dev plan is free and for building, not production. Browser calls from localhost and preview origins are not counted, except Optimize, which counts from every origin. Server-side calls and Optimize draw on 10,000 included calls a month. Indie is US$19 a month for 250,000 calls, then US$1.00 per 1,000. Growth is US$99 a month for 2,000,000 calls, then US$0.75 per 1,000. Plans and limits has the detail.

The units differ most for maps. Mapbox counts a map load each time Mapbox GL JS initializes on a page, and that load includes unlimited Vector Tiles API and Raster Tiles API requests (Mapbox pricing). On unmap a map's first paint is about 40 calls, almost all of them tiles, and after that MapLibre and the browser serve most tiles from cache. So 1,000 first paints are about 40,000 calls, not 1,000. For an app that mostly shows maps, Mapbox can cost less: its 50,000 free map loads would be about 2,000,000 calls on unmap, the whole Growth allowance, though returning visitors draw many tiles from their browser cache.

For search and routing the units line up: a geocode or a route is one request on both sides. A matrix is where they part again. Mapbox bills per element, and a 10 by 10 /matrix request on unmap is one call.

To estimate your own bill, start from about 40 calls for a first paint on an empty browser cache. Panning and zooming add tiles, and return visits fetch fewer. Then add your searches and routes and set the total against a plan's included calls.