GET /api/v3/savings/task/{taskId}

Get a single cost avoidance task by its unique ID

GetSavingsTaskV3 Permissions: Meters (View)

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.

Path Parameters

Name Description Type Required
taskId integer (int32) Required

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
Property Description Type
errorCount Number of meters processed with errors integer (int32)
numberOfMeters Number of meters to process integer (int32)
status The status of baseline processing string
successCount Number of meters successfully processed integer (int32)
warningCount Number of meters processed with warning integer (int32)
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
Property Description Type
availableOperator The list of available operators Required (defined) string[]
caption The caption of the filter Required (defined) string
dataFieldId The datafield identifier Required (defined) integer (int32)
dataType DataTypeResponse
DataTypeResponse properties
Property Description Type
dataTypeCode Required (defined) string
dataTypeId Required (defined) integer (int32)
dataTypeInfo Required (defined) string
fieldId The field identifier Required (defined) integer (int32)
hidden Indicates if the filter is hidden Required (defined) boolean
operator The operator Required (defined) string
queryParameterName The Query parameter name Required (defined) string
recommended Indicates if the filter is recommended Required (defined) boolean
required Indicates if the filter is required boolean
value The value of the filter Required (defined) string
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:

  • ResetBaseline
  • SavedAndReprocessedMeter
  • ProcessSavings
  • SpecialAdjustmentAddedEditedRemoved
  • SpecialAdjustmentAddedEditedRemovedSetupSheet
  • MeterCostAvoidanceSettingsGloballyUpdated
  • AucRangeModified
  • OtherSavingsAddedEdited
  • OtherSavingsAddedEditedSetupSheet
string
savingsLog SavingsLog
SavingsLog properties
Property Description Type
errorCount Number of meters processed with errors integer (int32)
numberOfMeters Number of meters to process integer (int32)
status The status of savings processing string
successCount Number of meters successfully processed integer (int32)
warningCount Number of bills processed that have warnings across all meters processed A bill has a “warning” if it had 1) incomplete weather data or 2) exceeded the average unit cost range set for its commodity integer (int32)
settings CostAvoidanceSettings
CostAvoidanceSettings properties
Property Description Type
billSelectionOption

For savings calculation, indicates which bills should have been processed Will be empty unless Reason is “ProcessSavings” Possible values:

  • “AllBills” means all bills were processed
  • “ModifiedOrNotProcessed” means only new bills or bills which have been modified since the last time cost avoidance was run have been processed
  • “BillingPeriod” means that only bills with a billing period which is greater than or equal to the MinimumBillingPeriod have been processed
string
ignoredSpecialAdjustmentType Defines handling of meter special adjustments during Cost Avoidance processing. Can be either of two static values OR the special adjustment category that the user chose to skip. Will be empty unless Reason is “ProcessSavings” Possible static values: “NONE” - no special adjustment categories were skipped “ALL” - all special adjustment categories were skipped string
ignoredWeatherAdjustments Indicates if weather adjustments were ignored when the baseline processor was run Will be null unless Reason is “ResetBaseline” boolean
minimumBillingPeriod Only bills with a billing period greater than or equal to this value were included in Cost Avoidance processing Will be null unless BillSelectionOption is “BillingPeriod” and Reason is “ProcessSavings” integer (int32)
skippedMultiAccountIfBillsMissing Indicates if the Cost Avoidance processor skipped processing meters with multiple accounts if one of the bills was missing Will be empty unless Reason is “ProcessSavings” boolean
status

The status of the cost avoidance task. Will be one of the following:

  • Processing
  • Complete
  • Error
string
taskGUId The task GUID string (uuid)
taskNote Notes added to the cost avoidance task by the user string
taskType TaskType
TaskType properties
Property Description Type
taskTypeCode The code for task type string
taskTypeId The task type identifier integer (int32)
taskTypeInfo The task type information string
user UserChild
UserChild properties
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
Example Response application/json
{  "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
  }
}