openapi: 3.1.0 info: title: Copernicus Data Space Ecosystem (CDSE) asset-level STAC catalogue Bulk Transaction Extension 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: Transaction Extension paths: /collections/{collection_id}/items/{item_id}: put: tags: - Transaction Extension summary: Update Item description: Endpoint. operationId: Update_Item_collections__collection_id__items__item_id__put 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 requestBody: content: application/json: schema: $ref: '#/components/schemas/Item-Input' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/stac_pydantic__item__Item-Output' application/geo+json: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Transaction Extension summary: Delete Item description: Endpoint. operationId: Delete_Item_collections__collection_id__items__item_id__delete 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/json: schema: $ref: '#/components/schemas/stac_pydantic__item__Item-Output' application/geo+json: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /collections: post: tags: - Transaction Extension summary: Create Collection description: Endpoint. operationId: Create_Collection_collections_post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Collection-Input' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/stac_pydantic__collection__Collection-Output' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /collections/{collection_id}: put: tags: - Transaction Extension summary: Update Collection description: Endpoint. operationId: Update_Collection_collections__collection_id__put parameters: - name: collection_id in: path required: true schema: type: string description: Collection ID title: Collection Id description: Collection ID requestBody: content: application/json: schema: $ref: '#/components/schemas/Collection-Input' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/stac_pydantic__collection__Collection-Output' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Transaction Extension summary: Delete Collection description: Endpoint. operationId: Delete_Collection_collections__collection_id__delete 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__collection__Collection-Output' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /collections/{collection_id}/items: post: tags: - Transaction Extension summary: Create Item description: Endpoint. operationId: Create_Item_collections__collection_id__items_post parameters: - name: collection_id in: path required: true schema: type: string description: Collection ID title: Collection Id description: Collection ID requestBody: content: application/json: schema: anyOf: - $ref: '#/components/schemas/Item-Input' - $ref: '#/components/schemas/ItemCollection-Input' title: Item responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/stac_pydantic__item__Item-Output' application/geo+json: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: 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 stac_pydantic__collection__Collection-Output: properties: id: type: string minLength: 1 title: Id description: type: string minLength: 1 title: Description 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 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: [] title: anyOf: - type: string - type: 'null' title: Title type: type: string const: Collection title: Type assets: anyOf: - additionalProperties: $ref: '#/components/schemas/Asset' type: object - type: 'null' title: Assets license: type: string minLength: 1 title: License extent: $ref: '#/components/schemas/Extent' keywords: anyOf: - items: type: string type: array - type: 'null' title: Keywords providers: anyOf: - items: $ref: '#/components/schemas/Provider' type: array - type: 'null' title: Providers summaries: anyOf: - additionalProperties: anyOf: - $ref: '#/components/schemas/Range' - items: {} type: array - additionalProperties: true type: object type: object - type: 'null' title: Summaries additionalProperties: true type: object required: - id - description - links - type - license - extent title: Collection description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md 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 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 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 GeometryCollection-Input: 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: GeometryCollection title: Type geometries: items: 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-Input' discriminator: propertyName: type mapping: GeometryCollection: '#/components/schemas/GeometryCollection-Input' 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: array title: Geometries type: object required: - type - geometries title: GeometryCollection description: GeometryCollection Model stac_pydantic__item__Item-Output: 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 description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md Position3D: prefixItems: - type: number title: Longitude - type: number title: Latitude - type: number title: Altitude type: array maxItems: 3 minItems: 3 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 Item-Input: 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-Input' discriminator: propertyName: type mapping: GeometryCollection: '#/components/schemas/GeometryCollection-Input' 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/Links-Input' 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 description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md 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 Collection-Input: properties: id: type: string minLength: 1 title: Id description: type: string minLength: 1 title: Description 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 links: $ref: '#/components/schemas/Links-Input' stac_extensions: anyOf: - items: type: string minLength: 1 format: uri type: array - type: 'null' title: Stac Extensions default: [] title: anyOf: - type: string - type: 'null' title: Title type: type: string const: Collection title: Type assets: anyOf: - additionalProperties: $ref: '#/components/schemas/Asset' type: object - type: 'null' title: Assets license: type: string minLength: 1 title: License extent: $ref: '#/components/schemas/Extent' keywords: anyOf: - items: type: string type: array - type: 'null' title: Keywords providers: anyOf: - items: $ref: '#/components/schemas/Provider' type: array - type: 'null' title: Providers summaries: anyOf: - additionalProperties: anyOf: - $ref: '#/components/schemas/Range' - items: {} type: array - additionalProperties: true type: object type: object - type: 'null' title: Summaries additionalProperties: true type: object required: - id - description - links - type - license - extent title: Collection description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md 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: - 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: GeometryCollection title: Type geometries: items: 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: array title: Geometries type: object required: - type - geometries title: GeometryCollection description: GeometryCollection Model LineString: 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: LineString title: Type coordinates: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array minItems: 2 title: Coordinates type: object required: - type - coordinates title: LineString description: LineString Model SpatialExtent: properties: bbox: items: items: anyOf: - type: number - type: integer type: array type: array title: Bbox type: object required: - bbox title: SpatialExtent description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#spatial-extent-object MultiLineString: 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: MultiLineString title: Type coordinates: items: items: anyOf: - $ref: '#/components/schemas/Position2D' - $ref: '#/components/schemas/Position3D' type: array minItems: 2 type: array title: Coordinates type: object required: - type - coordinates title: MultiLineString description: MultiLineString Model MimeTypes: type: string enum: - image/tiff; application=geotiff - image/tiff; application=geotiff; profile=cloud-optimized - image/jp2 - image/png - image/jpeg - application/geo+json - application/geo+json-seq - application/geopackage+sqlite3 - application/vnd.google-earth.kml+xml - application/vnd.google-earth.kmz - application/x-protobuf - application/vnd.mapbox-vector-tile - application/x-hdf - application/x-hdf5 - application/xml - application/json - application/ndjson - text/html - text/plain - application/vnd.oai.openapi+json;version=3.0 - application/vnd.oai.openapi;version=3.0 - application/schema+json - application/pdf - text/csv - application/vnd.apache.parquet - application/octet-stream title: MimeTypes description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/item-spec/item-spec.md#media-types ItemCollection-Input: 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: FeatureCollection title: Type features: items: $ref: '#/components/schemas/Item-Input' type: array title: Features links: anyOf: - $ref: '#/components/schemas/Links-Input' - type: 'null' type: object required: - type - features title: ItemCollection description: 'This is a less strict implementation of ItemCollection. It only implements the FeatureCollection Specs not enforcing required links as specified in STAC-API-FEATURES specs. Use `stac_pydantic.api.ItemCollection` to enforce link relationships and extra fields.' Links-Input: items: $ref: '#/components/schemas/Link' type: array title: Links stac_pydantic__links__Links-Output: items: $ref: '#/components/schemas/Link' type: array title: Links Position2D: prefixItems: - type: number title: Longitude - type: number title: Latitude type: array maxItems: 2 minItems: 2 Extent: properties: spatial: $ref: '#/components/schemas/SpatialExtent' temporal: $ref: '#/components/schemas/TimeInterval' type: object required: - spatial - temporal title: Extent description: https://github.com/radiantearth/stac-spec/blob/v1.0.0/collection-spec/collection-spec.md#extent-object