POST /api/v202407/esaReading

Create new readings. Existing readings at the same time for a given channel will be overwritten.

CreateEsaReadingsV202407

Request Headers

Header Value Required Description
ECI-ApiKey string Yes Your API key. See Authentication.
Content-Type application/json Yes All requests must specify JSON content type, including the request body.

Request Body

Array of:

EsaReadingCreate
Property Description Type
dataPointImportId The import identifier for the data point on which to create the reading. See the EsaChannelId property for more information At least one of EsaChannelId, EsaChannelImportId, DataPointImportId must not be null string
esaChannelId

Channel Identification

The channel that receives the reading is determined by the following rules:

Direct pointers to a channel If the EsaChannelId is supplied, then import to that channel. If the EsaChannelId is not supplied look at the EsaChannelImportId property, which indicates a specific channel. Inferred pointers to a channel If the EsaChannelId and EsaChannelImportId are not supplied, look at the DataPointImportId property, which indicates a data point.If that data point has one channel, import to that channel. If that data point has more than one channel, find the channel with the same observation type as the ObservationTypeCode property.If only one is found, import to that channel. If more than one channel is found based on observation type, find the channel with the same output unit as the UnitCode property.If only one is found, import to that channel. If more than one channel is found based on unit, find the channel with the same EsaChannelIntervalMinutes property. If only one is found, import to that channel. Topmost (EsaChannel) At least one of EsaChannelId, EsaChannelImportId, DataPointImportId must not be null

integer (int32)
esaChannelImportId The import identifier for the channel on which to create the reading. See the EsaChannelId property for more information At least one of EsaChannelId, EsaChannelImportId, DataPointImportId must not be null string
esaChannelIntervalMinutes The interval in minutes for the channel on which to create the reading. See the EsaChannelId property for more information integer (int32)
observationTypeCode The observationType code of the reading. See the EsaChannelId property for more information string
readings List of readings Required EsaReadingValue[]
EsaReadingValue properties
Property Description Type
estimated Indicates if the reading is estimated. If omitted, this is presumed to be false. boolean
note A note pertaining to the reading Max length of 255 string
timestamp

The date and time of the reading. If the ‘seconds’ portion of the timestamp is greater than 0 the reading is rounded up to the next minute.

If UseDataPointTimeZone is true any time zone information on the reading is ignored and the reading is saved in the data point’s time zone.

If UseDataPointTimeZone is false and a time zone is not present in the timestamp, the reading is saved in UTC.

Else, the reading is saved in the time zone provided.

Note that the time zone of existing readings are not updated. Delete and recreate a reading if you wish to change its ‘raw’ time zone. In-app reporting will display the reading adjusted to the data point’s time zone from the original time zone it was saved in. Required

string (date-time)
useDataPointTimeZone

If true, any time zone information on the timestamp property is ignored and the reading is saved in the data point’s time zone.

For example, if the timestamp provided is “2024-01-01 05:00:00 -04:00” and the data point’s time zone offset is -07:00, the reading will be saved as “2024-01-01 05:00:00 -07:00”.

If omitted, this property is presumed to be false, meaning the offset in the timestamp property is honored.

boolean
value The reading’s value Required Max scale of 15, max precision of 30 Must be between -9999999999999 and 9999999999999 number (double)
unitCode The unit code of the reading. See the EsaChannelId property for more information string
Example Request Body application/json
[
  {    "dataPointImportId": "string",    "esaChannelId": 1,    "esaChannelImportId": "string",    "esaChannelIntervalMinutes": 1,    "observationTypeCode": "string",    "readings": [
      {      "estimated": false,      "note": "string",      "timestamp": "2026-03-30",      "useDataPointTimeZone": false,      "value": 1.0
    }
    ],    "unitCode": "string"
  }
]

Responses

200 OK The request succeeded and the response body contains the requested data.

Response Body Parameters

EsaReadingCreateResponse
Property Description Type
failedReadings Data representing the failed readings EsaReadingCreateError[]
EsaReadingCreateError properties
Property Description Type
dataPointImportId The data point import id string
error The error message string
esaChannelId The ESA channel id integer (int32)
esaChannelImportId The ESA channel import id string
esaChannelIntervalMinutes The esa channel interval integer (int32)
observationTypeCode The observation type of the esa channel string
readings List of readings EsaReadingValueError[]
EsaReadingValueError properties
Property Description Type
error The error message string
estimated Indicates if the reading is estimated boolean
note A note pertaining to the reading string
timestamp The date and time of the reading string (date-time)
useDataPointTimeZone Indicates if the reading used the data point’s time zone boolean
value The reading’s value number (double)
unitCode The unit code of the esa channel string
failedReadingsCount The number of failed readings integer (int32)
importedReadingsCount The number of successfully imported readings integer (int32)
Example Response application/json
{  "failedReadings": [
    {    "dataPointImportId": "string",    "error": "string",    "esaChannelId": 1,    "esaChannelImportId": "string",    "esaChannelIntervalMinutes": 1,    "observationTypeCode": "string",    "readings": [
      {      "error": "string",      "estimated": false,      "note": "string",      "timestamp": "2026-03-30",      "useDataPointTimeZone": false,      "value": 1.0
    }
    ],    "unitCode": "string"
  }
  ],  "failedReadingsCount": 1,  "importedReadingsCount": 1
}