WMTS Request

The Sentinel Hub WMTS (Web Map Tile Service) service conforms to the WMTS standard.  It provides access to Sentinel-2's 13 unprocessed bands (B01 through B12, with B8A following B08) as well as processed products such as true color imagery and NDVI. Access to the service is done via a custom server instance URL which will be provided to you upon registration. Provides access to the same bands product and additional informational layers as the WMS request except only one layer can be specified at once, even when only raw Sentinel-2 bands are used. As with the WMS service, WMTS is also only available via a user-preconfigured custom server instance URL.

See our OGC API Webinar, which will guide you through different OGC services, including WMTS, help you understand the structure, show you how to run the requests in different environments and how they can be integrated with QGIS, ArcGIS and web applications.

The base URL for the WMTS service:{INSTANCE_ID}

The service supports the same output formats as the WMS request and supports the standard WMTS requests GetTile, GetCapabilities. It supports WMTS version 1.0.0.

If you want to force a specific output format (e.g. float 32 or uint 16) set sampleType in your evalscript as explained here. Use dataMask band in your evalscript as explained here to make pixels transparent.

Check GetCapabilities for a list of supported coordinate reference systems and tile matrix sets which can be used for the TILEMATRIX and TILEMATRIXSET parameters.

WMTS Parameters

Standard common WMTS URL parameters (names are case insensitive):

WMTS parameterinfo


Required, must be "WMTS".


WMTS version standard. Optional, default: "1.0.0". Supported values: "1.0.0".


What is requested, valid values: GetTile or GetCapabilities. Required.


(when REQUEST = GetTile) The time or time range for which to return the results, in ISO8601 format (year-month-dateThours:minutes:seconds, for example: 2016-01-01T10:05:23Z). When a single time is specified the service will return data until the specified time. If a time range is specified the result is based on all scenes between the specified dates conforming to the cloud coverage criteria and stacked based on priority setting - e.g. most recent on top. The time range is written as two time values separated by a slash. Optional, default: none (the last valid image is returned). Examples: "TIME=2016-01-01T10:05:23Z", "TIME=2016-01-01/2016-02-01".

In addition to the standard WMTS request parameters, the WMTS service also supports many custom URL parameters. See Custom service URL parameters for details.

Standard GetTile request URL parameters:

WMTS parameterinfo


The matrix set to be used for the output tile. Check GetCapabilities for a list of supported matrix sets.


The matrix to be used for the output tile. Check GetCapabilities for a list of supported matrices.


The column index of the output tile. Check GetCapabilities for a list of supported matrix widths.


The row index of the output tile. Check GetCapabilities for a list of supported matrix heights.


The preconfigured (in the instance) layer for which to generate the output tile.


The returned image format. Optional, default: "image/png", other options: "image/jpeg", "image/tiff". Detailed information about supported values.


The example below shows the contents of the result object from parsing a WMS capabilities response:

<!DOCTYPE html>
    <title>WMTS Layer from Capabilities</title>
    <link rel="stylesheet" href="" type="text/css">
    <script src=""></script>
    <div id="map" class="map"></div>
      var parser = new ol.format.WMTSCapabilities();
      var map;
      fetch('<ENTER YOUR WMTS URL HERE>?REQUEST=GetCapabilities').then(function(response) {
        return response.text();
      }).then(function(text) {
        var result =;
        var options = ol.source.WMTS.optionsFromCapabilities(result,
    			{layer: 'TRUE_COLOR', matrixSet: 'PopularWebMercator512'});
        map = new ol.Map({
          layers: [
            new ol.layer.Tile({
              source: new ol.source.OSM(),
              opacity: 0.7
            new ol.layer.Tile({
              opacity: 1,
              source: new ol.source.WMTS(options)
          target: 'map',
          view: new ol.View({
            center: [19412406.33, -5050500.21],
            zoom: 5