---
title: "Search STAC items with full-featured filtering."
method: POST
path: "/search"
tags: ["STAC"]
---

# Search STAC items with full-featured filtering.

`POST /search`

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

## Request body

- SearchBody — The search criteria
  - `query` Query — Define which properties to query and the operations to apply
  - `bbox` number[] — Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four numbers: * Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 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). Example: The bounding box of Switzerland in WGS 84 (from 5.96°E to 10.49°E and from 45.82°N to 47.81°N) would be represented in JSON as `[5.96, 45.82, 10.49, 47.81]` and in a query as `bbox=5.96,45.82,10.49,47.81`."
  - `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. When used as URL query argument, the value must be correctly url-encoded.
  - `intersects` union
    - GeoJsonPoint
      - `type` 'Point', required
      - `coordinates` number[], required — For type "Point", the "coordinates" member is a single position. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
    - GeoJsonLineString
      - `type` 'LineString', required
      - `coordinates` array[], required — For type "LineString", the "coordinates" member is an array of two or more positions. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
        - number[]
    - GeoJsonPolygon
      - `type` 'Polygon', required
      - `coordinates` array[], required — For type "Polygon", the "coordinates" member MUST be an array of linear ring coordinate arrays. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
        - array[]
          - number[]
    - GeoJsonMultiPoint
      - `type` 'MultiPoint', required
      - `coordinates` array[], required — For type "MultiPoint", the "coordinates" member is an array of positions. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
        - number[]
    - GeoJsonMultiLineString
      - `type` 'MultiLineString', required
      - `coordinates` array[], required — For type "MultiLineString", the "coordinates" member is an array of LineString coordinate arrays. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
        - array[]
          - number[]
    - GeoJsonMultiPolygon
      - `type` 'MultiPolygon', required
      - `coordinates` array[], required — For type "MultiPolygon", the "coordinates" member is an array of Polygon coordinate arrays. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
        - array[]
          - array[]
            - number[]
  - `collections` string[] — Array of Collection IDs to include in the search for items. Only Items in one of the provided Collections will be searched.
  - `ids` string[] — Array of Item ids to return. All other filter parameters that further restrict the number of search results are ignored
  - `limit` integer — The `limit` parameter limits the number of results that are included in the response. To retrieve the next bunch of result, use the `next` link in the `links` section of the response. Minimum = 1. Maximum = 100. Default = 100.
  - `forecast:reference_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. When used as URL query argument, the value must be correctly url-encoded.
  - `forecast:horizon` string — ISO 8601 compliant duration
  - `forecast:duration` string — ISO 8601 compliant duration
  - `forecast:variable` string, nullable — Name of the model variable that corresponds to the data. The variables should correspond to the [CF Standard Names](https://cfconventions.org/Data/cf-standard-names/current/build/cf-standard-name-table.html), e.g. `air_temperature` for the air temperature.
  - `forecast:perturbed` boolean, nullable — Denotes whether the data corresponds to the control run (`false`) or perturbed runs (`true`). The property needs to be specified in both cases as no default value is specified and as such the meaning is "unknown" in case it's missing.

## Response `200`

A feature collection.

- ItemsSearchPost — A GeoJSON FeatureCollection augmented with foreign members that contain values relevant to a STAC entity
  - `features` Item[], required
    - `id` string, required — Feature identifier (unique per collection)
    - `links` Link[], required
      - `href` string, url, required
      - `rel` string, required — Relationship between the current document and the linked document. NOTE: the following relations are reserved and automatically generated: `self`, `root`, `parent`, `items`, `collection`, `next`, `previous`
      - `title` string
      - `type` string — The media type of the link target
      - `method` 'GET' | 'POST' — Specifies the HTTP method that the link expects
      - `hreflang` string — The language of the link target
    - `assets` ItemAssets, required — List of Assets attached to this feature.
    - `bbox` number[], required — The bounding box is provided as four numbers: * Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 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). Example: The bounding box of Switzerland in WGS 84 (from 5.96°E to 10.49°E and from 45.82°N to 47.81°N) would be represented in JSON as `[5.96, 45.82, 10.49, 47.81]` and in a query as `bbox=5.96,45.82,10.49,47.81`."
    - `geometry` union, required
      - GeoJsonPoint
        - `type` 'Point', required
        - `coordinates` number[], required — For type "Point", the "coordinates" member is a single position. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
      - GeoJsonLineString
        - `type` 'LineString', required
        - `coordinates` array[], required — For type "LineString", the "coordinates" member is an array of two or more positions. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
          - number[]
      - GeoJsonPolygon
        - `type` 'Polygon', required
        - `coordinates` array[], required — For type "Polygon", the "coordinates" member MUST be an array of linear ring coordinate arrays. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
          - array[]
            - number[]
      - GeoJsonMultiPoint
        - `type` 'MultiPoint', required
        - `coordinates` array[], required — For type "MultiPoint", the "coordinates" member is an array of positions. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
          - number[]
      - GeoJsonMultiLineString
        - `type` 'MultiLineString', required
        - `coordinates` array[], required — For type "MultiLineString", the "coordinates" member is an array of LineString coordinate arrays. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
          - array[]
            - number[]
      - GeoJsonMultiPolygon
        - `type` 'MultiPolygon', required
        - `coordinates` array[], required — For type "MultiPolygon", the "coordinates" member is an array of Polygon coordinate arrays. The coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84).
          - array[]
            - array[]
              - …
    - `properties` ItemProperties, required — Provides the core metadata fields plus extensions The item's data timing information can be specified either with * One datetime value in the field `datetime` * A datetime range with a `start_datetime` and an `end_datetime` One of the two is required. **Note on STAC extensions:** When a STAC extension is listed in the `stac_extensions` field, certain properties may be required. For example, when using the [Forecast extension](`https://github.com/stac-extensions/forecast`), the `forecast:reference_datetime` property is required.
      - `created` string, date-time, required — RFC 3339 compliant datetime string, time when the object was created
      - `datetime` string, date-time — RFC 3339 compliant datetime string
      - `start_datetime` string, date-time — RFC 3339 compliant datetime string
      - `end_datetime` string, date-time — RFC 3339 compliant datetime string
      - `expires` string, date-time — RFC 3339 compliant datetime string
      - `updated` string, date-time, required — RFC 3339 compliant datetime string, time when the object was updated
      - `title` string — Human readable title of the Feature
      - `forecast:reference_datetime` string, date-time — RFC 3339 compliant datetime string
      - `forecast:horizon` string — ISO 8601 compliant duration
      - `forecast:duration` string — ISO 8601 compliant duration
      - `forecast:variable` string, nullable — Name of the model variable that corresponds to the data. The variables should correspond to the [CF Standard Names](https://cfconventions.org/Data/cf-standard-names/current/build/cf-standard-name-table.html), e.g. `air_temperature` for the air temperature.
      - `forecast:perturbed` boolean, nullable — Denotes whether the data corresponds to the control run (`false`) or perturbed runs (`true`). The property needs to be specified in both cases as no default value is specified and as such the meaning is "unknown" in case it's missing.
    - `stac_version` string, required
    - `stac_extensions` string[] — List of STAC extensions used by this feature. Properties that are not part of the default feature properties (`datetime`, `start_datetime`, `end_datetime`, `title`, `created`, `updated`) must be covered by one of the extensions listed here, otherwise the request is rejected. Additionally, when an extension is listed here, certain properties required by that extension must be present in the `properties` field. For example, when using the Forecast extension, the `forecast:reference_datetime` property is required.
    - `type` 'Feature', required — The GeoJSON type
  - `type` 'FeatureCollection', required
  - `links` LinkPostSearch[] — An array of links. Can be used for pagination, e.g. by providing a link with the `next` relation type.
    - `href` string, url, required
    - `rel` string, required — Relationship between the current document and the linked document. NOTE: the following relations are reserved and automatically generated: `self`, `root`, `parent`, `items`, `collection`, `next`, `previous`
    - `title` string
    - `type` string — The media type of the link target
    - `method` 'GET' | 'POST' — Specifies the HTTP method that the link expects
    - `hreflang` string — The language of the link target
    - `body` object — For `POST /search` requests, the link can specify the HTTP body as a JSON object.
    - `merge` boolean — This is only valid when the server is responding to `POST /search `request. If merge is true, the client is expected to merge the body value into the current request body before following the link. This avoids passing large post bodies back and forth when following links, particularly for navigating pages through the `POST /search` endpoint.

## Other responses

- `500` — The request was syntactically and semantically valid, but an error occurred while trying to act upon it

---

[API](https://skmtc.net/geoadmin/apis/the-spatiotemporal-asset-catalog-api-for-data-geo-admin-ch.md) · [All operations](https://skmtc.net/geoadmin/apis/the-spatiotemporal-asset-catalog-api-for-data-geo-admin-ch/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/geoadmin/the-spatiotemporal-asset-catalog-api-for-data-geo-admin-ch/versions/015864bb4d77/schema)
