All alternatives

unmap as an alternative to Google Maps

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

The unmap API for each need

What you needunmapGoogle Maps
MapsMaps APIMaps JavaScript API
GeocodingGeocoding APIGeocoding API
Place searchPlacesPlaces API (New)
RoutingRouting API · RouteRoutes API (Compute Routes)
Travel-time areasRouting API · IsochroneIsochrones API (Preview)
Distance matrixRouting API · MatrixRoutes API (Compute Route Matrix)
Map matchingRouting API · MatchRoads API (Snap to Roads)
Route optimizationOptimize APIRoute Optimization API

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$7.00 per 1,000 Dynamic Maps loads (10,001 to 100,000)10,000 loads2026-11-05Google Maps
Geocoding$5.00 per 1,000 Geocoding requests (10,001 to 100,000)10,000 requests2026-11-05Google Maps
Place search$2.83 per 1,000 Autocomplete requests (10,001 to 100,000)10,000 requests2026-11-05Google Maps
Routing$5.00 per 1,000 Compute Routes Essentials requests (10,001 to 100,000)10,000 requests2026-11-05Google Maps
Distance matrix$5.00 per 1,000 Compute Route Matrix Essentials elements (10,001 to 100,000)10,000 elements2026-11-05Google Maps
Route optimization$10.00 per 1,000 Route Optimization single-vehicle requests (5,001 to 100,000)5,000 requests2026-11-05Google Maps

When unmap is the better fit

  • You want to keep what you fetch, and show it on any map. Our terms let you cache maps and geocoding results permissively, and what you have cached stays yours after you cancel. Google's service terms cap cached latitude and longitude from the Places and Routes APIs at 30 consecutive calendar days. Geocoding API results may be kept longer only for the end user who asked, never shared across users and never in place of a new call. All three bar using that content with a non-Google map.
  • 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 already call Route Optimization. POST /optimize accepts the Google Route Optimization OptimizeToursRequest and returns an OptimizeToursResponse, so a REST client can move by changing the host and the key, within the supported fields and the behaviour differences. Road travel times cover Canada only, and unmap is not affiliated with Google.
  • 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).

When Google Maps 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). Google publishes coverage country by country across the world.
  • Your drive times need live traffic. The Routes API gives directions with real-time traffic. unmap drive times have no live or predicted traffic.
  • You show rich place details. Places API (New) returns photos, ratings, reviews and opening hours. An unmap result is a name, a coordinate and an address, with no photos, reviews or hours (From Google Maps).
  • You need Street View or imagery. Google serves Street View panoramas, for example through the Street View Static API. unmap has no panoramas and no satellite or hybrid imagery: it serves vector tiles.
  • You ship a native mobile app. Google has the Maps SDK and the Navigation SDK for Android and iOS (SKU details). unmap ships a web SDK and no native mobile SDK.

How the bill compares

The table above is Google's first paid tier for each SKU, each with its own free cap, as read on the date shown.

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. Google bills Dynamic Maps per successful map load (SKU details). 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, Google can cost less: its 10,000 free map loads would be about 400,000 calls on unmap, more than Indie includes.

For search and routing the units line up: a geocode or a route is one request on both sides. Autocomplete is a call per request on unmap, so debounce the keystrokes. Google's session pricing can cost less than the per-request price in the table: when a session ends in a Place Details call (other than IDs Only) or an Address Validation call, some or all of its Autocomplete requests are not charged. A matrix is where they part again. Google bills Compute Route Matrix 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.