Get Annual Disaggregation
/apis/disaggregation-v1/utilities/{utilityCode}/customers/{customerId}/consumption/categories
The endDate parameter is optional and defaults to the current date. Results only include the ratio field, which is a decimal in the range [0, 1].
The following disaggregation categories are available APPLIANCES, CLOTHES_WASHER, COOLING, DISHWASHER, DRYER, ELECTRIC_VEHICLE, ELECTRONICS, HEATING, LIGHTING, OTHER, OVEN, POOL, REFRIGERATOR, GAS_APPLIANCES_OTHER, TOTAL, WATER_HEATING.
The list of categories can be extended, but existing categories will not be removed. APPLIANCES is an aggregate category for CLOTHES_WASHER, DISHWASHER, DRYER, OVEN, REFRIGERATOR, GAS_APPLIANCES_OTHER (for GAS or COMBINED customer). If heating or cooling model insights are not available, the disaggregation insights are not calculated, and a response status code 404 is returned.
Request
-
customerId(required): integer
Utility customer ID.
-
utilityCode(required): string
A 3- or 4-character representation of the client code. Valid examples - "UTIL" and "util".
-
endDate: string(date-time)
Date in YYYY-MM-DD format (example 2001-12-31) used for the end date of the disaggregation annual period.
-
fuelType: string
Identifies the customer account id based on the fuel type.Allowed Values:
[ "ELEC", "GAS" ]
-
utilityAccountId: string
Utility customer account ID.
Response
200 Response
object
-
billEndDate:
string(date)
Date in YYYY-MM-DD format (example 2021-12-31) used as a the end date of the bill.
-
billStartDate:
string(date)
Date in YYYY-MM-DD format (example 2021-12-31) used as a the start date of the bill.
-
categories:
array categories
-
usageUnits:
string
type of usage units provided in categories/usage (KWH, THERM)
object
-
cost:
number
-
name:
string
Allowed Values:
[ "APPLIANCES", "CLOTHES_WASHER", "COOLING", "DISHWASHER", "DRYER", "ELECTRIC_VEHICLE", "ELECTRONICS", "HEATING", "LIGHTING", "OTHER", "OVEN", "POOL", "REFRIGERATOR", "GAS_APPLIANCES_OTHER", "TOTAL", "WATER_HEATING" ]
-
ratio:
number
-
usage:
number
{
"response":{
"categories":[
{
"name":"APPLIANCES",
"ratio":0.09
},
{
"name":"COOLING",
"ratio":0.02
},
{
"name":"ELECTRIC_VEHICLE",
"ratio":0.2
},
{
"name":"ELECTRONICS",
"ratio":0.13
},
{
"name":"HEATING",
"ratio":0.22
},
{
"name":"LIGHTING",
"ratio":0.04
},
{
"name":"OTHER",
"ratio":0.06
},
{
"name":"POOL",
"ratio":0.13
},
{
"name":"GAS_APPLIANCES_OTHER",
"ratio":0.02
},
{
"name":"AIR_CONDITION",
"ratio":0.07
},
{
"name":"TOTAL",
"ratio":1
},
{
"name":"WATER_HEATING",
"ratio":0.11
}
]
}
}
400 Response
object
-
errorMessage:
string
Failure explanation.
-
httpStatus:
integer
{
"error":{
"httpStatus":400,
"errorMessage":"Bad request"
}
}
401 Response
object
-
errorMessage:
string
Failure explanation.
-
httpStatus:
integer
{
"error":{
"httpStatus":401,
"errorMessage":"Credentials are required to access this resource"
}
}
404 Response
object
-
errorMessage:
string
Failure explanation.
-
httpStatus:
integer
{
"error":{
"httpStatus":404,
"errorMessage":"Account 00000000 not found. (917aab1d-b12a-4df9-b85d-968cc017a96e) "
}
}
500 Response
object
-
errorMessage:
string
Failure explanation.
-
httpStatus:
integer
{
"error":{
"httpStatus":500,
"errorMessage":"Unexpected error"
}
}