STAC API (1.0.0)

Download OpenAPI specification:Download

This is an OpenAPI definition of the SpatioTemporal Asset Catalog API specification.

Search STAC items with simple filtering.

Retrieve Items matching filters. Intended as a shorthand API for simple queries.

This method is required to implement.

If this endpoint is implemented on a server, it is required to add a link referring to this endpoint with rel set to search to the links array in GET /. As GET is the default method, the method may not be set explicitly in the link.

query Parameters
Array of numbers or Array of numbers

Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth):

  • Lower left corner, coordinate axis 1
  • Lower left corner, coordinate axis 2
  • Minimum value, coordinate axis 3 (optional)
  • Upper right corner, coordinate axis 1
  • Upper right corner, coordinate axis 2
  • Maximum value, coordinate axis 3 (optional)

The coordinate reference system of the values is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

For WGS 84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).

If the vertical axis is included, the third and the sixth number are the bottom and the top of the 3-dimensional bounding box.

If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.

Example: The bounding box of the New Zealand Exclusive Economic Zone in WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be represented in JSON as [160.6, -55.95, -170, -25.89] and in a query as bbox=160.6,-55.95,-170,-25.89.

pointGeoJSON (object) or multipointGeoJSON (object) or linestringGeoJSON (object) or multilinestringGeoJSON (object) or polygonGeoJSON (object) or multipolygonGeoJSON (object) or geometrycollectionGeoJSON (object) (geometryGeoJSON)

The optional intersects parameter filters the result Items in the same was as bbox, only with a GeoJSON Geometry rather than a bbox.

datetime
string

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:

  • A date-time: "2018-02-12T23:20:50Z"
  • A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"
  • Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z"

Only features that have a temporal property that intersects the value of datetime are selected.

If a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties.

limit
integer [ 1 .. 10000 ]
Default: 10

The optional limit parameter recommends the number of items that should be present in the response document.

Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted.

Minimum = 1. Maximum = 10000. Default = 10.

ids
Array of strings (ids)

Array of Item ids to return.

collections
Array of strings (collectionsArray)

Array of Collection IDs to include in the search for items. Only Item objects in one of the provided collections will be searched

fields
string
Example: fields=id,type,-geometry,bbox,properties,-links,-assets

Extension: Fields

Determines the shape of the features in the response

sortby
string
Example: sortby=+id,-properties.eo:cloud_cover

Extension: Sort

An array of property names, prefixed by either "+" for ascending or "-" for descending. If no prefix is provided, "+" is assumed.

Responses

Response samples

Content type
{}

Search STAC items with full-featured filtering.

Retrieve items matching filters. Intended as the standard, full-featured query API.

This method is optional to implement, but recommended.

If this endpoint is implemented on a server, it is required to add a link referring to this endpoint with rel set to search and method set to POST to the links array in GET /.

Request Body schema: application/json
bbox
Array of numbers (schemas-bbox) [ 4 .. 6 ] items

Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (elevation or depth):

  • Lower left corner, coordinate axis 1
  • Lower left corner, coordinate axis 2
  • Lower left corner, coordinate axis 3 (optional)
  • Upper right corner, coordinate axis 1
  • Upper right corner, coordinate axis 2
  • Upper right corner, coordinate axis 3 (optional)

The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

For WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).

If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.

Example: The bounding box of the New Zealand Exclusive Economic Zone in WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be represented in JSON as [160.6, -55.95, -170, -25.89] and in a query as bbox=160.6,-55.95,-170,-25.89.

datetime
string (datetime_interval)

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:

  • A date-time: "2018-02-12T23:20:50Z"
  • A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"
  • Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z"

Only features that have a temporal property that intersects the value of datetime are selected.

If a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties.

pointGeoJSON (object) or multipointGeoJSON (object) or linestringGeoJSON (object) or multilinestringGeoJSON (object) or polygonGeoJSON (object) or multipolygonGeoJSON (object) or geometrycollectionGeoJSON (object) (geometryGeoJSON)
collections
Array of strings (collectionsArray)

Array of Collection IDs to include in the search for items. Only Item objects in one of the provided collections will be searched.

ids
Array of strings (ids)

Array of Item ids to return.

limit
integer (limit) [ 1 .. 10000 ]
Default: 10

The optional limit parameter limits the number of items that are presented in the response document.

If the limit parameter value is greater than advertised limit maximum, the server shall return the maximum possible number of items, rather than responding with an error.

Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted.

Minimum = 1. Maximum = 10000. Default = 10.

object (fields)

