Download OpenAPI specification:Download
This is an OpenAPI definition of the core SpatioTemporal Asset Catalog API specification. Any service that implements this endpoint to allow search of spatiotemporal assets can be considered a STAC API. The endpoint is also available as an OpenAPI fragment that can be integrated with other OpenAPI definitions, and is designed to slot seamlessly into a WFS 3 API definition.
{- "title": "Buildings in Bonn",
- "description": "Access to data about buildings in the city of Bonn via a Web API that conforms to the OGC API Features specification.",
- "links": [
- {
- "rel": "self",
- "type": "application/json",
- "title": "this document"
}, - {
- "rel": "service-desc",
- "type": "application/vnd.oai.openapi+json;version=3.0",
- "title": "the API definition"
}, - {
- "rel": "service-doc",
- "type": "text/html",
- "title": "the API documentation"
}, - {
- "rel": "conformance",
- "type": "application/json",
- "title": "OGC API conformance classes implemented by this server"
}, - {
- "rel": "data",
- "type": "application/json",
- "title": "Information about the feature collections"
}
]
}
{- "id": "buildings",
- "title": "Buildings",
- "description": "Buildings in the city of Bonn.",
- "extent": {
- "spatial": {
- "bbox": [
- [
- 7.01,
- 50.63,
- 7.22,
- 50.78
]
]
}, - "temporal": {
- "interval": [
- [
- "2010-02-15T12:34:56Z",
- null
]
]
}
}, - "links": [
- {
- "rel": "items",
- "type": "application/geo+json",
- "title": "Buildings"
}, - {
- "rel": "items",
- "type": "text/html",
- "title": "Buildings"
}, - {
- "rel": "license",
- "type": "text/html",
- "title": "CC0-1.0"
}, - {
- "rel": "license",
- "type": "application/rdf+xml",
- "title": "CC0-1.0"
}
]
}
providerId required | string local identifier of a provider |
collections | Array of strings non-empty The collections search parameter is a list of of collection IDs for Items to match. Only items that are included in one of these collections will be returned, otherwise all collections will be searched. |
{- "links": [
- {
- "rel": "self",
- "type": "application/json",
- "title": "this document"
}, - {
- "rel": "alternate",
- "type": "text/html",
- "title": "this document as HTML"
}, - {
- "rel": "describedBy",
- "type": "application/xml",
- "title": "GML application schema for Acme Corporation building data"
}, - {
- "rel": "enclosure",
- "type": "application/geopackage+sqlite3",
- "title": "Bulk download (GeoPackage)",
- "length": 472546
}
], - "collections": [
- {
- "id": "buildings",
- "title": "Buildings",
- "description": "Buildings in the city of Bonn.",
- "extent": {
- "spatial": {
- "bbox": [
- [
- 7.01,
- 50.63,
- 7.22,
- 50.78
]
]
}, - "temporal": {
- "interval": [
- [
- "2010-02-15T12:34:56Z",
- null
]
]
}
}, - "links": [
- {
- "rel": "items",
- "type": "application/geo+json",
- "title": "Buildings"
}, - {
- "rel": "items",
- "type": "text/html",
- "title": "Buildings"
}, - {
- "rel": "license",
- "type": "text/html",
- "title": "CC0-1.0"
}, - {
- "rel": "license",
- "type": "application/rdf+xml",
- "title": "CC0-1.0"
}
]
}
]
}
providerId required | string local identifier of a provider |
collectionId required | string local identifier of a collection |
{- "id": "buildings",
- "title": "Buildings",
- "description": "Buildings in the city of Bonn.",
- "extent": {
- "spatial": {
- "bbox": [
- [
- 7.01,
- 50.63,
- 7.22,
- 50.78
]
]
}, - "temporal": {
- "interval": [
- [
- "2010-02-15T12:34:56Z",
- null
]
]
}
}, - "links": [
- {
- "rel": "items",
- "type": "application/geo+json",
- "title": "Buildings"
}, - {
- "rel": "items",
- "type": "text/html",
- "title": "Buildings"
}, - {
- "rel": "license",
- "type": "text/html",
- "title": "CC0-1.0"
}, - {
- "rel": "license",
- "type": "application/rdf+xml",
- "title": "CC0-1.0"
}
]
}
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.
Use content negotiation to request HTML or GeoJSON.
providerId required | string local identifier of a provider |
collectionId required | string local identifier of a collection |
limit | integer [ 1 .. 10000 ] Default: 10 The optional limit parameter limits the number of items that are presented 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. |
bbox | Array of numbers [ 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):
The coordinate reference system of the values is WGS 84 longitude/latitude
(http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate
reference system is specified in the parameter 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 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. |
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:
Only features that have a temporal property that intersects the value of
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. |
{- "type": "FeatureCollection",
- "links": [
- {
- "rel": "self",
- "type": "application/geo+json",
- "title": "this document"
}, - {
- "rel": "alternate",
- "type": "text/html",
- "title": "this document as HTML"
}, - {
- "rel": "next",
- "type": "application/geo+json",
- "title": "next page"
}
], - "timeStamp": "2018-04-03T14:52:23Z",
- "numberMatched": 123,
- "numberReturned": 2,
- "features": [
- {
- "type": "Feature",
- "id": "123",
- "geometry": {
- "type": "Polygon",
- "coordinates": [
- "..."
]
}, - "properties": {
- "function": "residential",
- "floors": "2",
- "lastUpdate": "2015-08-01T12:34:56Z"
}
}, - {
- "type": "Feature",
- "id": "132",
- "geometry": {
- "type": "Polygon",
- "coordinates": [
- "..."
]
}, - "properties": {
- "function": "public use",
- "floors": "10",
- "lastUpdate": "2013-12-03T10:15:37Z"
}
}
]
}
Fetch the feature with id featureId
in the feature collection
with id collectionId
.
Use content negotiation to request HTML or GeoJSON.
providerId required | string local identifier of a provider |
collectionId required | string local identifier of a collection |
featureId required | string local identifier of a feature |
{- "type": "Feature",
- "links": [
- {
- "rel": "canonical",
- "title": "canonical URI of the building"
}, - {
- "rel": "self",
- "type": "application/geo+json",
- "title": "this document"
}, - {
- "rel": "alternate",
- "type": "text/html",
- "title": "this document as HTML"
}, - {
- "rel": "collection",
- "type": "application/geo+json",
- "title": "the collection document"
}
], - "id": "123",
- "geometry": {
- "type": "Polygon",
- "coordinates": [
- "..."
]
}, - "properties": {
- "function": "residential",
- "floors": "2",
- "lastUpdate": "2015-08-01T12:34:56Z"
}
}
Retrieve Items matching filters. Intended as a shorthand API for simple queries.
This method is optional, but you MUST implement POST /stac/search
if you want to implement this method.
providerId required | string local identifier of a provider |
bbox | Array of numbers [ 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):
The coordinate reference system of the values is WGS 84 longitude/latitude
(http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate
reference system is specified in the parameter 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 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. |
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:
Only features that have a temporal property that intersects the value of
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 limits the number of items that are presented 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. |
page | integer >= 1 Default: 1 The optional page parameter returns the specified page of results (with each page having size=limit).
|
ids | Array of strings non-empty The optional ids parameter returns a FeatureCollection of all matching ids.
If provided all other parameters that further restrict the number of search results (except |
collections | Array of strings non-empty The collections search parameter is a list of of collection IDs for Items to match. Only items that are included in one of these collections will be returned, otherwise all collections will be searched. |
{- "type": "FeatureCollection",
- "features": [
- {
- "stac_version": "1.0.0",
- "type": "Feature",
- "id": "CS3-20160503_132130_04",
- "bbox": [
- -122.59750209,
- 37.48803556,
- -122.2880486,
- 37.613537207
], - "geometry": {
- "type": "Polygon",
- "coordinates": [
- [
- [
- -122.308150179,
- 37.488035566
], - [
- -122.597502109,
- 37.538869539
], - [
- -122.576687533,
- 37.613537207
], - [
- -122.2880486,
- 37.562818007
], - [
- -122.308150179,
- 37.488035566
]
]
]
}, - "properties": {
- "datetime": "2016-05-03T13:21:30.040Z"
}, - "links": [
- {
- "rel": "self",
}
], - "assets": {
- "analytic": {
- "title": "4-Band Analytic",
}, - "thumbnail": {
- "title": "Thumbnail",
- "type": "image/png"
}
}
}
], - "links": [
- {
- "rel": "next",
}
]
}
retrieve items matching filters. Intended as the standard, full-featured query API.
This method is mandatory to implement if GET /stac/search
is implemented. If this endpoint is implemented on a server, it is required to add a link with rel
set to search
to the links
array in GET /stac
that refers to this endpoint.
bbox | 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):
The coordinate reference system of the values is WGS84
longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless
a different coordinate reference system is specified in the parameter
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. |
datetime | string (datetime) 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:
Only features that have a temporal property that intersects the value of
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. |
GeoJSON Point (object) or GeoJSON LineString (object) or GeoJSON Polygon (object) or GeoJSON MultiPoint (object) or GeoJSON MultiLineString (object) or GeoJSON MultiPolygon (object) (GeoJSON Geometry) | |
limit | integer |
{- "bbox": [
- -110,
- 39.5,
- -105,
- 40.5
], - "datetime": "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z",
- "intersects": {
- "type": "Point",
- "coordinates": [
- 0,
- 0
], - "bbox": [
- 0,
- 0,
- 0,
- 0
]
}, - "limit": 10
}
{- "type": "FeatureCollection",
- "features": [
- {
- "stac_version": "1.0.0",
- "type": "Feature",
- "id": "CS3-20160503_132130_04",
- "bbox": [
- -122.59750209,
- 37.48803556,
- -122.2880486,
- 37.613537207
], - "geometry": {
- "type": "Polygon",
- "coordinates": [
- [
- [
- -122.308150179,
- 37.488035566
], - [
- -122.597502109,
- 37.538869539
], - [
- -122.576687533,
- 37.613537207
], - [
- -122.2880486,
- 37.562818007
], - [
- -122.308150179,
- 37.488035566
]
]
]
}, - "properties": {
- "datetime": "2016-05-03T13:21:30.040Z"
}, - "links": [
- {
- "rel": "self",
}
], - "assets": {
- "analytic": {
- "title": "4-Band Analytic",
}, - "thumbnail": {
- "title": "Thumbnail",
- "type": "image/png"
}
}
}
], - "links": [
- {
- "rel": "next",
}
]
}