---
title: "Update an existing feature by Id with a complete item definition"
method: PUT
path: "/collections/{collectionId}/items/{featureId}"
tags: ["Transaction"]
---

# Update an existing feature by Id with a complete item definition

`PUT /collections/{collectionId}/items/{featureId}`

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

## Headers

- `If-Match` string, required

## Request body

- Item — A GeoJSON Feature augmented with foreign members that contain values relevant to a STAC entity
  - `stac_version` string, required
  - `stac_extensions` union[]
    - union
      - string, uri
      - string
  - `id` string, required — Provider identifier, a unique ID.
  - `bbox` number[], required — 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`.
  - `geometry` union, required
    - PointGeoJSON
      - `type` 'Point', required
      - `coordinates` number[], required
    - MultipointGeoJSON
      - `type` 'MultiPoint', required
      - `coordinates` array[], required
        - number[]
    - LinestringGeoJSON
      - `type` 'LineString', required
      - `coordinates` array[], required
        - number[]
    - MultilinestringGeoJSON
      - `type` 'MultiLineString', required
      - `coordinates` array[], required
        - array[]
          - number[]
    - PolygonGeoJSON
      - `type` 'Polygon', required
      - `coordinates` array[], required
        - array[]
          - number[]
    - MultipolygonGeoJSON
      - `type` 'MultiPolygon', required
      - `coordinates` array[], required
        - array[]
          - array[]
            - number[]
    - GeometrycollectionGeoJSON
      - `type` 'GeometryCollection', required
      - `geometries` GeometryGeoJSON[], required
  - `type` 'Feature', required — The GeoJSON type
  - `links` Link[], required
    - `href` string, uri, required — The location of the resource
    - `rel` string, required — Relation type of the link
    - `type` string — The media type of the resource
    - `title` string — Title of the resource
    - `method` 'GET' | 'POST' — Specifies the HTTP method that the resource expects
    - `headers` object — Object key values pairs they map to headers
    - `body` object — For POST requests, the resource can specify the HTTP body as a JSON object.
    - `merge` boolean — This is only valid when the server is responding to POST 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. NOTE: To support form encoding it is expected that a client be able to merge in the key value pairs specified as JSON `{"next": "token"}` will become `&next=token`.
  - `properties` Properties, required — provides the core metadata fields plus extensions
    - `datetime` string, date-time, nullable, required — The searchable date and time of the assets, in UTC. It is formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). `null` is allowed, but requires `start_datetime` and `end_datetime` from common metadata to be set.
  - `assets` Assets, required

## Response `204`

The item was replaced

## Other responses

- `400` — The request was malformed or semantically invalid
- `404` — The requested URI was not found.
- `412` — Some condition specified by the request could not be met in the server
- `500` — A server error occurred.
- `default` — An error occurred.

---

[API](https://skmtc.net/radiantearth/apis/stac-api.md) · [All operations](https://skmtc.net/radiantearth/apis/stac-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/radiantearth/stac-api/versions/11248209cf8c/schema)
