Skip to content
getgeolens.com

Raster Tile Proxy

GET
/tiles/raster-proxy/{dataset_id}/{z}/{x}/{y}.{fmt}
curl --request GET \
--url https://example.com/tiles/raster-proxy/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/1/1/1.example

Render one raster tile and return the image.

Returns the image itself rather than a redirect: the dataset is authorized, then the rendered tile comes back in the response body. Used by the development proxy and by deployments that run without nginx in front.

colormap_name applies a colormap to a single-band raster. Passing gray leaves the rendering unchanged, and a digital elevation model ignores the parameter, because its terrain encoding cannot be recoloured.

stretch chooses how pixel values map to the output range. minmax keeps the range the dataset already implies: the recorded per-band minimum and maximum for a raster imported from a remote source that published statistics, a range derived from the data type for most others, and no rescale parameter for 8-bit data, which needs none. percentile and stddev instead derive a range from band statistics read at request time, for up to three bands. A digital elevation model ignores the parameter, and so does a request whose band statistics cannot be read, which falls back to minmax rather than failing.

pmin and pmax (2 and 98 by default) are read when stretch is percentile, and sigma (2.0 by default) when it is stddev. A parameter that does not apply to the selected stretch is ignored, and its default is used in place of the value sent.

Responds 204 when the tile falls outside the raster, 400 for an unsupported format, 401 when authentication is required, or when a request that no capability authorized carried a credential which did not resolve, 403 when the embed token is invalid or expired or a multi-tenant request arrives with no tenant context, 422 for an out-of-range stretch parameter, and 503 when the renderer cannot be reached. A different failure from the renderer is passed through with its own status.

404 covers more than a missing dataset. A dataset that is unknown, is not a raster or has no image answers 404. Where no capability authorized the request, so does a dataset the caller may not read: an authorization denial on a non-public raster, and an unpublished raster asked for by a caller who is neither its owner nor an admin. That is deliberate, so a refusal keeps a dataset’s existence undisclosed.

dataset_id
required
Dataset Id
string format: uuid
z
required
Z
integer
x
required
X
integer
y
required
Y
integer
fmt
required
Fmt
string
colormap_name
Any of:
string
Allowed values: gray viridis inferno plasma magma ylorrd bugn terrain

Titiler colormap for single-band display

stretch
Any of:
string
Allowed values: minmax percentile stddev

Stretch strategy: minmax (default), percentile, stddev

pmin
Any of:
number

Lower percentile clip for stretch=percentile (0–100, default 2). Absent = current p2 behavior. Must be less than pmax. Ignored, and not validated, when stretch is not percentile.

pmax
Any of:
number

Upper percentile clip for stretch=percentile (0–100, default 98). Absent = current p98 behavior. Must be greater than pmin. Ignored, and not validated, when stretch is not percentile.

sigma
Any of:
number

Standard-deviation multiplier for stretch=stddev (default 2.0). Absent = current 2.0σ behavior. Must be > 0. Ignored, and not validated, when stretch is not stddev.

Successful Response

Bad request — invalid query parameters or payload

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Unauthenticated — a credential was supplied and could not be resolved (expired, revoked, or malformed). Sending no credential at all is not an error on these operations; they answer anonymously with the public subset. Neither is sending an unresolvable credential alongside a capability that authorizes the request on its own — a valid X-Embed-Token or a valid signed tile template (sig, exp, scope). Those are served and the unrelated credential is ignored.

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Not found

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Validation error

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Internal server error

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}

Service unavailable — the database could not serve the request

Media type application/problem+json
ProblemDetail
object
type
Type
string
default: about:blank
title
required
Title
string
status
required
Status
integer
detail
required
Any of:
string
Example
{
"detail": "Dataset not found",
"status": 404,
"title": "Not Found",
"type": "about:blank"
}