List render presets
const url = 'https://api.satellitedata.net/v1/presets';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.satellitedata.net/v1/presetsTrue-color, false-color and ndvi, each with per-collection band recipes in sdn:recipes.
Responses
Section titled “Responses”Presets; the example is shortened to two.
Preset list.
object
Presets.
Render preset.
object
Preset id.
Title.
What the preset shows.
Default collection.
Collections the preset accepts through ?collection=.
Bands read, by common name.
Band math, when the preset is an index.
Value range mapped to 0-255.
Named colormap for one-band presets.
Harmonization level.
Scene order.
Scene cloud cover ceiling.
Default time window as an ISO 8601 duration ending now, when ?datetime= is absent.
Lowest zoom.
Highest zoom; deeper requests fail at the edge with 400.
Tile matrix sets.
Tile formats.
Links to TileJSON and WMTS.
A STAC and OGC API link object.
object
Link target.
Relation type, such as self, root, parent, next, prev, items, queryables, tiles or license.
Media type of the target.
Human-readable title.
HTTP method for the link, GET unless stated. Paging POST /v1/search uses POST.
Request body to send with a POST link, used for the next page of POST /v1/search.
object
When true the client merges body into the previous request body.
Per-collection render recipe: Earth Search asset keys, an expression over b1, b2 in asset order, the DN stretch, the colormap and the zoom range.
object
object
Earth Search asset keys, in band order.
Rio-tiler expression over b1, b2, …
Stored DN mapped to 0-255.
Named colormap.
Lowest zoom for this collection.
Highest zoom for this collection.
Links.
A STAC and OGC API link object.
object
Link target.
Relation type, such as self, root, parent, next, prev, items, queryables, tiles or license.
Media type of the target.
Human-readable title.
HTTP method for the link, GET unless stated. Paging POST /v1/search uses POST.
Request body to send with a POST link, used for the next page of POST /v1/search.
object
When true the client merges body into the previous request body.
Example
{ "presets": [ { "id": "true-color", "title": "True colour", "description": "Red, green and blue, about 0 to 0.3 reflectance, least cloudy scene first. Sentinel-2 uses its 8-bit visual (TCI) asset.", "collection": "sentinel-2-l2a", "collections": [ "sentinel-2-l2a", "landsat-ot-l2" ], "bands": [ "red", "green", "blue" ], "rescale": [ 0, 0.3 ], "harmonize": "offset_removed", "mosaickingOrder": "leastCC", "maxCloudCoverage": 30, "defaultWindow": "P30D", "minzoom": 8, "maxzoom": 15, "tileMatrixSets": [ "WebMercatorQuad", "WorldCRS84Quad" ], "formats": [ "png", "jpg", "webp" ], "sdn:recipes": { "sentinel-2-l2a": { "assets": [ "visual" ], "minzoom": 8, "maxzoom": 15 }, "landsat-ot-l2": { "assets": [ "red", "green", "blue" ], "rescale": [ 7273, 18182 ], "minzoom": 7, "maxzoom": 14 } }, "links": [ { "rel": "self", "type": "application/json", "href": "https://api.satellitedata.net/v1/presets/true-color" }, { "rel": "tiles", "type": "application/json", "title": "TileJSON", "href": "https://api.satellitedata.net/v1/tiles/true-color/WebMercatorQuad/tilejson.json" } ] }, { "id": "false-color", "title": "False colour (vegetation red)", "description": "Near infrared, red and green as red, green and blue, 0 to 0.4 reflectance, least cloudy scene first.", "collection": "sentinel-2-l2a", "collections": [ "sentinel-2-l2a", "landsat-ot-l2" ], "bands": [ "nir", "red", "green" ], "rescale": [ 0, 0.4 ], "harmonize": "offset_removed", "mosaickingOrder": "leastCC", "maxCloudCoverage": 30, "defaultWindow": "P30D", "minzoom": 8, "maxzoom": 15, "tileMatrixSets": [ "WebMercatorQuad", "WorldCRS84Quad" ], "formats": [ "png", "jpg", "webp" ], "sdn:recipes": { "sentinel-2-l2a": { "assets": [ "nir", "red", "green" ], "rescale": [ 1000, 5000 ], "minzoom": 8, "maxzoom": 15 }, "landsat-ot-l2": { "assets": [ "nir08", "red", "green" ], "rescale": [ 7273, 21818 ], "minzoom": 7, "maxzoom": 14 } }, "links": [ { "rel": "self", "type": "application/json", "href": "https://api.satellitedata.net/v1/presets/false-color" }, { "rel": "tiles", "type": "application/json", "title": "TileJSON", "href": "https://api.satellitedata.net/v1/tiles/false-color/WebMercatorQuad/tilejson.json" } ] }, { "id": "ndvi", "title": "NDVI", "description": "Normalized difference vegetation index from reflectance (the Collection 1 offset removed), -0.2 to 0.8 on a red-yellow-green ramp. Sentinel-2 uses the 10 m nir band (B08), Landsat nir08.", "collection": "sentinel-2-l2a", "collections": [ "sentinel-2-l2a", "landsat-ot-l2" ], "bands": [ "red", "nir" ], "expression": "(nir - red) / (nir + red)", "rescale": [ -0.2, 0.8 ], "colormap": "rdylgn", "harmonize": "offset_removed", "mosaickingOrder": "leastCC", "maxCloudCoverage": 60, "defaultWindow": "P30D", "minzoom": 8, "maxzoom": 15, "tileMatrixSets": [ "WebMercatorQuad", "WorldCRS84Quad" ], "formats": [ "png", "webp" ], "sdn:recipes": { "sentinel-2-l2a": { "assets": [ "nir", "red" ], "expression": "(b1-b2)/(b1+b2-2000)", "rescale": [ -0.2, 0.8 ], "colormap": "rdylgn", "minzoom": 8, "maxzoom": 15 }, "landsat-ot-l2": { "assets": [ "nir08", "red" ], "expression": "(b1-b2)/(b1+b2-14545.45)", "rescale": [ -0.2, 0.8 ], "colormap": "rdylgn", "minzoom": 7, "maxzoom": 14 } }, "links": [ { "rel": "self", "type": "application/json", "href": "https://api.satellitedata.net/v1/presets/ndvi" }, { "rel": "tiles", "type": "application/json", "title": "TileJSON", "href": "https://api.satellitedata.net/v1/tiles/ndvi/WebMercatorQuad/tilejson.json" } ] } ], "links": [ { "rel": "self", "type": "application/json", "href": "https://api.satellitedata.net/v1/presets" } ]}Headers
Section titled “Headers”Request id for support and logs.
Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3DCaching policy for CloudFront and browsers.
Example
public, max-age=3600, s-maxage=2592000, stale-if-error=604800The key’s rate limit or monthly quota (usage plan satdata-personal) was hit.
RFC 9457 problem details. Every 4xx and 5xx response uses this shape with media type application/problem+json. The type URL opens a documentation page that explains the cause and the fix.
object
URL of the documentation page for this problem type, stable for the life of /v1.
Short summary of the problem type. It does not change between occurrences.
HTTP status code, repeated for clients that lose the status line.
Explanation specific to this occurrence, written for a developer.
Path of the request that failed.
Machine-readable problem code; equals the last path segment of type.
Request id, also sent in X-Request-Id. Quote it in support requests.
Field-level validation failures, present on 400 and 422.
One field-level failure.
object
JSON Pointer (RFC 6901) into the request body, or the query parameter name.
What is wrong with that member.
Seconds until the request can succeed; equals the Retry-After header.
The limit that was hit and the value requested, for example maxWidth and requestedWidth.
object
Example
{ "type": "https://docs.satellitedata.net/problems/rate-limited", "title": "Rate limit exceeded", "status": 429, "detail": "This key spent 300 of its 300 units in the current minute.", "instance": "/v1/process", "code": "rate-limited", "requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D", "retryAfter": 17, "limits": { "unitsPerMinute": 300, "unitsSpentThisMinute": 300 }}Headers
Section titled “Headers”Request id for support and logs.
Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3DSeconds to wait before retrying.
Example
17An unexpected server error. No units are charged.
RFC 9457 problem details. Every 4xx and 5xx response uses this shape with media type application/problem+json. The type URL opens a documentation page that explains the cause and the fix.
object
URL of the documentation page for this problem type, stable for the life of /v1.
Short summary of the problem type. It does not change between occurrences.
HTTP status code, repeated for clients that lose the status line.
Explanation specific to this occurrence, written for a developer.
Path of the request that failed.
Machine-readable problem code; equals the last path segment of type.
Request id, also sent in X-Request-Id. Quote it in support requests.
Field-level validation failures, present on 400 and 422.
One field-level failure.
object
JSON Pointer (RFC 6901) into the request body, or the query parameter name.
What is wrong with that member.
Seconds until the request can succeed; equals the Retry-After header.
The limit that was hit and the value requested, for example maxWidth and requestedWidth.
object
Example
{ "type": "https://docs.satellitedata.net/problems/internal", "title": "Internal error", "status": 500, "detail": "The request failed on our side and was logged. No units were charged.", "instance": "/v1/process", "code": "internal", "requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D"}Headers
Section titled “Headers”Request id for support and logs.
Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D