European Space Agency (ESA) Collections API
The Collections API from European Space Agency (ESA) — 4 operation(s) for collections.
The Collections API from European Space Agency (ESA) — 4 operation(s) for collections.
openapi: 3.1.0
info:
title: Copernicus Data Space Ecosystem (CDSE) asset-level STAC catalogue Bulk Transaction Extension Collections API
description: 'A comprehensive and searchable catalog of Earth observation and scientific datasets that is actively maintained and updated by the Copernicus Data Space Ecosystem. The integrated STAC (SpatioTemporal Asset Catalog) API, which follows the open STAC specification, enables users to access detailed asset-level metadata, including spatial information, temporal coverage, and data specifications. This standardized interface facilitates efficient data discovery and retrieval across the extensive collection of environmental and scientific resources. More information: https://documentation.dataspace.copernicus.eu/'
version: 1.1.0
servers:
- url: /v1
tags:
- name: Collections
paths:
/collections/{collection_id}/items/{item_id}:
get:
summary: Get Item
description: Endpoint.
operationId: Get_Item_collections__collection_id__items__item_id__get
parameters:
- name: collection_id
in: path
required: true
schema:
type: string
description: Collection ID
title: Collection Id
description: Collection ID
- name: item_id
in: path
required: true
schema:
type: string
description: Item ID
title: Item Id
description: Item ID
responses:
'200':
description: Successful Response
content:
application/geo+json:
schema:
$ref: '#/components/schemas/stac_pydantic__api__item__Item'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Collections
/collections:
get:
summary: Get Collections
description: Endpoint.
operationId: Get_Collections_collections_get
parameters:
- name: bbox
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**.
example: -175.05,-85.05,175.05,85.05
title: Bbox
description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**.
- name: datetime
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Only return items that have a temporal property that intersects this value.
Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots.'
title: Datetime
description: 'Only return items that have a temporal property that intersects this value.
Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots.'
examples:
datetime:
value: '2018-02-12T23:20:50Z'
closed-interval:
value: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z
open-interval-from:
value: 2018-02-12T00:00:00Z/..
open-interval-to:
value: ../2018-03-18T12:31:12Z
- name: limit
in: query
required: false
schema:
anyOf:
- type: integer
exclusiveMinimum: 0
- type: 'null'
description: Limits the number of results that are included in each page of the response.
default: 10
title: Limit
description: Limits the number of results that are included in each page of the response.
- name: query
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Allows additional filtering based on the properties of Item objects
example: '{"eo:cloud_cover": {"gte": 95}}'
title: Query
description: Allows additional filtering based on the properties of Item objects
- name: sortby
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed.
example: -gsd,-datetime
title: Sortby
description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed.
- name: fields
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Include or exclude fields from items body.
example: properties.datetime
title: Fields
description: Include or exclude fields from items body.
- name: filter
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'A CQL filter expression for filtering items.
Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288
Remember to URL encode the CQL-JSON if using GET'
example: id='LC08_L1TP_060247_20180905_20180912_01_T1_L1TP' AND collection='landsat8_l1tp'
title: Filter
description: 'A CQL filter expression for filtering items.
Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288
Remember to URL encode the CQL-JSON if using GET'
- name: filter-crs
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
title: Filter-Crs
description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
- name: filter-lang
in: query
required: false
schema:
anyOf:
- enum:
- cql-json
- cql2-json
- cql2-text
type: string
- type: 'null'
description: The CQL filter encoding that the 'filter' value uses.
default: cql2-text
title: Filter-Lang
description: The CQL filter encoding that the 'filter' value uses.
- name: q
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Parameter to perform free-text queries against STAC metadata
example: ocean,coast
title: Q
description: Parameter to perform free-text queries against STAC metadata
- name: offset
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
title: Offset
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Collections'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Collections
/collections/{collection_id}:
get:
summary: Get Collection
description: Endpoint.
operationId: Get_Collection_collections__collection_id__get
parameters:
- name: collection_id
in: path
required: true
schema:
type: string
description: Collection ID
title: Collection Id
description: Collection ID
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/stac_pydantic__api__collection__Collection'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Collections
/collections/{collection_id}/items:
get:
summary: Get Itemcollection
description: Endpoint.
operationId: Get_ItemCollection_collections__collection_id__items_get
parameters:
- name: collection_id
in: path
required: true
schema:
type: string
description: Collection ID
title: Collection Id
description: Collection ID
- name: limit
in: query
required: false
schema:
anyOf:
- type: integer
exclusiveMinimum: 0
- type: 'null'
description: Limits the number of results that are included in each page of the response (capped to 10_000).
default: 10
title: Limit
description: Limits the number of results that are included in each page of the response (capped to 10_000).
- name: bbox
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**.
example: -175.05,-85.05,175.05,85.05
title: Bbox
description: Only return items intersecting this bounding box. Mutually exclusive with **intersects**.
- name: datetime
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Only return items that have a temporal property that intersects this value.
Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots.'
title: Datetime
description: 'Only return items that have a temporal property that intersects this value.
Either a date-time or an interval, open or closed. Date and time expressions adhere to RFC 3339. Open intervals are expressed using double-dots.'
examples:
datetime:
value: '2018-02-12T23:20:50Z'
closed-interval:
value: 2018-02-12T00:00:00Z/2018-03-18T12:31:12Z
open-interval-from:
value: 2018-02-12T00:00:00Z/..
open-interval-to:
value: ../2018-03-18T12:31:12Z
- name: query
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Allows additional filtering based on the properties of Item objects
example: '{"eo:cloud_cover": {"gte": 95}}'
title: Query
description: Allows additional filtering based on the properties of Item objects
- name: sortby
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed.
example: -gsd,-datetime
title: Sortby
description: An array of property names, prefixed by either '+' for ascending or '-' for descending. If no prefix is provided, '+' is assumed.
- name: fields
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Include or exclude fields from items body.
example: properties.datetime
title: Fields
description: Include or exclude fields from items body.
- name: filter
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'A CQL filter expression for filtering items.
Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288
Remember to URL encode the CQL-JSON if using GET'
example: id='LC08_L1TP_060247_20180905_20180912_01_T1_L1TP' AND collection='landsat8_l1tp'
title: Filter
description: 'A CQL filter expression for filtering items.
Supports `CQL-JSON` as defined in https://portal.ogc.org/files/96288
Remember to URL encode the CQL-JSON if using GET'
- name: filter-crs
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
title: Filter-Crs
description: The coordinate reference system (CRS) used by spatial literals in the 'filter' value. Default is `http://www.opengis.net/def/crs/OGC/1.3/CRS84`
- name: filter-lang
in: query
required: false
schema:
anyOf:
- enum:
- cql-json
- cql2-json
- cql2-text
type: string
- type: 'null'
description: The CQL filter encoding that the 'filter' value uses.
default: cql2-text
title: Filter-Lang
description: The CQL filter encoding that the 'filter' value uses.
- name: token
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Token
responses:
'200':
description: Successful Response
content:
application/geo+json:
schema:
$ref: '#/components/schemas/ItemCollection-Output'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Collections
components:
schemas:
stac_pydantic__api__item__Item:
properties:
bbox:
anyOf:
- prefixItems:
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 4
minItems: 4
- prefixItems:
- type: number
- type: number
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 6
minItems: 6
- type: 'null'
title: Bbox
type:
type: string
const: Feature
title: Type
geometry:
anyOf:
- oneOf:
- $ref: '#/components/schemas/Point'
- $ref: '#/components/schemas/MultiPoint'
- $ref: '#/components/schemas/LineString'
- $ref: '#/components/schemas/MultiLineString'
- $ref: '#/components/schemas/Polygon'
- $ref: '#/components/schemas/MultiPolygon'
- $ref: '#/components/schemas/GeometryCollection-Output'
discriminator:
propertyName: type
mapping:
GeometryCollection: '#/components/schemas/GeometryCollection-Output'
LineString: '#/components/schemas/LineString'
MultiLineString: '#/components/schemas/MultiLineString'
MultiPoint: '#/components/schemas/MultiPoint'
MultiPolygon: '#/components/schemas/MultiPolygon'
Point: '#/components/schemas/Point'
Polygon: '#/components/schemas/Polygon'
- type: 'null'
title: Geometry
properties:
$ref: '#/components/schemas/ItemProperties'
id:
type: string
minLength: 1
title: Id
stac_version:
type: string
pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
title: Stac Version
default: 1.0.0
assets:
additionalProperties:
$ref: '#/components/schemas/Asset'
type: object
title: Assets
links:
$ref: '#/components/schemas/stac_pydantic__links__Links-Output'
stac_extensions:
anyOf:
- items:
type: string
minLength: 1
format: uri
type: array
- type: 'null'
title: Stac Extensions
default: []
collection:
anyOf:
- type: string
- type: 'null'
title: Collection
type: object
required:
- type
- geometry
- properties
- id
- assets
- links
title: Item
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
Point:
properties:
bbox:
anyOf:
- prefixItems:
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 4
minItems: 4
- prefixItems:
- type: number
- type: number
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 6
minItems: 6
- type: 'null'
title: Bbox
type:
type: string
const: Point
title: Type
coordinates:
anyOf:
- $ref: '#/components/schemas/Position2D'
- $ref: '#/components/schemas/Position3D'
title: Coordinates
type: object
required:
- type
- coordinates
title: Point
description: Point Model
Link:
properties:
href:
type: string
minLength: 1
title: Href
rel:
type: string
minLength: 1
title: Rel
type:
anyOf:
- $ref: '#/components/schemas/MimeTypes'
- type: 'null'
title:
anyOf:
- type: string
- type: 'null'
title: Title
label:assets:
anyOf:
- type: string
- type: 'null'
title: Label:Assets
additionalProperties: true
type: object
required:
- href
- rel
title: Link
description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#link-object
Collections:
properties:
links:
$ref: '#/components/schemas/stac_pydantic__api__links__Links'
collections:
items:
$ref: '#/components/schemas/stac_pydantic__api__collection__Collection'
type: array
title: Collections
numberMatched:
anyOf:
- type: integer
- type: 'null'
title: Numbermatched
numberReturned:
anyOf:
- type: integer
- type: 'null'
title: Numberreturned
type: object
required:
- links
- collections
title: Collections
description: 'https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features#endpoints
https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/ogcapi-features#collections-collections'
Polygon:
properties:
bbox:
anyOf:
- prefixItems:
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 4
minItems: 4
- prefixItems:
- type: number
- type: number
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 6
minItems: 6
- type: 'null'
title: Bbox
type:
type: string
const: Polygon
title: Type
coordinates:
items:
items:
anyOf:
- $ref: '#/components/schemas/Position2D'
- $ref: '#/components/schemas/Position3D'
type: array
minItems: 4
type: array
title: Coordinates
type: object
required:
- type
- coordinates
title: Polygon
description: Polygon Model
TimeInterval:
properties:
interval:
items:
items:
anyOf:
- type: string
- type: 'null'
type: array
type: array
title: Interval
type: object
required:
- interval
title: TimeInterval
description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#temporal-extent-object
Provider:
properties:
name:
type: string
minLength: 1
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
roles:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Roles
url:
anyOf:
- type: string
- type: 'null'
title: Url
type: object
required:
- name
title: Provider
description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#provider-object
ItemProperties:
properties:
title:
anyOf:
- type: string
- type: 'null'
title: Title
description:
anyOf:
- type: string
- type: 'null'
title: Description
datetime:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Datetime
created:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Created
updated:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Updated
start_datetime:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Start Datetime
end_datetime:
anyOf:
- type: string
format: date-time
- type: 'null'
title: End Datetime
license:
anyOf:
- type: string
- type: 'null'
title: License
providers:
anyOf:
- items:
$ref: '#/components/schemas/Provider'
type: array
- type: 'null'
title: Providers
platform:
anyOf:
- type: string
- type: 'null'
title: Platform
instruments:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Instruments
constellation:
anyOf:
- type: string
- type: 'null'
title: Constellation
mission:
anyOf:
- type: string
- type: 'null'
title: Mission
gsd:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Gsd
additionalProperties: true
type: object
required:
- datetime
title: ItemProperties
description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#properties-object
ItemsLink:
properties:
href:
type: string
pattern: .*\/items(\?.*)?\b
title: Href
rel:
type: string
enum:
- self
- items
title: Rel
type:
type: string
const: application/geo+json
title: Type
default: application/geo+json
title:
anyOf:
- type: string
- type: 'null'
title: Title
label:assets:
anyOf:
- type: string
- type: 'null'
title: Label:Assets
method:
type: string
enum:
- GET
- POST
title: Method
default: GET
headers:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Headers
body:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Body
merge:
type: boolean
title: Merge
default: false
additionalProperties: true
type: object
required:
- href
- rel
title: ItemsLink
PaginationLink:
properties:
href:
type: string
minLength: 1
title: Href
rel:
type: string
enum:
- next
- prev
title: Rel
type:
anyOf:
- $ref: '#/components/schemas/MimeTypes'
- type: 'null'
title:
anyOf:
- type: string
- type: 'null'
title: Title
label:assets:
anyOf:
- type: string
- type: 'null'
title: Label:Assets
method:
type: string
enum:
- GET
- POST
title: Method
default: GET
headers:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Headers
body:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Body
merge:
type: boolean
title: Merge
default: false
additionalProperties: true
type: object
required:
- href
- rel
title: PaginationLink
description: https://github.com/radiantearth/stac-api-spec/blob/v1.0.0/item-search/README.md#pagination
Position3D:
prefixItems:
- type: number
title: Longitude
- type: number
title: Latitude
- type: number
title: Altitude
type: array
maxItems: 3
minItems: 3
SearchLink:
properties:
href:
type: string
pattern: .*\/search(\?.*)?\b
title: Href
rel:
type: string
enum:
- self
- search
- next
- prev
title: Rel
type:
type: string
const: application/geo+json
title: Type
default: application/geo+json
title:
anyOf:
- type: string
- type: 'null'
title: Title
label:assets:
anyOf:
- type: string
- type: 'null'
title: Label:Assets
method:
type: string
enum:
- GET
- POST
title: Method
default: GET
headers:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Headers
body:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Body
merge:
type: boolean
title: Merge
default: false
additionalProperties: true
type: object
required:
- href
- rel
title: SearchLink
description: https://github.com/radiantearth/stac-api-spec/tree/v1.0.0/item-search#link-relations
Range:
properties:
minimum:
anyOf:
- type: number
- type: integer
- type: string
title: Minimum
maximum:
anyOf:
- type: number
- type: integer
- type: string
title: Maximum
type: object
required:
- minimum
- maximum
title: Range
description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#stats-object
MultiPolygon:
properties:
bbox:
anyOf:
- prefixItems:
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 4
minItems: 4
- prefixItems:
- type: number
- type: number
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 6
minItems: 6
- type: 'null'
title: Bbox
type:
type: string
const: MultiPolygon
title: Type
coordinates:
items:
items:
items:
anyOf:
- $ref: '#/components/schemas/Position2D'
- $ref: '#/components/schemas/Position3D'
type: array
minItems: 4
type: array
type: array
title: Coordinates
type: object
required:
- type
- coordinates
title: MultiPolygon
description: MultiPolygon Model
MultiPoint:
properties:
bbox:
anyOf:
- prefixItems:
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 4
minItems: 4
- prefixItems:
- type: number
- type: number
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 6
minItems: 6
- type: 'null'
title: Bbox
type:
type: string
const: MultiPoint
title: Type
coordinates:
items:
anyOf:
- $ref: '#/components/schemas/Position2D'
- $ref: '#/components/schemas/Position3D'
type: array
title: Coordinates
type: object
required:
- type
- coordinates
title: MultiPoint
description: MultiPoint Model
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Asset:
properties:
href:
type: string
minLength: 1
title: Href
type:
anyOf:
- type: string
- type: 'null'
title: Type
title:
anyOf:
- type: string
- type: 'null'
title: Title
description:
anyOf:
- type: string
- type: 'null'
title: Description
roles:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Roles
additionalProperties: true
type: object
required:
- href
title: Asset
description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#asset-object
GeometryCollection-Output:
properties:
bbox:
anyOf:
- prefixItems:
- type: number
- type: number
- type: number
- type: number
type: array
maxItems: 4
minItems: 4
- prefixItems:
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/esa/refs/heads/main/openapi/esa-collections-api-openapi.yml