Collection with bands, units, extents and attribution
const url = 'https://api.satellitedata.net/v1/collections/sentinel-2-l2a';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/collections/sentinel-2-l2aOne collection by id or alias. An alias answers 200 with the canonical document and a Content-Location header naming the canonical URL.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Collection id or alias without a slash, for example sentinel-2-l2a or S2L2A.
Example
sentinel-2-l2aResponses
Section titled “Responses”The collection; the band table is shortened to three bands.
STAC collection with the schema v1 band table, units and attribution.
object
Always Collection.
STAC version.
STAC extension schema URIs.
Canonical collection id.
Collection title.
Collection description.
Keywords.
SPDX id, or “other” with a license link.
Data providers.
Provider.
object
Provider name.
Roles.
Provider URL.
Extents measured from the index.
object
Spatial extent.
object
Overall bbox first, then optional sub-boxes.
Temporal extent.
object
Intervals; an open end is null.
STAC summaries, such as platform and eo:cloud_cover ranges.
object
Band table from schema v1 (STAC 1.1 bands field). Empty on optical-sr, which lists common names in sdn:bands_common.
One band, from the schema v1 crosswalk.
object
Native band name, unique within the collection, for example B8A or SR_B5.
STAC eo common name, the cross-sensor key, for example nir08.
Band description.
Other names that resolve to this band within the collection.
Centre wavelength in micrometres.
Full width at half maximum in micrometres.
Native ground sample distance in metres.
Stored data type.
Raster:scale; value = scale x DN + offset.
Raster:offset for the newest product; see offset_rule when it depends on the item.
How the offset is chosen per item, when it is not constant.
Stored nodata value.
Default unit id from schema v1.
True when the band resolves on optical-sr.
Notes on the band, such as naming conflicts between catalogs.
Aliases from schema v1.
Collection alias.
object
Alias id accepted wherever a collection id is accepted.
Where the alias comes from, such as Sentinel Hub or Earth Search.
Alias group when one upstream id spans several collections.
CQL2 text filter that the alias implies.
Exact credit line to show with any output; responses replace {years} with acquisition years.
Units the collection can return.
Unit used when the request does not choose one.
Harmonization levels the collection supports.
Harmonization level used when the request does not choose one.
Derived bands such as mask, mask_class and dataMask.
Cloud-mask source.
Mask classes the source can detect. A class missing here is not detectable, not absent.
True for optical-sr, which searches its member collections.
Member collections of a virtual collection.
Common band names that resolve on a virtual collection.
Tile zoom range.
object
Lowest zoom served from the full archive.
Highest zoom served.
Links, including items, queryables, license and the schema.
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
{ "type": "Collection", "id": "sentinel-2-l2a", "providers": [ { "roles": [ "licensor" ] } ], "bands": [ { "data_type": "uint8" } ], "sdn:units": [ "REFLECTANCE" ], "sdn:default_units": "REFLECTANCE", "sdn:harmonize_levels": [ "none" ], "sdn:default_harmonize": "none", "sdn:mask_source": "scl", "sdn:members": [ "sentinel-2-l2a" ], "links": [ { "method": "GET" } ]}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=604800Canonical URL when the request used an alias.
Example
https://api.satellitedata.net/v1/collections/sentinel-2-l2aNo resource has this id.
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/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"}Headers
Section titled “Headers”Request id for support and logs.
Example
01JQ7Z3M8R5V2W6X9Y0A1B2C3DThe 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