Previous | Table of contents | Next


5. Collection Catalog Best Practices#

5.1 Overview#

STAC implementations may provide the corresponding collection metadata information as a static collection catalog (landing page with a hierarchy of collections referenced with rel=”child”), as a flat list of collections (rel=”data”) or via a collection catalog with collection search interface. The current chapter presents the requirements and recommendations that apply to STAC collection catalogs in addition to the general catalog requirements presented in Catalog Best Practices.

5.2 Collection catalog without search interface#

EO collections represented as STAC collections can be made available as a STAC Catalog in different ways as depicted below:

  • Through a hierarchy of catalogs or collections with the rel=”child” relation.

  • As a list of collections available via the rel=”data” relation.

Hierarchy of catalogs and collections

Method 1: Using rel=”child”

List of collectio

Method 2: Using rel=”data”

Implementations may combine both mechanisms and allow the same EO collection to be found via the collection hierarchy or the collection list. Implementations intending to support collection search are to support at least Method 2 and the corresponding endpoint.

CEOS-STAC-REQ-5210 - Collection access [Requirement]

A CEOS STAC catalog shall support access to collection metadata from the catalog landing page using the rel=”child” or rel=”data” approach depicted above or both approaches combined.

Note: When publishing a single collection, the collection and the landing page may be combined in a single JSON file.

5.3 Collection catalog with search interface#

CEOS-STAC-CREQ-5320 - Collections endpoint [Conditional]

A CEOS STAC catalog supporting collection search shall advertise the search endpoint for collections in the landing page with rel=”data” (most often /collections), type=”application/json” and declare the corresponding collection search conformance classes in the landing page. See “STAC API Collection Search” [AD07].

The above endpoint is further referred to as the collections endpoint.

Conformance encoding example

"conformsTo": [

    "http://www.opengis.net/spec/ogcapi_common-2/1.0/conf/collections",
    "http://www.opengis.net/spec/ogcapi-common-2/1.0/conf/simple-query",
    "http://www.opengis.net/spec/ogcapi-records-1/1.0/req/cql-filter",
    "https://api.stacspec.org/v1.0.0-rc.2/collection-search",
    "https://api.stacspec.org/v1.0.0-rc.2/collection-search#filter",
    "https://api.stacspec.org/v1.0.0-rc.1/collection-search#free-text",
    "http://www.opengis.net/spec/cql2/1.0/conf/cql2-text",
    "http://www.opengis.net/spec/cql2/1.0/conf/basic-cql2"
  ]

5.3.1 Collection search request#

CEOS-STAC-REQ-5330 - Collection search method [Requirement]

A CEOS STAC collection catalog shall support collection searches at the collections endpoint (rel=”data”) using the HTTP GET method.

/collections is typically used for the above endpoint, but this is not required.

CEOS-STAC-REC-5335 - Collection search endpoint [Recommendation]

A CEOS STAC collection catalog should make its collections endpoint (rel=”data”) available at ‘/collections’.

Search parameters#

CEOS-STAC-REQ-5340 - Supported search parameters [Requirement]

The STAC-API and OGC API-Features specifications define a list of fundamental search parameters. From these specifications, a CEOS STAC collection catalog shall support the following minimum set of search parameters for “collection” search at the collections endpoint:

  • limit

  • bbox

  • datetime

CEOS-STAC-REQ-5360 - Free text search [Requirement]

For supporting free text searches, a CEOS STAC collection catalog shall advertise support for the HTTP query parameter q as in “STAC API Collection Search” [AD07].

CEOS-STAC-CREQ-5370 - Collection queryables [Conditional]

A CEOS STAC collection catalog supporting additional queryables for collection search shall return the link to the Queryables object with the list of queryables that can be used in a filter expression via a link object in the collection search response with rel=”http://www.opengis.net/def/rel/ogc/1.0/queryables” and type=”application/schema+json” (See also “STAC API Collection Search” [AD07].

5.3.2 Collection search response#

CEOS-STAC-REQ-5372 - Collection search response representation [Requirement]

A collection search response shall be represented as a JSON object according to the “STAC API - Collection Search” [AD07].

CEOS-STAC-REQ-5373 - Allow for collection search-by-id [Requirement]

The $.collections[].id property in a collection search response shall allow to navigate to a single collection using the id as a path parameter appended to the collection search endpoint (rel=’data’) e.g. /collections/{id}.

Search-by-id makes the following use cases possible:

  • The ability to provide a link pointing to a single catalog item (using a URL) on a web page that illustrates a particular event (e.g. an earthquake in the Himalayas).

  • The ability to bookmark and retrieve a single item.

CEOS-STAC-REQ-5374 - Collection search response representation [Requirement]

Collections included in a collection search response shall be represented according to the “CEOS STAC Collection Metadata Best Practices”.