Copernicus Data Space STAC Catalogue API

SpatioTemporal Asset Catalogue (STAC) implementation for the Copernicus Data Space Ecosystem. Provides standardised metadata discovery for Earth Observation data including Sentinel missions. Follows the open STAC specification to enable interoperable access to asset-level metadata with spatial information, temporal coverage, and data specifications. Connects to the same underlying database as the OData interface, ensuring consistency across access methods.

OpenAPI Specification

esa-copernicus-stac-openapi.json Raw ↑
{
    "openapi": "3.1.0",
    "info": {
        "title": "Copernicus Data Space Ecosystem (CDSE) asset-level STAC catalogue",
        "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"
        }
    ],
    "paths": {
        "/": {
            "get": {
                "summary": "Landing Page",
                "description": "Endpoint.",
                "operationId": "Landing_Page__get",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LandingPage"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/conformance": {
            "get": {
                "summary": "Conformance Classes",
                "description": "Endpoint.",
                "operationId": "Conformance_Classes_conformance_get",
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Conformance"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/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"
                                }
                            }
                        }
                    }
                }
            },
            "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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/search": {
            "post": {
                "summary": "Search",
                "description": "Endpoint.",
                "operationId": "Search_search_post",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SearchPostRequest"
                            }
                        }
                    }
                },
                "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"
                                }
                            }
                        }
                    }
                }
            },
            "get": {
                "summary": "Search",
                "description": "Endpoint.",
                "operationId": "Search_search_get",
                "parameters": [
                    {
                        "name": "collections",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "description": "Array of collection Ids to search for items.",
                            "example": "collection1,collection2",
                            "title": "Collections"
                        },
                        "description": "Array of collection Ids to search for items."
                    },
                    {
                        "name": "ids",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "description": "Array of Item ids to return.",
                            "example": "item1,item2",
                            "title": "Ids"
                        },
                        "description": "Array of Item ids to return."
                    },
                    {
                        "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": "intersects",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "anyOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "null"
                                }
                            ],
                            "description": "Only return items intersecting this GeoJSON Geometry. Mutually exclusive with **bbox**. \n\n*Remember to URL encode the GeoJSON geometry when using GET request*.",
                            "title": "Intersects"
                        },
                        "description": "Only return items intersecting this GeoJSON Geometry. Mutually exclusive with **bbox**. \n\n*Remember to URL encode the GeoJSON geometry when using GET request*.",
                        "examples": {
                            "madrid": {
                                "value": {
                                    "type": "Feature",
                                    "properties": {},
                                    "geometry": {
                                        "coordinates": [
                                            [
                                                [
                                                    -3.8549260500072933,
                                                    40.54923557897152
                                                ],
                                                [
                                                    -3.8549260500072933,
                                                    40.29428000041938
                                                ],
                                                [
                                                    -3.516597069715033,
                                                    40.29428000041938
                                                ],
                                                [
                                                    -3.516597069715033,
                                                    40.54923557897152
                                                ],
                                                [
                                                    -3.8549260500072933,
                                                    40.54923557897152
                                                ]
                                            ]
                                        ],
                                        "type": "Polygon"
                                    }
                                }
                            },
                            "new-york": {
                                "value": {
                                    "type": "Feature",
                                    "properties": {},
                                    "geometry": {
                                        "coordinates": [
                                            [
                                                [
                                                    -74.50117532354284,
                                                    41.128266394414055
                                                ],
                                                [
                                                    -74.50117532354284,
                                                    40.35633909727355
                                                ],
                                                [
                                                    -73.46713183168603,
                                                    40.35633909727355
                                                ],
                                                [
                                                    -73.46713183168603,
                                                    41.128266394414055
                                                ],
                                                [
                                                    -74.50117532354284,
                                                    41.128266394414055
                                                ]
                                            ]
                                        ],
                                        "type": "Polygon"
                                    }
                                }
                            }
                        }
                    },
                    {
                        "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.\n\nEither 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.\n\nEither 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 (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": "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.\n\nSupports `CQL-JSON` as defined in https://portal.ogc.org/files/96288\n\nRemember 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.\n\nSupports `CQL-JSON` as defined in https://portal.ogc.org/files/96288\n\nRemember 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"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/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.\n\nEither 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.\n\nEither 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"
                       

# --- truncated at 32 KB (195 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/esa/refs/heads/main/openapi/esa-copernicus-stac-openapi.json