Skip to main content
CredentialsBefore using this method, retrieve your API key and the appropriate Sift URL for your environment. See Authentication.
Schemaless ingestion lets you send a JSON payload to the /api/v2/ingest endpoint without pre-registering an ingestion config. Sift creates the asset and channels automatically if they do not already exist.

Example request

curl -H "Authorization: Bearer $API_KEY" \
    -H "Content-Type: application/json" \
    -X POST "$SIFT_REST_URL/api/v2/ingest" \
    --data-raw '{
      "asset_name": "test_asset_post_data_0001",
      "data": [
        {
          "timestamp": "2024-11-06T10:27:20-07:00",
          "values": [
            {
              "channel": "numeric_channel",
              "value": 29.18
            },
            {
              "channel": "boolean_channel",
              "value": true
            },
            {
              "channel": "string_channel",
              "value": "Example Schemaless String"
            }
          ]
        }
      ]
    }'

Request fields

asset_name
The name of the asset. If the asset does not exist, it will be created. Required.
run_id
The run_id returned from a previous CreateRun call. Optional.
organization_id
The organization ID of the organization that owns the asset. Only required if you are a member of multiple organizations. Optional otherwise.
data
The array of data objects to ingest.
data[].timestamp
The timestamp used for every value in the sibling values array. Must be in RFC3339 format. Required.
data[].values
The array of channel values. Every value is assigned the timestamp from the sibling timestamp field.
data[].values[].channel
The name of the channel. Required.
data[].values[].value
The channel value. Supported types are string, boolean, and number. Required.