Skip to content

Queue a process request as a background job

POST
/v1/process/jobs
curl --request POST \
--url https://api.satellitedata.net/v1/process/jobs \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <X-API-Key>' \
--data '{ "input": { "bounds": { "bbox": [ 0.738, 40.711, 0.762, 40.729 ] }, "data": [ { "type": "sentinel-2-l2a", "dataFilter": { "timeRange": { "from": "2026-08-29T00:00:00Z", "to": "2026-08-29T23:59:59Z" }, "maxCloudCoverage": 30 }, "processing": { "units": "REFLECTANCE" } } ] }, "bands": [ "red", "nir08" ], "output": { "width": 512, "height": 512, "crs": "EPSG:32631", "format": "image/tiff", "sampleType": "FLOAT32" } }'

Lean extension: the same body as POST /v1/process, rendered by a worker in up to 5 minutes, for outputs over the synchronous limit (up to 20,000 pixels a side and 600 million band-pixels). Poll the job’s self link.

Media typeapplication/json

Process request (lean v1): one source, bands by name, GeoTIFF output. preset and expression are not available yet.

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

One input collection (no fusion in the lean v1).

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

One input collection.

object
type
required

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

string
dataFilter
required

Which scenes feed the request: a timeRange search (up to 6 scenes, in mosaickingOrder) or explicit ids.

object
timeRange

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
ids

Lean extension: item ids to mosaic, first on top, instead of timeRange.

Array<string>
>= 1 items <= 6 items
processing

How values are converted.

object
units

REFLECTANCE (default): float32 physical values (reflectance; kelvin for lwir11). DN: stored integers.

string
Allowed values: REFLECTANCE DN
harmonize

Default offset_removed: Sentinel-2 DN minus the 1000 baseline offset (int16). Equals none for REFLECTANCE and for Landsat.

string
Allowed values: none offset_removed
clipNegative

Clip negative reflectance to 0.

boolean
resampling

Resampling method.

string
default: nearest
Allowed values: nearest
bands

Bands by common name, native name or alias from schema v1; default every spectral band.

Array<string>
output
required

Output size and format.

object
width

Output width in pixels: up to 2,500 on POST /v1/process (413 above), 20,000 on jobs.

integer
>= 1 <= 20000
height

Output height in pixels: up to 2,500 on POST /v1/process (413 above), 20,000 on jobs.

integer
>= 1 <= 20000
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 EPSG code (EPSG:32631) or OGC URI.

string
default: EPSG:3857
format

Output media type.

string
default: image/tiff
Allowed values: image/tiff
sampleType

Output sample type. FLOAT32 for REFLECTANCE, INT16 for Sentinel-2 DN with offset_removed, UINT16 for stored DN; AUTO or absent picks it.

string
Allowed values: AUTO UINT16 INT16 FLOAT32

Example

{
"input": {
"bounds": {
"bbox": [
0.738,
40.711,
0.762,
40.729
]
},
"data": [
{
"type": "sentinel-2-l2a",
"dataFilter": {
"timeRange": {
"from": "2026-08-29T00:00:00Z",
"to": "2026-08-29T23:59:59Z"
},
"maxCloudCoverage": 30
},
"processing": {
"units": "REFLECTANCE"
}
}
]
},
"bands": [
"red",
"nir08"
],
"output": {
"width": 512,
"height": 512,
"crs": "EPSG:32631",
"format": "image/tiff",
"sampleType": "FLOAT32"
}
}

Queued.

Media typeapplication/json

A background process job (lean extension).

object
id
required

Job id.

string
status
required

Job status.

string
Allowed values: queued running done failed
created

Creation time.

string
updated

Last update.

string
files

When done: the GeoTIFF with a fresh one-hour url, its bands, dtype, scales and offsets.

Array<object>
object
key
additional properties
any
items_used

Scenes that contributed pixels.

Array<string>
error

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
key
additional properties
any
links
required

