Skip to content

Render or extract an area

POST
/v1/process
curl --request POST \
--url https://api.satellitedata.net/v1/process \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "input": { "bounds": { "bbox": [ -93.3, 44.9, -93.2, 45 ] }, "data": [ { "type": "optical-sr", "dataFilter": { "timeRange": { "from": "2026-06-01T00:00:00Z", "to": "2026-08-31T23:59:59Z" }, "platform": [ "landsat-8", "landsat-9", "sentinel-2a", "sentinel-2b", "sentinel-2c" ], "maxCloudCoverage": 40, "mosaickingOrder": "leastCC" }, "processing": { "units": "REFLECTANCE", "harmonize": "bandpass_adjusted", "cloudMask": { "exclude": [ "nodata", "saturated_defective", "cloud", "cloud_shadow", "cirrus", "cloud_adjacent" ], "dilate_m": 150 } } } ] }, "bands": [ "red", "nir08" ], "expression": "(nir08 - red) / (nir08 + red)", "output": { "width": 512, "height": 512, "format": "image/tiff", "sampleType": "FLOAT32" } }'

Renders or extracts an area: bounds, one to four data sources with filters and processing options, bands or an expression, and an output size and format up to 2,500 by 2,500 pixels. Units are computed before any S3 read, and the request fails with 413 or 422 when a cap is exceeded. Outputs above 4 MB, which would not fit the 6 MB Lambda response limit once base64-encoded, answer 303 with a CloudFront URL into the results bucket.

Process request.

Media typeapplication/json

Process request, modelled on the Sentinel Hub Process API without evalscripts.

object
input
required

Inputs.

object
bounds
required

Area of interest: bbox or geometry, not both.

object
bbox

Bounding box as [west, south, east, north] in CRS84 longitude and latitude, or six numbers with heights.

Array<number>
>= 4 items <= 6 items
geometry

A GeoJSON geometry.

object
type
required

GeoJSON geometry type.

string
Allowed values: Point MultiPoint LineString MultiLineString Polygon MultiPolygon
coordinates
required

GeoJSON coordinates in CRS84 longitude and latitude (RFC 7946).

array
properties

Bounds properties.

object
crs

CRS of bbox or geometry as an OGC URI.

string
default: http://www.opengis.net/def/crs/OGC/1.3/CRS84
data
required

Input collections. More than one is data fusion.

Array<object>
>= 1 items <= 4 items

One input collection.

object
type
required

Collection id or alias, for example optical-sr or S2L2A.

string
id

Name for this source when the request fuses several, used as a prefix in expressions (s1.vv).

string
/^[a-z][a-z0-9_]{0,15}$/
dataFilter
required

Which scenes feed the request.

object
timeRange
required

Acquisition time window.

object
from
required

Inclusive start, RFC 3339 UTC.

string format: date-time
to
required

Inclusive end, RFC 3339 UTC.

string format: date-time
maxCloudCoverage

Maximum scene cloud cover percentage.

number
default: 100 <= 100
mosaickingOrder

Scene order for mosaics.

string
default: mostRecent
Allowed values: mostRecent leastRecent leastCC
platform

Normalized platform names such as landsat-9 or sentinel-2c.

Array<string>
Allowed values: landsat-1 landsat-2 landsat-3 landsat-4 landsat-5 landsat-7 landsat-8 landsat-9 sentinel-1a sentinel-1b sentinel-1c sentinel-1d sentinel-2a sentinel-2b sentinel-2c sentinel-2d tandem-x
sourcePreference

On optical-sr, which copy wins when native and HLS observe the same overpass.

Array<string>
Allowed values: native hls
filter

Extra CQL2 JSON filter on queryables.

object
key
additional properties
any
processing

How values are converted.

object
units

Output unit. Defaults per band from schema v1.

string
Allowed values: REFLECTANCE DN KELVIN CELSIUS LINEAR_POWER DB METERS DEGREES FRACTION
harmonize

Harmonization level. Default offset_removed on native collections and bandpass_adjusted on optical-sr.

string
Allowed values: none offset_removed bandpass_adjusted nbar
cloudMask

Unified cloud mask settings from schema v1.

object
exclude

Mask classes to drop. Defaults to schema v1 defaultExclude for statistics and time series and to the preset value for tiles.

Array<string>
unique items
Allowed values: nodata saturated_defective cloud cloud_shadow cirrus cloud_adjacent snow_ice water dark_terrain_shadow unclassified clear
scl7

How Sentinel-2 SCL class 7 is treated.

string
default: unclassified
Allowed values: unclassified cloud clear
dilate_m

Buffer in metres around cloud and cloud_shadow on sources without one.