The include and exclude members specify an array of property names that are either included or excluded from the result, respectively. If both include and exclude are specified, include takes precedence. Values should include the full JSON path of the property.

Array of objects (sortby) non-empty

An array of objects containing a property name and sort direction.

Responses

Request samples

Content type
application/json
{
  • "bbox": [
    ],
  • "datetime": "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z",
  • "intersects": {
    },
  • "collections": [
    ],
  • "ids": [
    ],
  • "limit": 10,
  • "fields": {
    },
  • "sortby": [
    ]
}

Response samples

Content type
{}

Features

Retrieve Item and Collection resources

landing page

The landing page provides links to the sub-resources.

Responses

Response samples

Content type
application/json
{}

the feature collections in the dataset

A body of Feature Collections that belong or are used together with additional links. Request may not return the full set of metadata per Feature Collection.

Responses

Response samples

Content type
application/json
{
  • "links": [
    ],
  • "collections": [
    ]
}

describe the feature collection with id `collectionId`

A single Feature Collection for the given if collectionId. Request this endpoint to get a full list of metadata for the Feature Collection.

path Parameters
collectionId
required
string

local identifier of a collection

Responses

Response samples

Content type
application/json
{
  • "stac_version": "1.0.0",
  • "stac_extensions": [ ],
  • "type": "Collection",
  • "id": "Sentinel-2",
  • "title": "Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
  • "description": "Sentinel-2 is a wide-swath, high-resolution, multi-spectral\nimaging mission...\n",
  • "license": "proprietary",
  • "keywords": [
    ],
  • "providers": [],
  • "extent": {
    },
  • "summaries": {
    },
  • "links": []
}

information about specifications that this API conforms to

A list of all conformance classes specified in a standard that the server conforms to.

Responses

fetch features

Fetch features of the feature collection with id collectionId.

Every feature in a dataset belongs to a collection. A dataset may consist of multiple feature collections. A feature collection is often a collection of features of a similar type, based on a common schema.

path Parameters
collectionId
required
string

local identifier of a collection

query Parameters
limit
integer [ 1 .. 10000 ]
Default: 10

The optional limit parameter recommends the number of items that should be present in the response document.

Only items are counted that are on the first level of the collection in the response document. Nested objects contained within the explicitly requested items shall not be counted.

Minimum = 1. Maximum = 10000. Default = 10.

Array of numbers or Array of numbers

Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (height or depth):

  • Lower left corner, coordinate axis 1
  • Lower left corner, coordinate axis 2
  • Minimum value, coordinate axis 3 (optional)
  • Upper right corner, coordinate axis 1
  • Upper right corner, coordinate axis 2
  • Maximum value, coordinate axis 3 (optional)

The coordinate reference system of the values is WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

For WGS 84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).

If the vertical axis is included, the third and the sixth number are the bottom and the top of the 3-dimensional bounding box.

If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.

Example: The bounding box of the New Zealand Exclusive Economic Zone in WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be represented in JSON as [160.6, -55.95, -170, -25.89] and in a query as bbox=160.6,-55.95,-170,-25.89.

datetime
string

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:

  • A date-time: "2018-02-12T23:20:50Z"
  • A closed interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"
  • Open intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z"

Only features that have a temporal property that intersects the value of datetime are selected.

If a feature has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties.

Responses

Response samples

Content type
application/geo+json
{}

Transaction

Execute transactions on Items

add a new STAC Item to a collection

create a new STAC Item in a specific collection

path Parameters
collectionId
required
string

local identifier of a collection

Request Body schema: application/json
One of
stac_version
required
string (STAC version)
Array of Reference to a JSON Schema (string) or Reference to a core extension (string) (STAC extensions) unique
id
required
string (itemId)

Provider identifier, a unique ID.

bbox
required
Array of numbers (schemas-bbox) [ 4 .. 6 ] items

Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (elevation or depth):

  • Lower left corner, coordinate axis 1
  • Lower left corner, coordinate axis 2
  • Lower left corner, coordinate axis 3 (optional)
  • Upper right corner, coordinate axis 1
  • Upper right corner, coordinate axis 2
  • Upper right corner, coordinate axis 3 (optional)

The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

For WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).

If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.

Example: The bounding box of the New Zealand Exclusive Economic Zone in WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be represented in JSON as [160.6, -55.95, -170, -25.89] and in a query as bbox=160.6,-55.95,-170,-25.89.

required
pointGeoJSON (object) or multipointGeoJSON (object) or linestringGeoJSON (object) or multilinestringGeoJSON (object) or polygonGeoJSON (object) or multipolygonGeoJSON (object) or geometrycollectionGeoJSON (object) (geometryGeoJSON)
type
required
string (itemType)
Value: "Feature"

