HERE counts one transaction per tile request. The Maps API for JavaScript has no price of its own; you pay for the Map Rendering tiles it fetches. We assume 15 vector tiles per map view. List prices, November 2026.
| Monthly volume | HERE | ExpressMaps |
|---|---|---|
| Free tier | 30,000 transactions a month, payment method required | 100,000 loads, no card |
| 100,000 views (1.5M transactions) | $129 | Free |
| 250,000 views (3.75M) | $327 | $29 |
| 1,000,000 views (15M) | about $1,137 | $99 |
| 5,000,000 views (75M) | about $5,337 | $399 |
HERE vector tile rate: $0.088 per 1,000 transactions to 5 million, $0.070 to 10 million, contact sales above that (figures above 10M assume the $0.070 rate continues). HERE describes its calculator prices as indicative. ExpressMaps plans: Free 100,000 loads; Essential $29 for 250,000; Business $99 for 1,000,000; Enterprise $399 for 5,000,000, then $0.05 per 1,000. One map load is one map initialisation; tiles, panning and zooming are not metered. Prices checked 12 November 2026 and may have changed; see the cost calculator for your own numbers.
Per-transaction billing scales with how much of the map people look at, not with how many people visit. A single visitor exploring a city can generate a few hundred tile requests. HERE's rates per tile are low, so the bill stays moderate, but it is hard to forecast and it starts after a small free allowance.
ExpressMaps charges per map initialisation and never per tile, with a free tier large enough that most small business sites never pay.
If you need routing or traffic, HERE is a strong choice for those APIs. The base map on your marketing or store-finder pages does not need them, and that is where ExpressMaps saves money.
HERE's JavaScript API has its own object model, so the switch is to MapLibre rather than a URL change. The equivalent of a basic map is short:
<!-- before (HERE Maps API for JavaScript) -->
var platform = new H.service.Platform({ apikey: 'KEY' });
var layers = platform.createDefaultLayers();
var map = new H.Map(document.getElementById('map'), layers.vector.normal.map, { zoom: 12, center: { lat: 51.5072, lng: -0.1276 } });
<!-- after (MapLibre GL JS) -->
<script src="https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.js"></script>
var map = new maplibregl.Map({ container: 'map', style: 'https://tiles.expressmaps.com/styles/standard.json?key=YOUR_API_KEY', center: [-0.1276, 51.5072], zoom: 12 });
The embed generator writes this for any of our ten styles, and the docs cover Leaflet, OpenLayers and React.
No. ExpressMaps is a base map service. Pair it with a routing API if you need directions; MapLibre can draw the route as a GeoJSON line.
For displaying where you are and what is around you, usually better than proprietary data in cities, since it includes footpaths, cycle lanes and building outlines. For truck routing attributes, HERE's data is deeper.
Yes. MapLibre Native for iOS and Android reads the same style URLs; one map load is counted per style request.