Creates a new ESA channel
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
| Property | Description | Type | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| channelDescription | The channel description Max length of 255 | string | ||||||||||||||||||||||||||||||||||||||||||||||||
| channelImportId | The channel import identifier Max length of 255 | string | ||||||||||||||||||||||||||||||||||||||||||||||||
| channelInfo | The name of the ESA channel Max length of 50 Required | string | ||||||||||||||||||||||||||||||||||||||||||||||||
| dataPointId | The DatapointId identifier Required | integer (int32) | ||||||||||||||||||||||||||||||||||||||||||||||||
| esaChannelVersion | EsaChannelVersionCreate | |||||||||||||||||||||||||||||||||||||||||||||||||
|
EsaChannelVersionCreate properties
|
||||||||||||||||||||||||||||||||||||||||||||||||||
| intervalMinutes | The channel interval identifier One of ‘5’, ‘10’, ‘15’, ‘30’, ‘60’, ‘1440’, ‘10080’, ‘43200’ Case sensitive Required when IsCalculated is set to False, case sensitive. Must be null when IsCalculated is set to True, case sensitive | integer (int32) | ||||||||||||||||||||||||||||||||||||||||||||||||
| isCalculated | Indicates whether or not this is a calculated channel with a formula. When IsCalculated is true, the formula will need to be provided in channel version. Conversions from Non-Calculated Channel to Calculated Channel: If the channel has no readings, If the channel has only one version, If the channel is not in other formulas Conversions from Calculated Channel to Non-Calculated Channel: If the channel has no readings | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||
| isPrimaryDemand | If the channel is demand value | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||
| isPrimaryValue | If the channel is primary value | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||
| observationTypeId | The channel type identifier Required | integer (int32) | ||||||||||||||||||||||||||||||||||||||||||||||||
| summarizationMethodId | How readings are aggregated into each interval - Sum, Average, Max or Min. Determines what a threshold alert on this channel can mean, so changing it is rejected while an attached alert’s type and direction do not allow the new method (Sum for ’total over time’; Max or Average for ‘above’; Max, Average or Min for ‘below’). Required | integer (int32) | ||||||||||||||||||||||||||||||||||||||||||||||||
{ "channelDescription": "string", "channelImportId": "string", "channelInfo": "string", "dataPointId": 1, "esaChannelVersion": { "formula": "string", "isValuePositive": false, "maximumReading": 1.0, "minimumReading": 1.0, "multiplier": 1.0, "observationRuleId": 1, "offset": 1.0, "rollbackAllowance": 1.0, "rolloverValue": 1.0, "udfs": [
{ "udfId": 1, "value": "string"
}
], "unitId": 1
}, "intervalMinutes": 1, "isCalculated": false, "isPrimaryDemand": false, "isPrimaryValue": false, "observationTypeId": 1, "summarizationMethodId": 1
}
Responses
Response Body Parameters
| Property | Description | Type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| alerts | The manually-created (non-Sentinel) threshold alerts attached to this channel, regardless of AlertActive. Empty if the channel has no such alerts. Each alert’s Channels holds one entry, this channel’s, so Enabled says whether the alert is switched on for this channel. It does not list the alert’s other channels. |
EsaAlertResponse[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EsaAlertResponse properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channelDescription | Description of the channel | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channelId | The identifier for the channel | integer (int32) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channelImportId | The import identifier for the channel. | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channelInfo | The channel name | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channelVersions | List of channel versions Versions include channel settings that may change over time | EsaChannelVersionResponse[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EsaChannelVersionResponse properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dataCompletenessPercentage | The percentage of expected readings that are present over the last 30 days. Null indicates no readings exist for this channel. | number (double) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dataPoint | DataPointChildWithParentAndImportId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
DataPointChildWithParentAndImportId properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| firstReadingDate | DateTimeOffset of the earliest Reading for the Channel. For Calculated Channels, this is the first Summarized Reading. For all other Channels, this is the first Processed Reading. The DateTimeOffset will always be a valid time in the Meter’s Time Zone. If the offset is removed, it will be the local date and time, in the Meter’s Time Zone. | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| hasReadings | Indicates if the channel has readings | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| interval | The channel interval | integer (int32) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isCalculated | Indicates if the channel is calculated | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isCalculatedConvertible | Indicates if the channel can be converted from calculated to non-calculated or vice-versa From Non-Calculated to Calculated: If the channel has no readings, If the channel has only one version, If the channel is not in other formulas From Calculated to Non-Calculated: If the channel has no readings | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isPrimaryDemand | Indicates if the channel is the primary demand channel for the data point | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isPrimaryValue | Indicates if the channel is the primary value channel for the data point | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lastReadingDate | DateTimeOffset of the most recent Reading for the Channel. For Calculated Channels, this is the most recent Summarized Reading. For all other Channels, this is the most recent Processed Reading. The DateTimeOffset will always be a valid time in the Meter’s Time Zone. If the offset is removed, it will be the local date and time, in the Meter’s Time Zone. | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lastReadingValue | ValueWithUnit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ValueWithUnit properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meter | MeterChildIncludePlace | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterChildIncludePlace properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| observationType | ObservationTypeChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ObservationTypeChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| summarizationMethod | SummarizationMethod | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
SummarizationMethod properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ "alerts": [
{ "alertActive": false, "alertId": 1, "alertMode": 1, "channels": [
{ "channelId": 1, "enabled": false, "meterId": 1, "placeId": 1
}
], "esaAlertSeverityRating": { "esaAlertSeverityRatingId": 1, "severityRatingDescription": "string", "severityRatingInfo": "string"
}, "esaAlertSeverityRatingId": 1, "esaAlertType": { "alertTypeDescription": "string", "alertTypeInfo": "string", "allowAutomatic": false, "allowManual": false, "canHaveAssignee": false, "esaAlertTypeId": 1, "requiresAssignee": false
}, "esaThresholdAlert": { "alertMode": 1, "esaAlertId": 1, "esaThresholdAlertId": 1, "interval": 1, "notificationTriggerCount": 1, "scheduleId": 1, "triggerValue": 1.0, "triggerValueType": 1, "unitId": 1
}, "unit": { "unitCode": "string", "unitDisplayName": "string", "unitId": 1, "unitInfo": "string", "unitType": {}
}
}
], "channelDescription": "string", "channelId": 1, "channelImportId": "string", "channelInfo": "string", "channelVersions": [
{ "beginDate": "2026-11-14", "channelVersionId": 1, "endDate": "2026-11-14", "formula": "string", "isValuePositive": false, "maximumReading": 1.0, "minimumReading": 1.0, "multiplier": 1.0, "observationRule": { "observationRuleCode": "string", "observationRuleId": 1, "observationRuleInfo": "string"
}, "offset": 1.0, "resolvedFormula": "string", "rollbackAllowance": 1.0, "rolloverValue": 1.0, "udfs": [
{ "dataType": {}, "description": "string", "displayOrder": 1, "important": false, "name": "string", "udfId": 1, "udfSelectValues": [], "value": "string"
}
], "unit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}
}
], "dataCompletenessPercentage": 1.0, "dataPoint": { "active": false, "commodity": { "commodityCode": "string", "commodityIcon": {}, "commodityId": 1, "commodityInfo": "string"
}, "dataPointCode": "string", "dataPointId": 1, "dataPointImportId": "string", "dataPointInfo": "string", "isCalculatedDataPoint": false, "isDataRolledUp": false, "parentPlace": { "isDataRolledUp": false, "placeCode": "string", "placeId": 1, "placeInfo": "string", "placeType": {}
}, "sentinelEnabled": false, "serialNumber": "string"
}, "firstReadingDate": "2026-11-14", "hasReadings": false, "interval": 1, "isCalculated": false, "isCalculatedConvertible": false, "isPrimaryDemand": false, "isPrimaryValue": false, "lastReadingDate": "2026-11-14", "lastReadingValue": { "unit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "value": 1.0
}, "meter": { "active": false, "commodity": { "commodityCode": "string", "commodityIcon": {}, "commodityId": 1, "commodityInfo": "string"
}, "isCalculatedMeter": false, "isEsaCalculatedMeter": false, "isSplitChildMeter": false, "isSplitParentMeter": false, "meterCode": "string", "meterId": 1, "meterInfo": "string", "meterType": { "meterTypeCode": "string", "meterTypeId": 1, "meterTypeInfo": "string"
}, "parentPlace": { "isDataRolledUp": false, "placeCode": "string", "placeId": 1, "placeInfo": "string", "placeType": {}
}, "serialNumber": "string"
}, "observationType": { "credit": 1, "nounCode": "string", "nounId": 1, "observationTypeCode": "string", "observationTypeId": 1, "observationTypeInfo": "string"
}, "summarizationMethod": { "summarizationMethodId": 1, "summarizationMethodInfo": "string"
}
}