---
title: "POST /properties"
method: POST
path: "/properties"
---

# POST /properties

`POST /properties`

Sends a list of asset property values to IoT SiteWise. Each value is a timestamp-quality-value (TQV) data point. For more information, see [Ingesting data using the API](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html) in the _IoT SiteWise User Guide_.

To identify an asset property, you must specify one of the following:

*   The `assetId` and `propertyId` of an asset property.
    
*   A `propertyAlias`, which is a data stream alias (for example, `/company/windfarm/3/turbine/7/temperature`). To define an asset property's alias, see [UpdateAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html).
    

With respect to Unix epoch time, IoT SiteWise accepts only TQVs that have a timestamp of no more than 7 days in the past and no more than 10 minutes in the future. IoT SiteWise rejects timestamps outside of the inclusive range of \[-7 days, +10 minutes\] and returns a `TimestampOutOfRangeException` error.

For each asset property, IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer TQV has a different quality. For example, if you store a TQV `{T1, GOOD, V1}`, then storing `{T1, GOOD, V2}` replaces the existing TQV.

IoT SiteWise authorizes access to each `BatchPutAssetPropertyValue` entry individually. For more information, see [BatchPutAssetPropertyValue authorization](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action) in the _IoT SiteWise User Guide_.

## Request body

- object
  - `entries` PutAssetPropertyValueEntry[], required — The list of asset property value entries for the batch put request. You can specify up to 10 entries per request.
    - `entryId` string, required — The user specified ID for the entry. You can use this ID to identify which entries failed.
    - `assetId` string — The ID of the asset to update.
    - `propertyId` string — The ID of the asset property for this entry.
    - `propertyAlias` string — The alias that identifies the property, such as an OPC-UA server data stream path (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html">Mapping industrial data streams to asset properties</a> in the <i>IoT SiteWise User Guide</i>.
    - `propertyValues` AssetPropertyValue[], required — The list of property values to upload. You can specify up to 10 <code>propertyValues</code> array elements.
      - `value` object, required — The value of the asset property (see <code>Variant</code>).
        - `stringValue` string — Asset property data of type string (sequence of characters).
        - `integerValue` integer — Asset property data of type integer (whole number).
        - `doubleValue` number, double — Asset property data of type double (floating point number).
        - `booleanValue` boolean — Asset property data of type Boolean (true or false).
      - `timestamp` object, required — The timestamp of the asset property value.
        - `timeInSeconds` integer, required — The timestamp date, in seconds, in the Unix epoch format. Fractional nanosecond data is provided by <code>offsetInNanos</code>.
        - `offsetInNanos` integer — The nanosecond offset from <code>timeInSeconds</code>.
      - `quality` 'GOOD' | 'BAD' | 'UNCERTAIN' — The quality of the asset property value.

## Response `200`

Success

- BatchPutAssetPropertyValueResponse
  - `errorEntries` BatchPutAssetPropertyErrorEntry[], required — A list of the errors (if any) associated with the batch put request. Each error entry contains the <code>entryId</code> of the entry that failed.
    - `entryId` string, required — The ID of the failed entry.
    - `errors` BatchPutAssetPropertyError[], required — The list of update property value errors.
      - `errorCode` 'ResourceNotFoundException' | 'InvalidRequestException' | 'InternalFailureException' | 'ServiceUnavailableException' | 'ThrottlingException' | 'LimitExceededException' | 'ConflictingOperationException' | 'TimestampOutOfRangeException' | 'AccessDeniedException', required — The error code.
      - `errorMessage` string, required — The associated error message.
      - `timestamps` TimeInNanos[], required — A list of timestamps for each error, if any.
        - `timeInSeconds` integer, required — The timestamp date, in seconds, in the Unix epoch format. Fractional nanosecond data is provided by <code>offsetInNanos</code>.
        - `offsetInNanos` integer — The nanosecond offset from <code>timeInSeconds</code>.

## Other responses

- `480` — InvalidRequestException
- `481` — ResourceNotFoundException
- `482` — InternalFailureException
- `483` — ThrottlingException
- `484` — LimitExceededException
- `485` — ServiceUnavailableException
- `486` — ConflictingOperationException

---

[API](https://skmtc.net/aws/apis/iotsitewise.md) · [All operations](https://skmtc.net/aws/apis/iotsitewise/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/iotsitewise/versions/d13e5d3e0a6f/schema)
