openapi: 3.2.0 info: title: Device Level Monitoring API version: v4 servers: - url: https://api-qa2.enphaseenergy.com tags: - name: Device Level Monitoring paths: /api/v4/systems/{system_id}/devices/micros/telemetry: get: summary: Retrieves telemetry for all micros/PCUs in a system. description: 'Retrieves paginated telemetry for all micro-inverters (PCUs) in a system. If no start_at is specified, defaults to midnight today, in the timezone of the system. If the start_at specified is earlier than the system''s first reported date, then midnight of the system''s first reported date is considered as start_at. The end_at is calculated as the minimum of the time of the request and (start time + granularity). The meaning of granularity is as follows: If granularity is 15mins, maximum 3 intervals will appear in response per device. If granularity is day, maximum 288 intervals will appear in response per device where each interval is of 5 mins duration. The requested start date must be within 2 years from current date. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. By default end_at will appear in response. If end_date parameter is passed in the url then end_date field will appear in response. Page size is limited to a maximum of 20. Empty list will be returned if the site last reported interval < requested start time < current time.' parameters: - name: system_id in: path description: System id required: true schema: type: integer - name: page in: query description: Page number. Defaults to 1. required: false schema: type: integer - name: size in: query description: Number of devices per page. Defaults to 10. Maximum is 20. required: false schema: type: integer - name: start_at in: query description: Start time for fetching the telemetry data in Epoch time format. Alternatively one can use start_date in place of start_at for passing the start date as String in YYYY-MM-DD format. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. schema: type: integer - name: end_at in: query description: End time for fetching the telemetry data in Epoch time format. Alternatively one can use end_date in place of end_at for passing the end date as String in YYYY-MM-DD format. By default end_at will appear in response. If end_date parameter is passed in the url, then end_date field will appear in response. schema: type: integer - name: start_date in: query description: Start date for fetching the telemetry data in YYYY-MM-DD format. If passed, start_date will appear in response instead of start_at. schema: type: string - name: end_date in: query description: End date for fetching the telemetry data in YYYY-MM-DD format. If passed, end_date will appear in response instead of end_at. schema: type: string - name: granularity in: query description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day'. schema: type: string enum: - 5mins - 15mins - day - week tags: - Device Level Monitoring responses: '200': description: Telemetry for all micros in the system content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system total_devices: type: integer description: Total number of micro-inverters in the system across all pages page: type: integer description: Current page number page_size: type: integer description: Number of devices returned in this page start_at: type: integer description: Start time of the data series in Epoch format. Either start_at or start_date will be present depending on the request parameter used. end_at: type: integer description: End time of the data series in Epoch format. Either end_at or end_date will be present depending on the request parameter used. start_date: type: string description: Start date of the data series in YYYY-MM-DD format. Present only if start_date was passed as a request parameter. end_date: type: string description: End date of the data series in YYYY-MM-DD format. Present only if end_date was passed as a request parameter. granularity: type: string description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day'. items: type: string description: The list key, always 'intervals' devices: type: array description: List of micro-inverter telemetry objects for this page items: type: object properties: serial_number: type: string description: Serial number of the micro-inverter intervals: type: array description: List of telemetry intervals for this device items: type: object properties: end_at: type: integer description: End time of the telemetry interval in Epoch format powr: type: integer description: Average power produced by this micro-inverter during this interval, measured in Watts enwh: type: integer description: Energy produced by this micro-inverter during this interval, measured in Watt-Hours example: system_id: 1765 total_devices: 25 page: 1 page_size: 10 start_at: 1496526300 end_at: 1496529300 granularity: day items: intervals devices: - serial_number: '123456789012' intervals: - end_at: 1496526300 powr: 30 enwh: 40 - end_at: 1496526600 powr: 20 enwh: 40 - serial_number: '123456789013' intervals: - end_at: 1496526300 powr: 25 enwh: 35 - end_at: 1496526600 powr: 18 enwh: 30 '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: System not found for {:id=>"1"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Requested date is in the future' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/devices/micros/{serial_no}/telemetry: get: summary: Retrieves telemetry for single micro/pcu. description: "Retrieves telemetry for single micro/pcu. \nIf no start_at is specified, defaults to midnight today, in the timezone of the system. If the start_at specified is earlier than the system’s first reported date, then midnight of the system’s first reported date is considered as start_at.\nThe end_at is calculated as the minimum of the time of the request and (start time + granularity). \nThe meaning of granularity is as follow:\n\nIf granularity is 15mins, maximum 3 intervals will appear in response. If granularity is day, maximum 288 intervals will appear in response where each interval is of 5 mins duration.\n \n The requested start date must be within 2 years from current date. \n By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. \nBy default end_at will appear in response. If end_date parameter is passed in the url then end_date field will appear in response. Empty list will be returned if the last interval < requested start time < current time." parameters: - name: system_id in: path description: System id required: true schema: type: integer - name: serial_no in: path description: Serial Number of the individual solar Microinverter required: true schema: type: string - name: start_at in: query description: Start time for fetching the telemetry data in Epoch time format. Alternatively one can use start_date in place of start_at for passing the start date as String in YYYY-MM-DD format. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. schema: type: integer - name: granularity in: query description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' schema: type: string enum: - 5mins - 15mins - day - week tags: - Device Level Monitoring responses: '200': description: Telemetry for micro content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system serial_number: type: string description: The device serial number granularity: type: string description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' total_devices: type: integer description: Shall always be 1 since this is telemetry from individual micros start_at: type: integer description: Start Time of the data series. Either Start_date or start_at will be present. By default start_at will appear in response. If start_date parameter passed in the url then start_date field will appear in response. end_at: type: integer description: End Time of the data series. Either end_date or end_at will be present. By default end_at will appear in response. If end_date parameter passed in the url then end_date field will appear in response. items: type: string description: The list key 'intervals' intervals: type: array items: properties: end_at: type: integer description: End time of the telemetry interval powr: type: integer description: Average power (in Watt) produced by all the microinverters during this interval, measured in Watts. enwh: type: integer description: Energy produced (in Watt-Hours) from all the microinverters combined during that period example: system_id: 1765 serial_number: '12345' granularity: day total_devices: 1 start_at: 1496526300 end_at: 1496529300 items: intervals intervals: - end_at: 1496526300 powr: 30 enwh: 40 - end_at: 1496526600 powr: 20 enwh: 40 '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: Micro not found for {:id=>"1"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Requested date range is invalid for this system. {:start_at=>1566930600, :end_at=>1565333100, :first_interval=>1565072100, :last_interval=>1565333700}' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/devices/encharges/{serial_no}/telemetry: get: summary: Retrieves telemetry for single Encharge description: "Retrieves telemetry for single Encharge. \nIf no start_at is specified, defaults to midnight today, in the timezone of the system. If the start_at specified is earlier than the system’s first reported date, then midnight of the system’s first reported date is considered as start_at.\nThe end_at is calculated as the minimum of the time of the request and (start time + granularity). \nThe meaning of granularity is as follow:\n\nIf granularity is 15mins, maximum 1 interval will appear in response. If granularity is day, maximum 96 intervals, and if granularity is week, maximum 672 intervals, will appear in response where each interval is of 15 mins duration.\n \n The requested start date must be within 2 years from current date. \n By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. \nBy default end_at will appear in response. If end_date parameter is passed in the url then end_date field will appear in response. Empty list will be returned if the last interval < requested start time < current time." parameters: - name: system_id in: path description: System id required: true schema: type: integer - name: serial_no in: path description: Serial Number of the encharge required: true schema: type: string - name: start_at in: query description: Start time for fetching the telemetry data in Epoch time format. Alternatively one can use start_date in place of start_at for passing the start date as String in YYYY-MM-DD format. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. schema: type: integer - name: granularity in: query description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' schema: type: string enum: - 5mins - 15mins - day - week tags: - Device Level Monitoring responses: '200': description: Telemetry for the Encharge content: application/json: schema: type: object properties: system_id: type: integer description: System id serial_number: type: string description: The device serial number granularity: type: string description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' total_devices: type: integer description: Shall always be 1 since this is telemetry from individual micros start_at: type: integer description: Start Time of the data series. Either Start_date or start_at will be present. By default start_at will appear in response. If start_date parameter passed in the url then start_date field will appear in response. end_at: type: integer description: End Time of the data series. Either end_date or end_at will be present. By default end_at will appear in response. If end_date parameter passed in the url then end_date field will appear in response. items: type: string description: The list key 'intervals' intervals: type: array items: properties: end_at: type: integer description: End time of the telemetry interval. charge: type: object properties: enwh: type: integer description: Energy into the battery during the interval discharge: type: object properties: enwh: type: integer description: Energy discharged from the battery during the interval soc: type: object properties: percent: type: integer description: Battery soc percentage last_reported_time: type: integer description: Last reported timestamp last_reported_soc: type: string description: Last reported soc percentage example: system_id: 1765 serial_number: '12345' granularity: day total_devices: 1 start_at: 1496526300 end_at: 1496529300 items: intervals intervals: - end_at: 1384122700 charge: enwh: 40 discharge: enwh: 0 soc: percent: 25 last_reported_time: 1650349170 last_reported_soc: 99% '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: Encharge not found for {:id=>"1"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Requested date range is invalid for this system. {:start_at=>1566930600, :end_at=>1565333100, :first_interval=>1565072100, :last_interval=>1565333700}' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/{serial_no}/evse_lifetime: get: summary: Retrieves daily time-series telemetry data of the 3rd party EVSE charger description: Retrieves daily time-series telemetry data of the 3rd party EVSE charger. The number of data points returned in the response corresponds to days spanned between the start_date and end_date parameter mentioned in the request. parameters: - name: system_id in: path description: The unique numeric ID of the system required: true schema: type: integer - name: serial_no in: path description: Serial Number of the EV Charger required: true schema: type: string - name: start_date in: query description: The start_date defaults to the system’s operational date. If the start_date is earlier than the system’s operational_date, then the response data begins with the system operational_date as start_date. Pass as String date format YYYY-MM-DD schema: type: string - name: end_date in: query description: End date for fetching the daily time-series data. Pass as String date format YYYY-MM-DD. Defaults to today. schema: type: string tags: - Device Level Monitoring responses: '200': description: Telemetry for the evse_lifetime content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system start_date: type: string description: Start Date of the daily time-series data series end_date: type: string description: End Date of the daily time-series data series consumption: type: array description: Energy units consumed per day (positive will correspond to EV charge, negative will correspond to EV discharge). The time series includes one entry for each day from the start_date to the end_date with no gaps in the time series. If the response contains trailing zeroes, such as [909, 4970, 0, 0, 0], then there is not charge/discharge of the EV during those days. items: type: integer example: system_id: 698905955 start_date: '2024-11-22' end_date: '2024-11-28' consumption: - 40 - 35 - 40 - 20 - 15 - 10 - 2 '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: System not found for {:id=>"70118390114"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Invalid date/time range' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/hp_lifetime: get: summary: Retrieves daily time-series telemetry data of the HP description: Retrieves daily time-series telemetry data of the HP. The number of data points returned in the response corresponds to days spanned between the start_date and end_date parameter mentioned in the request. parameters: - name: system_id in: path description: The unique numeric ID of the system required: true schema: type: integer - name: start_date in: query description: The start_date defaults to the system’s operational date. If the start_date is earlier than the system’s operational_date, then the response data begins with the system operational_date as start_date. Pass as String date format YYYY-MM-DD schema: type: string - name: end_date in: query description: End date for fetching the daily time-series data. Pass as String date format YYYY-MM-DD. Defaults to today. schema: type: string tags: - Device Level Monitoring responses: '200': description: Telemetry for the hp_lifetime content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system start_date: type: string description: Start Date of the daily time-series data series end_date: type: string description: End Date of the daily time-series data series consumption: type: array description: Energy units consumed per day (positive will correspond to energy consumption, negative will correspond to zero consumption). The time series includes one entry for each day from the start_date to the end_date with no gaps in the time series. If the response contains trailing zeroes, such as [909, 4970, 0, 0, 0], then there is no consumption by the HP items: type: integer example: system_id: 698905955 start_date: '2024-11-22' end_date: '2024-11-28' consumption: - 40 - 35 - 40 - 20 - 15 - 0 - 5 '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: System not found for {:id=>"70118390114"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Invalid date/time range' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/{serial_no}/evse_telemetry: get: summary: Retrieves telemetry data of the EVSE charger at regular intervals. description: 'Retrieves telemetry data of the EVSE charger at regular intervals. If no start_at is specified, defaults to midnight today, in the timezone of the system. If the start_at specified is earlier than the system’s first reported date, then midnight of the system’s first reported date is considered as start_at. The end_at is calculated as the minimum of the time of the request and (start time + granularity). The meaning of granularity is as follow: If granularity is 15mins, maximum 1 intervals will appear in response. If granularity is day, maximum 96 intervals will appear in response where each interval is of 15 mins duration. The requested start date must be within 2 years from current date.' parameters: - name: system_id in: path description: The unique numeric ID of the system required: true schema: type: integer - name: serial_num in: path description: Serial Number of the EV Charger required: true schema: type: string - name: start_at in: query description: Start time for fetching the telemetry data in Epoch time format. Alternatively one can use start_date in place of start_at for passing the start date as String date format YYYY-MM-DD schema: type: integer - name: granularity in: query description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' schema: type: string - name: interval_duration in: query description: Size of the interval. Can be 5mins, or 15mins. Site must be configured to 5 min telemetry for this to be supported schema: type: string tags: - Device Level Monitoring responses: '200': description: EVSE telemetry in intervals content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system granularity: type: string description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' interval_duration: type: string description: Size of the interval. Can be 5mins, or 15mins. Site must be configured to 5 min telemetry for this to be supported start_at: type: string description: Start Time of the data series. Either Start_date or start_at will be present. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. end_at: type: string description: End Time of the data series. Either end_date or end_at will be present. By default end_at will appear in response. If end_date parameter is passed in the url, then end_date field will appear in response. items: type: string description: The list key 'intervals' intervals: type: array description: Energy units consumed per day (positive will correspond to energy consumption, negative will correspond to zero consumption). The time series includes one entry for each day from the start_date to the end_date with no gaps in the time series. If the response contains trailing zeroes, such as [909, 4970, 0, 0, 0], then there is no consumption by the HP items: type: array items: properties: end_at: type: integer description: End time of the telemetry interval wh_consumed: type: integer description: Energy units consumed per interval (positive will correspond to EV charge, negative will correspond to EV discharge) example: system_id: 698905955 granularity: day interval_duration: 5mins start_at: 1496526300 end_at: 1496528100 items: intervals intervals: - end_at: 1496527200 wh_consumed: 40 - end_at: 1496527260 wh_consumed: 30 - end_at: 1496527320 wh_consumed: -10 '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: System not found for {:id=>"70118390114"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Invalid date/time range' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/hp_telemetry: get: summary: Retrieves energy consumed by HP in regular intervals. description: 'Retrieves energy consumed by HP in regular intervals. If no start_at is specified, defaults to midnight today, in the timezone of the system. If the start_at specified is earlier than the system’s first reported date, then midnight of the system’s first reported date is considered as start_at. The end_at is calculated as the minimum of the time of the request and (start time + granularity). The meaning of granularity is as follow: If granularity is 15mins, maximum 1 intervals will appear in response. If granularity is day, maximum 96 intervals will appear in response where each interval is of 15 mins duration. The requested start date must be within 2 years from current date.' parameters: - name: system_id in: path description: The unique numeric ID of the system required: true schema: type: integer - name: start_at in: query description: Start time for fetching the telemetry data in Epoch time format. Alternatively one can use start_date in place of start_at for passing the start date as String date format YYYY-MM-DD schema: type: integer - name: start_date in: query description: Start Date in YYYY-MM-DD format schema: type: string - name: granularity in: query description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' schema: type: string - name: interval_duration in: query description: Size of the interval. Can be 5mins, or 15mins. Site must be configured to 5 min telemetry for this to be supported schema: type: string tags: - Device Level Monitoring responses: '200': description: HP telemetry in intervals content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system granularity: type: string description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' interval_duration: type: string description: Size of the interval. Can be 5mins, or 15mins. Site must be configured to 5 min telemetry for this to be supported start_at: type: string description: Start Time of the data series. Either Start_date or start_at will be present. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. end_at: type: string description: End Time of the data series. Either end_date or end_at will be present. By default end_at will appear in response. If end_date parameter is passed in the url, then end_date field will appear in response. items: type: string description: The list key 'intervals' intervals: type: array description: Energy units consumed per day (positive will correspond to energy consumption, negative will correspond to zero consumption). The time series includes one entry for each day from the start_date to the end_date with no gaps in the time series. If the response contains trailing zeroes, such as [909, 4970, 0, 0, 0], then there is no consumption by the HP items: type: array items: properties: end_at: type: integer description: End time of the telemetry interval wh_consumed: type: integer description: Units consumed per interval. This value can only be zero or positive example: system_id: 698905955 granularity: day interval_duration: 5mins start_at: 1496526300 end_at: 1496528100 items: intervals intervals: - end_at: 1496526600 wh_consumed: 40 - end_at: 1496526900 wh_consumed: 40 - end_at: 1496527200 wh_consumed: 40 '401': description: Authentication Error content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Authorized details: User is not authorized code: 401 '403': description: Forbidden content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Forbidden details: Not authorized to access this resource code: 403 '404': description: Not Found content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Not Found details: System not found for {:id=>"70118390114"} code: 404 '405': description: Method Not Allowed content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '405' message: - Method not allowed '422': description: Unprocessable Entity content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code example: message: Unprocessable Entity details: Invalid request because of 'Invalid date/time range' code: 422 '429': description: Too Many Requests content: application/json: schema: type: object properties: message: type: string description: Error Type details: type: string description: Error Details code: type: integer description: Error Code period: type: string description: Quota exceeded for minute/month period_start: type: integer description: Starting period timestamp period_end: type: integer description: Ending period timestamp limit: type: integer description: Limit count for the period example: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string example: reason: '501' message: - Not Implemented