Converts an existing meter to an ESA Calculated Meter by creating a formula-based primary value channel
Use this endpoint to turn a regular meter into an ESA Calculated Meter. The meter must have NO existing
EsaChannels. A Primary Value ESAChannel is created from the provided formula. The formula may only
reference other ESA Meters (their Primary Value Channels are used in calculation).
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. |
Path Parameters
| Name | Description | Type | Required |
|---|---|---|---|
| meterId | Unique numeric identifier of the meter to convert (must have no existing ESA channels) | integer (int32) | Required |
Request Body
EsaChannelCreate
| 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 | The channel summarization method identifier Required | integer (int32) | |||||||||||||||||||||||||||||||||
Example Request Body
{ "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, "unitId": 1
}, "intervalMinutes": 1, "isCalculated": false, "isPrimaryDemand": false, "isPrimaryValue": false, "observationTypeId": 1, "summarizationMethodId": 1
}
Responses
200
OK
The request succeeded and the response body contains the requested data.
Response Body Parameters
MeterResponse
| Property | Description | Type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| accounts | MeterAccountChild[] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterAccountChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| active | Indicates whether the Meter is Active | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| address | AddressChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AddressChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| billEntryNote | The bill entry note | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| channels | An array of channels assigned to this meter | ChannelChild[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ChannelChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| commodity | CommodityChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CommodityChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdBy | UserChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UserChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdDate | The date and time the meter was created | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| demandUnit | UnitChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UnitChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| emissionSource | EmissionSourceLink | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EmissionSourceLink properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| includeInCostAvoidance | Indicates if the meter should be included in cost avoidance | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| includeInEnergyStar | Indicates if the building is included in ENERGY STAR submissions | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isCalculatedMeter | Indicates whether the Meter is a calculated meter | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isEsaCalculatedMeter | Indicates whether the Meter is an ESA calculated meter | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isSplitChildMeter | Indicates whether the Meter is a child of a split | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isSplitParentMeter | Indicates whether the Meter is a parent of a split | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterCode | The meter code | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterDescription | A description of the meter | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterId | The identifier for the meter | integer (int32) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterInfo | The meter info | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterTimeZone | TimeZoneChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TimeZoneChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| meterType | MeterTypeChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterTypeChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifiedBy | UserChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UserChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modifiedDate | The date and time of the most recent modification of the meter | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| place | PlaceChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PlaceChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| primaryUse | PrimaryUseChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PrimaryUseChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| properties | An array of meter properties | object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| route | RouteChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
RouteChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sentinelStatus | Provides some insight into the current Sentinel enabled status. | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNumber | Meter’s currently assigned serial number | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serialNumberHistory | MeterSerialNumberHistoryChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MeterSerialNumberHistoryChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| useUnit | UnitChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UnitChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| watticsDataPoint | WatticsDataPoint | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
WatticsDataPoint properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example Response
{ "accounts": [
{ "accountCode": "string", "accountGeneralLedger": { "generalLedgerCode": "string", "generalLedgerId": 1, "generalLedgerInfo": "string"
}, "accountId": 1, "accountInfo": "string", "accountMeterId": 1, "active": false, "dataAccessReleaseId": 1, "endDate": "2026-06-29", "hasCalculatedMeter": false, "hasSplitChildMeter": false, "hasSplitParentMeter": false, "hasSubAccount": false, "isSubAccount": false, "meterGeneralLedger": { "generalLedgerCode": "string", "generalLedgerId": 1, "generalLedgerInfo": "string"
}, "startDate": "2026-06-29", "vendor": { "vendorCode": "string", "vendorId": 1, "vendorInfo": "string"
}, "vendorType": { "vendorTypeCode": "string", "vendorTypeId": 1
}
}
], "active": false, "address": { "addressTypeId": 1, "city": "string", "country": "string", "latitude": 1.0, "line1": "string", "line2": "string", "line3": "string", "longitude": 1.0, "postalCode": "string", "remitTo": "string", "state": "string"
}, "billEntryNote": "string", "channels": [
{ "channelCode": "string", "channelId": 1, "interval": 1
}
], "commodity": { "commodityCode": "string", "commodityIcon": { "code": "string", "color": "string"
}, "commodityId": 1, "commodityInfo": "string"
}, "createdBy": { "fullName": "string", "userCode": "string", "userId": 1
}, "createdDate": "2026-06-29", "demandUnit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "emissionSource": { "emissionSourceId": 1
}, "includeInCostAvoidance": false, "includeInEnergyStar": false, "isCalculatedMeter": false, "isEsaCalculatedMeter": false, "isSplitChildMeter": false, "isSplitParentMeter": false, "meterCode": "string", "meterDescription": "string", "meterId": 1, "meterInfo": "string", "meterTimeZone": { "timeZoneCode": "string", "timeZoneId": 1, "timeZoneInfo": "string"
}, "meterType": { "meterTypeCode": "string", "meterTypeId": 1, "meterTypeInfo": "string"
}, "modifiedBy": { "fullName": "string", "userCode": "string", "userId": 1
}, "modifiedDate": "2026-06-29", "place": { "isDataRolledUp": false, "placeCode": "string", "placeId": 1, "placeInfo": "string", "placeType": { "icon": {}, "isSystemPlaceType": false, "placeEntityType": {}, "placeTypeCode": "string", "placeTypeId": 1, "placeTypeInfo": "string", "structure": false
}
}, "primaryUse": { "primaryUseCode": "string", "primaryUseId": 1, "primaryUseInfo": "string"
}, "properties": {}, "route": { "routeCode": "string", "routeId": 1, "routeInfo": "string"
}, "sentinelStatus": "string", "serialNumber": "string", "serialNumberHistory": { "previousSerialNumber": "string", "serialNumberChangeDate": "2026-06-29"
}, "useUnit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "watticsDataPoint": { "watticsDataPointId": 1
}
}