Insert data points

Insert data points into a time series. You can do this for multiple time series. If you insert a data point with a timestamp that already exists, it will be overwritten with the new value.

Securityoidc-token or oauth2-client-credentials or oauth2-open-industrial-data or oauth2-auth-code
Request
Request Body schema:
required

The datapoints to insert.

required
Array of DatapointsWithInternalId (object) or DatapointsWithExternalId (object) or DatapointsWithInstanceId (object) (DatapointsPostDatapoint) [ 1 .. 10000 ] items
Responses
200

Empty response.

400

IDs not found.

422

Duplicate IDs found. Retry request, keeping only one instance of each duplicated ID.

post/timeseries/data
Request samples
from cognite.client.data_classes.data_modeling import NodeId
from cognite.client.data_classes import StatusCode
from datetime import datetime, timezone
to_insert = [
    {"id": 1, "datapoints": [
        (datetime(2018,1,1, tzinfo=timezone.utc), 1000),
        (datetime(2018,1,2, tzinfo=timezone.utc), 2000, StatusCode.Good)],
    },
    {"external_id": "foo", "datapoints": [
        (datetime(2018,1,3, tzinfo=timezone.utc), 3000),
        (datetime(2018,1,4, tzinfo=timezone.utc), 4000, StatusCode.Uncertain)],
    },
    {"instance_id": NodeId("my-space", "my-ts-xid"), "datapoints": [
        (datetime(2018,1,5, tzinfo=timezone.utc), 5000),
        (datetime(2018,1,6, tzinfo=timezone.utc), None, StatusCode.Bad)],
    }
]

import math
to_insert.append(
    {"external_id": "bar", "datapoints": [
        {"timestamp": 170000000, "value": 7000},
        {"timestamp": 180000000, "value": 8000, "status": {"symbol": "Uncertain"}},
        {"timestamp": 190000000, "value": None, "status": {"code": StatusCode.Bad}},
        {"timestamp": 200000000, "value": math.inf, "status": {"code": StatusCode.Bad, "symbol": "Bad"}},
]})

data_to_clone = client.time_series.data.retrieve(
    external_id="bar", include_status=True, ignore_bad_datapoints=False)
to_insert.append({"external_id": "bar-clone", "datapoints": data_to_clone})
client.time_series.data.insert_multiple(to_insert)
Response samples
application/json
{ }