Self, and result links to the files when done.

Array<object>

A STAC and OGC API link object.

object
href
required

Link target.

string format: uri
rel
required

Relation type, such as self, root, parent, next, prev, items, queryables, tiles or license.

string
type

Media type of the target.

string
title

Human-readable title.

string
method

HTTP method for the link, GET unless stated. Paging POST /v1/search uses POST.

string
Allowed values: GET POST
body

Request body to send with a POST link, used for the next page of POST /v1/search.

object
key
additional properties
any
merge

When true the client merges body into the previous request body.

boolean
key
additional properties
any

Example

{
"id": "3f2a9c1e5b7d4e0f8a6b2c4d1e3f5a7b",
"status": "queued",
"created": "2026-10-15T08:00:00+00:00",
"links": [
{
"rel": "self",
"type": "application/json",
"href": "https://api.satellitedata.net/v1/process/jobs/3f2a9c1e5b7d4e0f8a6b2c4d1e3f5a7b"
}
]
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D
Location
string format: uri

URL of the job.

The request is malformed or a parameter is invalid.

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
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/invalid-parameter",
"title": "Invalid parameter",
"status": 400,
"detail": "bbox must have 4 or 6 numbers; got 3.",
"instance": "/v1/search",
"code": "invalid-parameter",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D",
"errors": [
{
"pointer": "bbox",
"detail": "expected 4 or 6 numbers"
}
]
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

The X-API-Key header is missing or the key is unknown, disabled or not on this API’s usage plan.

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
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/invalid-key",
"title": "Invalid or missing credentials",
"status": 401,
"detail": "Send a valid key in the X-API-Key header.",
"instance": "/v1/search",
"code": "invalid-key",
"requestId": "c1d2e3f4-0000-4a5b-8c9d-0123456789ab"
}
WWW-Authenticate
string

Challenge naming the accepted scheme.

Example
ApiKey header="X-API-Key"

No resource has this id.

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
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/not-found",
"title": "Not found",
"status": 404,
"detail": "No item S2C_T15TVK_20260714T170911_L2X in collection sentinel-2-l2a.",
"instance": "/v1/collections/sentinel-2-l2a/items/S2C_T15TVK_20260714T170911_L2X",
"code": "not-found",
"requestId": "01JQ7Z3M8R5V2W6X9Y0A1B2C3D"
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

A size cap was exceeded.

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
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/output-too-large",
"title": "Output too large",
"status": 413,
"detail": "Output 3000 x 3000 pixels is over the 2500 pixel limit per side for synchronous process; POST /v1/process/jobs takes up to 20000.",
"instance": "/v1/process",
"code": "output-too-large",
"requestId": "c1d2e3f4-0000-4a5b-8c9d-0123456789ab",
"limits": {
"maxOutputWidth": 2500,
"maxOutputHeight": 2500,
"requestedWidth": 3000,
"requestedHeight": 3000
}
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

Valid JSON the lean v1 cannot serve: an unknown band, or units or harmonization it does not offer.

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
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/unknown-band",
"title": "Unknown band",
"status": 422,
"detail": "landsat-ot-l2 has no band 'nir'; cross-sensor NIR is nir08. Close names: ['nir08']. The full list is in /v1/schema.",
"instance": "/v1/process",
"code": "unknown-band",
"requestId": "c1d2e3f4-0000-4a5b-8c9d-0123456789ab",
"errors": [
{
"pointer": "/bands/1",
"detail": "unknown band"
}
]
}
X-Request-Id
string

Request id for support and logs.

Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3D

The key’s rate limit or monthly quota (usage plan satdata-personal) was hit.

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

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

Earth Search or the renderer is unavailable.

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
key
additional properties
any

Example

{
"type": "https://docs.satellitedata.net/problems/upstream-unavailable",
"title": "Upstream unavailable",
"status": 503,
"detail": "Earth Search did not answer: ReadTimeout",
"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