← Back to Blog

Static basemap tiles or a vector basemap style: when a pre-rendered raster tile is the right answer

A basemap source panel with tile grid, style document and key rows passes a client check of screen, language and palette. It then splits into a locked card of fixed image tiles, a style card the client draws, and a dashed restyle card that only the style path reaches.

The ArcGIS Static Basemap Tiles service provides basemap data as pre-rendered, pre-styled map tiles for the world. The tiles are 512 x 512 pixel PNG files in Web Mercator, requested by level, row and column, at zoom levels 0 to 22. Its sibling, the Basemap Styles service, returns styles as Mapbox styles and web maps, with the data as vector tiles and/or map tiles. This post is about choosing between them: a raster tile the server already drew, or a style the client draws.

Every result labeled measured in this post comes from our own requests to the live services on October 22, 2026.

What the static service gives you

The static service offers a fixed list of 22 styles: 15 in the ArcGIS family and 7 in the Open family. The tiles cannot be restyled on the client, and the service cannot display custom styles. In the ArcGIS Maps SDK for JavaScript, a TileLayer pointed at a style’s /static URL read the 512-pixel tiling scheme and its 23 levels from the service (measured).

Satellite imagery is where readers get caught. Only the imagery labels are available as static tiles; the imagery itself is fully supported only by the Basemap Styles service. Measured on October 22, 2026, a request for the imagery labels style returned a PNG, and a request for the imagery style returned 404.

Language and worldview: a much shorter list

On the static service, the language codes are en, nl, da, fi, fr, de, nb and no, and the only worldview is currently unitedStatesOfAmerica. In the service’s own style list, measured on October 22, 2026, every ArcGIS style carried those codes and every Open style carried none. The Basemap Styles service listed 43 languages and 10 worldviews when we queried it the same day. If your audience reads labels in a language outside those eight codes, a static tile cannot show it to them.

Who can use it, and how it is billed

The static service is ArcGIS Location Platform only: its reference marks ArcGIS Online and ArcGIS Enterprise as not supported. API keys and short-lived tokens must be created from a Location Platform account with the premium:user:staticbasemaptiles privilege. At the time of writing (October 2026), billing occurs when basemap tiles are returned from a request; the current rates are on the service’s reference page.

Basemap sessions do not apply to static tiles. Sessions are a Basemap Styles mechanism, and a session token can only access the basemap service it was created from. For how sessions work, see our earlier post on the two usage models. At the time of writing (October 2026), from the Basemap Styles service, an ArcGIS Online organization gets a different deal: basemap tiles are included in the subscription, and basemap sessions are not available.

If you are not the one writing the code: static tiles need an ArcGIS Location Platform account. An organization on ArcGIS Online alone cannot use them, and its subscription already includes basemap tiles from the Basemap Styles service.

When a raster tile is the right answer

Esri’s guide names the cases. The static service suits applications that do not support Mapbox styles or ArcGIS web maps, clients that do not support WebGL, clients that prefer map tiles from a single data source, and clients that operate under low bandwidth conditions. Esri’s compare table also lists CesiumJS as supported by static tiles and not by the Basemap Styles service, while Leaflet, MapLibre GL JS, OpenLayers and the ArcGIS Maps SDKs are supported by both. The static service’s reference says applications that use the service must display both basemap and data attribution.

What you needStatic Basemap TilesBasemap Styles
The responsePre-rendered 512 x 512 PNG tilesA Mapbox style or web map, with vector tiles and/or map tiles
Satellite imageryLabels onlySupported
Label languages and worldviews8 codes and 1 worldview, ArcGIS styles only43 languages and 10 worldviews listed (measured)
ArcGIS Online accountsNot supportedBasemap tiles included in the subscription
Basemap sessionsNot availableLocation Platform only
CesiumJSSupportedNot supported

Inside an ArcGIS Maps SDK for JavaScript app

One of Esri’s reasons above, clients that do not support WebGL, never applies here. The JavaScript SDK supports only WebGL2-enabled, 64-bit browsers, so choosing static tiles does not let a JavaScript SDK app run without WebGL. The other reasons can still apply: a team that prefers map tiles from a single data source, or an app used under low bandwidth, may still choose static tiles.

Esri’s documentation sample uses a TileLayer on the style’s /static URL. We ran that shape, with the key set on the layer’s apiKey:

<!-- ArcGIS Maps SDK for JavaScript 5.x: the CDN entry is a module script.
     The TileLayer setup was run on 5.0.19 (/5.0/) and 5.1.27 (/5.1/), October 22, 2026.
     The core stylesheet link follows Esri's get-started page. -->
<link rel="stylesheet" href="https://js.arcgis.com/5.1/esri/themes/light/main.css" />
<div id="viewDiv" style="height:400px"></div>
<script type="module" src="https://js.arcgis.com/5.1/"></script>
<script type="module">
  const [Map, MapView, Basemap, TileLayer] = await $arcgis.import([
    "@arcgis/core/Map.js",
    "@arcgis/core/views/MapView.js",
    "@arcgis/core/Basemap.js",
    "@arcgis/core/layers/TileLayer.js"
  ]);
  const STATIC = "https://static-map-tiles-api.arcgis.com/arcgis/rest/services/static-basemap-tiles-service/v1";
  // Use a Location Platform key scoped to premium:user:staticbasemaptiles only.
  const tiles = new TileLayer({ url: STATIC + "/arcgis/streets/static", apiKey: "YOUR_ACCESS_TOKEN" });
  new MapView({
    container: "viewDiv",
    map: new Map({ basemap: new Basemap({ baseLayers: [tiles] }) }),
    center: [-93.27, 44.98],
    zoom: 11
  });
</script>

With that setting, all 13 requests the view sent to the static host carried a token= parameter (measured). If the key has referrer URLs set, load the page from one of them: in our measurement, requests with no Referer or a disallowed one were refused with HTTP 401.

Raster labels have a price on sharp screens. The compare table marks static tiles as not optimized for retina or HiDPI displays, and the style metadata reports 96 dpi. Measured on October 22, 2026, a @2x tile request returned 404, and at a device pixel ratio of 2 the JavaScript SDK fetched the same 12 level-11 tiles it fetched at a ratio of 1.

Securing the key

Esri recommends setting referrer URLs on API key credentials “in order to enhance the security of the token.” Services compare the request’s Referer header with the allowed list, and the caller sets that header. Measured on October 22, 2026, a command-line request that sent an allowed Referer received a tile, and requests with no Referer or a disallowed one were refused with HTTP 401. Our reading of that result: a referrer list deters reuse of a lifted key in other people’s browser pages, and it does not stop a script.

The privilege scope on the key limits what a lifted key can reach. Esri says that selecting privileges lets you assign a minimal set to each token, “reducing the potential harm in the event a token is compromised.” Scope a static-tiles key to premium:user:staticbasemaptiles and nothing else. Scope does not stop a lifted key from fetching static tiles, and billing occurs when basemap tiles are returned from a request. Esri’s guidance for that case: “If your API key gets stolen, it should be invalidated to avoid fraudulent charges to your subscription.”

Where ATS stands

The JavaScript SDK requires WebGL2, so the non-WebGL reason would not move us to static tiles; a client the Basemap Styles service does not support, such as CesiumJS, would.

Before you choose

References

Choosing a basemap source for a client app?

We can check your clients, accounts and keys against what the static and vector basemap services each support. Book a free intro call and we will go through it with you.

Book a free intro call