---
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.

## 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
    - `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` ItemGeometry, required
      - `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[]
    - `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
      - `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
      - `updated` string, date-time, required — RFC 3339 compliant datetime string, time when the object was updated
      - `title` string, nullable — Human readable title of the Feature
    - `stac_version` string, 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
    - `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-3.md) · [All operations](https://skmtc.net/geoadmin/apis/the-spatiotemporal-asset-catalog-api-for-data-geo-admin-ch-3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/geoadmin/the-spatiotemporal-asset-catalog-api-for-data-geo-admin-ch-3/versions/5598f1965b60/schema)
