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=transitroutes 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-W5is 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.onhandlers 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'sdriving-trafficprofile 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-trafficprofile 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.