Retrieves rolled-up normalized (weather-adjusted) billing data for a single place on a yearly basis
Use this endpoint to get annual weather-normalized billing summaries for a specific place.
For organizations, data is rolled up from all child places. Includes use, target comparison, and commodity breakdown.
For all places paginated, use GET /place/digest/normalized/yearly instead.
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 |
|---|---|---|---|
| placeId | Unique numeric identifier of the place to retrieve data for | integer (int32) | Required |
Query Parameters
| Name | Description | Type | Required |
|---|---|---|---|
| numberOfYears | Number of years to include (counting back from current year). Defaults to 4. | integer (int32) | Optional |
Responses
200
OK
The request succeeded and the response body contains the requested data.
Response Body Parameters
PlaceDigestNormalizedYearlyResponse
| Property | Description | Type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| commodities | An array of yearly data per commodity | PlaceDigestNormalizedYearlyResponse+CommodityData[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PlaceDigestNormalizedYearlyResponse+CommodityData properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| globalUseUnit | UnitChild | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UnitChild properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| placeCode | The place code | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| placeId | The place identifier | integer (int32) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| placeInfo | The place info | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| results | An array of yearly data | PlaceDigestNormalizedYearlyResponse+Results[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PlaceDigestNormalizedYearlyResponse+Results properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| targetComparison | PlaceDigestNormalizedYearlyResponse+TargetComparison | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PlaceDigestNormalizedYearlyResponse+TargetComparison properties
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| updated | The date and time the data was updated | string (date-time) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example Response
{ "commodities": [
{ "commodityCode": "string", "commodityId": 1, "commodityInfo": "string", "commonUseUnit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "results": [
{ "commonUse": 1.0, "globalUse": 1.0, "year": "string"
}
], "targetComparison": { "globalUse": 1.0, "globalUseYtd": 1.0, "targetLabel": "string", "targetYear": 1
}
}
], "globalUseUnit": { "unitCode": "string", "unitId": 1, "unitInfo": "string"
}, "placeCode": "string", "placeId": 1, "placeInfo": "string", "results": [
{ "globalUse": 1.0, "year": "string"
}
], "targetComparison": { "globalUse": 1.0, "globalUseYtd": 1.0, "targetLabel": "string", "targetYear": 1
}, "updated": "2026-06-29"
}
204
No Content
The request succeeded. No content is returned in the response body.