integer
0 <= 600
cloudConfidence

Minimum Landsat QA_PIXEL cloud confidence counted as cloud.

string
default: medium
Allowed values: low medium high
clipNegative

Clip negative reflectance to 0.

boolean
resampling

Resampling method.

string
default: nearest
Allowed values: nearest bilinear cubic
pixelSelection

How overlapping scenes combine into one value.

string
default: first
Allowed values: first highest lowest mean median stdev lastbandhigh lastbandlow
egm

DEM only: return ellipsoidal heights instead of orthometric.

boolean
preset

Render preset id, used instead of bands and expression.

string
bands

Bands to read by common name, native name or alias. mask, mask_class and dataMask are free.

Array<string>
expression

Band math over the named bands, or a schema v1 index id such as ndvi. Semicolons separate output bands.

string
output
required

Output size and format.

object
width

Output width in pixels.

integer
>= 1 <= 2500
height

Output height in pixels.

integer
>= 1 <= 2500
resx

Pixel width in CRS units, instead of width.

number
resy

Pixel height in CRS units, instead of height.

number
crs

Output CRS as an OGC URI or EPSG code.

string
default: EPSG:3857
format

Output media type.

string
default: image/tiff
Allowed values: image/tiff image/png image/jpeg image/webp application/json
sampleType

Output sample type.

string
Allowed values: AUTO UINT8 UINT16 INT16 FLOAT32
rescale

Min and max mapped to 0-255 for AUTO.

Array<number>
>= 2 items <= 2 items
colormap

Named colormap for one-band images, for example rdylgn.

string

Examples

Cross-sensor NDVI as a 512 x 512 FLOAT32 GeoTIFF

{
"input": {
"bounds": {
"bbox": [
-93.3,
44.9,
-93.2,
45
]
},
"data": [
{
"type": "optical-sr",
"dataFilter": {
"timeRange": {
"from": "2026-06-01T00:00:00Z",
"to": "2026-08-31T23:59:59Z"
},
"platform": [
"landsat-8",
"landsat-9",
"sentinel-2a",
"sentinel-2b",
"sentinel-2c"
],
"maxCloudCoverage": 40,
"mosaickingOrder": "leastCC"
},
"processing": {
"units": "REFLECTANCE",
"harmonize": "bandpass_adjusted",
"cloudMask": {
"exclude": [
"nodata",
"saturated_defective",
"cloud",
"cloud_shadow",
"cirrus",
"cloud_adjacent"
],
"dilate_m": 150
}
}
}
]
},
"bands": [
"red",
"nir08"
],
"expression": "(nir08 - red) / (nir08 + red)",
"output": {
"width": 512,
"height": 512,
"format": "image/tiff",
"sampleType": "FLOAT32"
}
}

The rendered or extracted raster. GeoTIFF outputs carry raster:scale and raster:offset tags; JSON returns values for outputs up to 65,536 pixels.

string
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D
X-Units-Spent
number

Units charged for this response; 0 for cache hits and free routes.

Example
1.333
X-Units-Remaining
number

Units left this month before restricted mode.

Example
8664.2
RateLimit
string

Remaining units and seconds to reset in the current window (IETF RateLimit header draft).

Example
"units";r=287;t=41
RateLimit-Policy
string

Quota policy of the caller (IETF RateLimit header draft).

Example
"units";q=300;w=60
X-Attribution
string

Credit lines for the data in the response, separated by semicolons.

Example
Contains modified Copernicus Sentinel data 2026; Landsat data courtesy of the U.S. Geological Survey

Output larger than 4 MB: Location is a CloudFront signed URL under /results/ whose origin is the lambda-raster results bucket, valid for one hour; the object expires after 24 hours. Units are charged once.

X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D
X-Units-Spent
number

Units charged for this response; 0 for cache hits and free routes.

Example
1.333
X-Units-Remaining
number

Units left this month before restricted mode.

Example
8664.2
RateLimit
string

Remaining units and seconds to reset in the current window (IETF RateLimit header draft).

Example
"units";r=287;t=41
RateLimit-Policy
string

Quota policy of the caller (IETF RateLimit header draft).

Example
"units";q=300;w=60
X-Attribution
string

Credit lines for the data in the response, separated by semicolons.

Example
Contains modified Copernicus Sentinel data 2026; Landsat data courtesy of the U.S. Geological Survey
Location
string format: uri

CloudFront signed URL of the output in the results bucket.

Example
https://api.satellitedata.net/results/01JQ7Z3M8R5V2W6X9Y0A1B2C3D.tif?Expires=1792055112&Signature=c2lnbmF0dXJl&Key-Pair-Id=K2JCJMDEHXQW5F