The GeoJSON type

required
Array of objects (links)
required
object (properties)

provides the core metadata fields plus extensions

required
object (assets)

Responses

Request samples

Content type
application/json
Example
{}

Response samples

Content type
application/json
{}

fetch a single feature

Fetch the feature with id featureId in the feature collection with id collectionId.

path Parameters
collectionId
required
string

local identifier of a collection

featureId
required
string

local identifier of a feature

Responses

Response samples

Content type
application/geo+json
{}

update an existing feature by Id with a complete item definition

Use this method to update an existing feature. Requires the entire GeoJSON description be submitted.

path Parameters
collectionId
required
string

local identifier of a collection

featureId
required
string

local identifier of a feature

header Parameters
If-Match
required
string

Only take the action if the ETag of the item still matches

Request Body schema: application/json

The request body shall contain a representation of the replacement item.

stac_version
required
string (STAC version)
Array of Reference to a JSON Schema (string) or Reference to a core extension (string) (STAC extensions) unique
id
required
string (itemId)

Provider identifier, a unique ID.

bbox
required
Array of numbers (schemas-bbox) [ 4 .. 6 ] items

Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (elevation or depth):

  • Lower left corner, coordinate axis 1
  • Lower left corner, coordinate axis 2
  • Lower left corner, coordinate axis 3 (optional)
  • Upper right corner, coordinate axis 1
  • Upper right corner, coordinate axis 2
  • Upper right corner, coordinate axis 3 (optional)

The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

For WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).

If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.

Example: The bounding box of the New Zealand Exclusive Economic Zone in WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be represented in JSON as [160.6, -55.95, -170, -25.89] and in a query as bbox=160.6,-55.95,-170,-25.89.

required
pointGeoJSON (object) or multipointGeoJSON (object) or linestringGeoJSON (object) or multilinestringGeoJSON (object) or polygonGeoJSON (object) or multipolygonGeoJSON (object) or geometrycollectionGeoJSON (object) (geometryGeoJSON)
type
required
string (itemType)
Value: "Feature"

The GeoJSON type

required
Array of objects (links)
required
object (properties)

provides the core metadata fields plus extensions

required
object (assets)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "string",
  • "description": "string"
}

update an existing feature by Id with a partial item definition

Use this method to update an existing feature. Requires a GeoJSON fragment (containing the fields to be updated) be submitted.

path Parameters
collectionId
required
string

local identifier of a collection

featureId
required
string

local identifier of a feature

header Parameters
If-Match
string

Only take the action if the ETag of the item still matches

Request Body schema: application/json
stac_version
string (STAC version)
Array of Reference to a JSON Schema (string) or Reference to a core extension (string) (STAC extensions) unique
id
string (itemId)

Provider identifier, a unique ID.

Array of numbers or Array of numbers (bbox) [ 4 .. 6 ] items

Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (elevation or depth):

  • Lower left corner, coordinate axis 1
  • Lower left corner, coordinate axis 2
  • Lower left corner, coordinate axis 3 (optional)
  • Upper right corner, coordinate axis 1
  • Upper right corner, coordinate axis 2
  • Upper right corner, coordinate axis 3 (optional)

The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).

For WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).

If a feature has multiple spatial geometry properties, it is the decision of the server whether only a single spatial geometry property is used to determine the extent or all relevant geometries.

Example: The bounding box of the New Zealand Exclusive Economic Zone in WGS 84 (from 160.6°E to 170°W and from 55.95°S to 25.89°S) would be represented in JSON as [160.6, -55.95, -170, -25.89] and in a query as bbox=160.6,-55.95,-170,-25.89.

pointGeoJSON (object) or multipointGeoJSON (object) or linestringGeoJSON (object) or multilinestringGeoJSON (object) or polygonGeoJSON (object) or multipolygonGeoJSON (object) or geometrycollectionGeoJSON (object) (geometryGeoJSON)
type
string (itemType)
Value: "Feature"

The GeoJSON type

object (partialItemProperties)

allows for partial collections of metadata fields

Array of objects (Link)
object (assets)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "code": "string",
  • "description": "string"
}

delete an existing feature by Id

Use this method to delete an existing feature.

path Parameters
collectionId
required
string

local identifier of a collection

featureId
required
string

local identifier of a feature

header Parameters
If-Match
required
string

Only take the action if the ETag of the item still matches

Responses

Response samples

Content type
application/json
{
  • "code": "string",
  • "description": "string"
}