GET /v1/tiles/.../{z}/{x}/{y}.{format}
Renders one tile of a preset’s mosaic of the scenes in a time window.
| Method and path | GET /v1/tiles/{presetId}/{tileMatrixSetId}/{z}/{x}/{y}.{format} |
| Key | needed |
| Response | image/png, image/jpeg or image/webp |
| Lean OpenAPI | getTile |
| Full contract | getTile |
Parameters
Section titled “Parameters”| Name | In | Meaning | Default |
|---|---|---|---|
presetId |
path | true-color, false-color or ndvi |
|
tileMatrixSetId |
path | WebMercatorQuad or WorldCRS84Quad |
|
z, x, y |
path | zoom, column and row | |
format |
path | png, jpg or webp (ndvi: png or webp) |
|
collection |
query | sentinel-2-l2a or landsat-ot-l2, or an alias |
sentinel-2-l2a |
datetime |
query | the window to mosaic: an RFC 3339 instant or interval; plain dates such as 2026-06-01/2026-08-31 work |
the last 30 days |
maxCloudCoverage |
query | skip scenes with more cloud than this percentage, 0 to 100 | the preset’s: 30, or 60 for ndvi |
harmonize |
query | offset_removed only |
offset_removed |
tilesize |
query | 256 or 512 |
256 |
Unknown query parameters are rejected with 400 invalid-parameter.
How the mosaic is built
Section titled “How the mosaic is built”The tile takes scenes in the window, least cloudy first, at most 50, and fills each pixel from the first scene that has data there. There is no pixel cloud mask in lean v1: a cloudy part of the clearest scene shows as cloud. Zoom ranges come from schema v1:
| Collection | Zoom |
|---|---|
sentinel-2-l2a |
8 to 15 |
landsat-ot-l2 |
7 to 14 |
Example
Section titled “Example”curl -s -o tile.png \ "https://api.satellitedata.net/v1/tiles/ndvi/WebMercatorQuad/12/987/1474.png?collection=sentinel-2-l2a&datetime=2026-06-01T00:00:00Z/2026-08-31T23:59:59Z&maxCloudCoverage=40" \ -H "X-API-Key: $SDN_API_KEY"Tile 12/987/1474 contains longitude -93.25, latitude 44.95. Most map libraries build these URLs for you from the TileJSON document. See Map tiles.
Responses carry Cache-Control (an hour for windows that ended more than 16 days ago, five minutes otherwise) and the credit line in X-Attribution.
Errors
Section titled “Errors”| Status | Code | When |
|---|---|---|
| 400 | invalid-parameter |
a malformed or unknown parameter, a format the preset does not serve, a collection the preset does not accept, or a tile outside the matrix |
| 400 | zoom-out-of-range |
z outside the collection’s zoom range |
| 401 | invalid-key |
no key or an unknown key |
| 404 | not-found |
no such preset, or no scenes under the cloud ceiling cover this tile in the window |
| 422 | harmonize-unavailable |
harmonize other than offset_removed |
| 429 | rate-limited, quota-exhausted |
over the rate or monthly limit |
| 504 | render-timeout |
the tile did not render in 29 seconds; narrow the window or zoom in |
Coming later
Section titled “Coming later”The unified cloud mask per preset, bandpass_adjusted and the optical-sr collection, anonymous tiles from the CDN cache, and WMTS.