Mass update certain cost avoidance settings for meters that match the filter conditions Baseline and Savings will be reprocessed for affected meters
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
BulkMeterCostAvoidanceSettings
| Property | Description | Type | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| attemptCoolingAdjustment | Indicates whether or not the cost avoidance processor will attempt cooling adjustments Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | boolean | ||||||||||||
| attemptHeatingAdjustment | Indicates whether or not the cost avoidance processor will attempt heating adjustments Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | boolean | ||||||||||||
| baselineStartDate | Determines the start date of the meter’s cost avoidance baseline Must be between 1899-12-31 and 3000-01-01 Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | string (date-time) | ||||||||||||
| coolingNeededAbove | Determines the external temperature above which cooling is expected to take place Must be greater than or equal to HeatingNeededBelow Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | integer (int32) | ||||||||||||
| filters | Filter criteria which determine the meters whose cost avoidance settings will be updated Required (defined) | FilterEdit[] | ||||||||||||
|
FilterEdit properties
|
||||||||||||||
| heatingNeededBelow | Determines the external temperature below which heating is expected to take place Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | integer (int32) | ||||||||||||
| includeMeterInCostAvoidance | Determines whether or not to include the meter in cost avoidance processing Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | boolean | ||||||||||||
| numBaselineMonths | Determines number of months of data included in the meter’s cost avoidance baseline Must be between 12 and 36 Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | integer (int32) | ||||||||||||
| savingsStartDate | Determines the start date after which energy and cost savings are expected to accrue Must be between 1899-12-31 and 3000-01-01 Required (defined) At least one of AttemptCoolingAdjustment, AttemptHeatingAdjustment, NumBaselineMonths, BaselineStartDate, CoolingNeededAbove, HeatingNeededBelow, IncludeMeterInCostAvoidance, SavingsStartDate must not be null | string (date-time) | ||||||||||||
Example Request Body
{ "attemptCoolingAdjustment": false, "attemptHeatingAdjustment": false, "baselineStartDate": "2026-03-30", "coolingNeededAbove": 1, "filters": [
{ "fieldId": 1, "operator": "string", "value": "string"
}
], "heatingNeededBelow": 1, "includeMeterInCostAvoidance": false, "numBaselineMonths": 1, "savingsStartDate": "2026-03-30"
}
Responses
200
OK
The request succeeded and the response body contains the requested data.
Response Body Parameters
CostAvoidanceTask
| Property | Description | Type | |||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| baselineLog | BaselineLog | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
BaselineLog properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| beginDate | The date and time the task began | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||
| costAvoidanceTaskId | The task ID | integer (int32) | |||||||||||||||||||||||||||||||||||||||||||||||||||
| endDate | The date and time the task finished. If the task is not finished, endDate will have no value | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||
| filters | The task’s filters | FilterResponse[] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
FilterResponse properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| hasAttachments | Indicates whether or not the task has an output log available for download | boolean | |||||||||||||||||||||||||||||||||||||||||||||||||||
| message | If there was a catastrophic error during task processing, it will go here | string | |||||||||||||||||||||||||||||||||||||||||||||||||||
| reason | The reason for the cost avoidance task. Will be one of the following:
|
string | |||||||||||||||||||||||||||||||||||||||||||||||||||
| savingsLog | SavingsLog | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
SavingsLog properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| settings | CostAvoidanceSettings | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CostAvoidanceSettings properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| status | The status of the cost avoidance task. Will be one of the following:
|
string | |||||||||||||||||||||||||||||||||||||||||||||||||||
| taskGUId | The task GUID | string (uuid) | |||||||||||||||||||||||||||||||||||||||||||||||||||
| taskNote | Notes added to the cost avoidance task by the user | string | |||||||||||||||||||||||||||||||||||||||||||||||||||
| taskType | TaskType | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TaskType properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| user | UserChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UserChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Example Response
{ "baselineLog": { "errorCount": 1, "numberOfMeters": 1, "status": "string", "successCount": 1, "warningCount": 1
}, "beginDate": "2026-03-30", "costAvoidanceTaskId": 1, "endDate": "2026-03-30", "filters": [
{ "availableOperator": [
"string"
], "caption": "string", "dataFieldId": 1, "dataType": { "dataTypeCode": "string", "dataTypeId": 1, "dataTypeInfo": "string"
}, "fieldId": 1, "hidden": false, "operator": "string", "queryParameterName": "string", "recommended": false, "required": false, "value": "string"
}
], "hasAttachments": false, "message": "string", "reason": "string", "savingsLog": { "errorCount": 1, "numberOfMeters": 1, "status": "string", "successCount": 1, "warningCount": 1
}, "settings": { "billSelectionOption": "string", "ignoredSpecialAdjustmentType": "string", "ignoredWeatherAdjustments": false, "minimumBillingPeriod": 1, "skippedMultiAccountIfBillsMissing": false
}, "status": "string", "taskGUId": "string", "taskNote": "string", "taskType": { "taskTypeCode": "string", "taskTypeId": 1, "taskTypeInfo": "string"
}, "user": { "fullName": "string", "userCode": "string", "userId": 1
}
}