Malformed body.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/invalid-body",
"title": "Invalid request body",
"status": 400,
"detail": "output.width must be an integer from 1 to 2500.",
"instance": "/v1/process",
"code": "invalid-body",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D",
"errors": [
{
"pointer": "/output/width",
"detail": "must be <= 2500"
}
]
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

The API key or bearer token is missing, unknown, revoked or expired.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/invalid-key",
"title": "Invalid or missing credentials",
"status": 401,
"detail": "Send a verified key in X-API-Key or a bearer token from /oauth/token.",
"instance": "/v1/process",
"code": "invalid-key",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D"
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D
WWW-Authenticate
string

Challenge naming the accepted schemes.

Example
Bearer realm="satellitedata.net", ApiKey header="X-API-Key"

The credentials are valid but cannot use this route, for example before email verification or without the scope.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/email-unverified",
"title": "Email not verified",
"status": 403,
"detail": "Keys work only after the account email is verified. Check your inbox or resend from the dashboard.",
"instance": "/v1/process",
"code": "email-unverified",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D"
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

The output or area exceeds a hard cap.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/output-too-large",
"title": "Output too large",
"status": 413,
"detail": "Requested 4000 x 4000 pixels; the cap is 2500 x 2500.",
"instance": "/v1/process",
"code": "output-too-large",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D",
"limits": {
"maxWidth": 2500,
"maxHeight": 2500,
"requestedWidth": 4000,
"requestedHeight": 4000
}
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

Valid JSON that cannot be served: unknown band, unsupported harmonize or units, or too many scenes.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/harmonize-unavailable",
"title": "Harmonization level unavailable",
"status": 422,
"detail": "nbar is available only on hls and on optical-sr through hls; sentinel-2-l2a supports none, offset_removed and bandpass_adjusted.",
"instance": "/v1/process",
"code": "harmonize-unavailable",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D",
"errors": [
{
"pointer": "/input/data/0/processing/harmonize",
"detail": "nbar not supported by sentinel-2-l2a"
}
]
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

A per-minute, concurrency, monthly or per-IP limit was hit. Retry-After says when to retry.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

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
}
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D
Retry-After
integer

Seconds to wait before retrying.

Example
17
RateLimit
string

Remaining units and seconds to reset in the current window (IETF RateLimit header draft).

Example
"units";r=287;t=41
RateLimit-Policy
string

Quota policy of the caller (IETF RateLimit header draft).

Example
"units";q=300;w=60

An unexpected server error. No units are charged.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

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"
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

An upstream catalog or bucket is unavailable, or the service is in maintenance. No units are charged.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/upstream-unavailable",
"title": "Upstream unavailable",
"status": 503,
"detail": "NASA Earthdata returned 503 for the HLS credentials endpoint; HLS scenes are temporarily unavailable.",
"instance": "/v1/process",
"code": "upstream-unavailable",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D",
"retryAfter": 120
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D
Retry-After
integer

Seconds to wait before retrying.

Example
17

The render did not finish within the 29-second API Gateway limit. No units are charged.

Media typeapplication/problem+json

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
type
required

URL of the documentation page for this problem type, stable for the life of /v1.

string format: uri
title
required

Short summary of the problem type. It does not change between occurrences.

string
status
required

HTTP status code, repeated for clients that lose the status line.

integer
>= 400 <= 599
detail
required

Explanation specific to this occurrence, written for a developer.

string
instance

Path of the request that failed.

string
code

Machine-readable problem code; equals the last path segment of type.

string
/^[a-z0-9-]+$/
requestId

Request id, also sent in X-Request-Id. Quote it in support requests.

string
errors

Field-level validation failures, present on 400 and 422.

Array<object>

One field-level failure.

object
pointer
required

JSON Pointer (RFC 6901) into the request body, or the query parameter name.

string
detail
required

What is wrong with that member.

string
retryAfter

Seconds until the request can succeed; equals the Retry-After header.

integer
limits

The limit that was hit and the value requested, for example maxWidth and requestedWidth.

object
key
additional properties
number
unitsEstimated

Units the request would have cost, computed before execution.

number
error

OAuth 2.0 error code (RFC 6749 section 5.2). Present only on /oauth/token responses.

string
Allowed values: invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_scope
error_description

OAuth 2.0 error description. Present only on /oauth/token responses.

string
message

Copy of detail for openEO clients, which read message. Present only on /v1/openeo routes.

string
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/render-timeout",
"title": "Render timed out",
"status": 504,
"detail": "The render read 41 scenes and did not finish in 29 seconds. Narrow the time range or lower the output size.",
"instance": "/v1/process",
"code": "render-timeout",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D"
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D