openapi: 3.0.0 info: title: The Enlighten Systems Device Level Production Monitoring Site Level Production Monitoring API description: 'The Enlighten Systems API is a JSON-based API that provides access to performance data for a PV system. By using the Enlighten Systems API, you agree to the Enphase Energy API License Agreement. Please note that the Enlighten Systems API does not provide performance data at a panel or microinverter level.' version: '2.0' termsOfService: https://developer.enphase.com/docs#Display-Requirements license: name: Enphase API License Agreement url: https://www.enphase.com/en-us/legal/api-license-agreement servers: - url: https://api.enphaseenergy.com/api/v2 security: - ApiKey: [] tags: - name: Site Level Production Monitoring paths: /api/v4/systems/{system_id}/production_meter_readings: get: summary: production_meter_readings description: "Returns the last known reading of each production meter on the system as of the requested time, regardless of whether the meter is currently in service or retired. \n Read_at is the time at which the reading was taken, and is always less than or equal to the requested end_at. Commonly, the reading will be within 30 minutes of the requested end_at. However, larger deltas can occur and do not necessarily mean there is a problem with the meter or the system. Systems that are configured to report infrequently can show large deltas on all meters, especially when end_at is close to the current time. Meters that have been retired from a system will show an end_at that doesn’t change, and that eventually is far away from the current time." operationId: getProductionMeterReadings tags: - Site Level Production Monitoring parameters: - name: system_id in: path description: The unique numeric ID of the system required: true schema: type: integer - name: end_at in: query description: End of reporting period in Unix epoch time. If no end is specified, defaults to the time of the request. If the end is later than the last reported interval the response data ends with the last reported interval schema: type: integer responses: '200': description: production_meter_readings content: application/json: schema: type: object properties: system_id: type: integer description: System id meter_readings: type: array items: type: object properties: serial_num: type: string description: The serial number of the meter value: type: integer description: The meter reading, in Wh read_at: type: integer description: The time when the reading was taken, always prior or equal to the requested 'end_at' description: Production Meter Readings meta: type: object properties: status: type: string description: System's status. Corresponding Enlighten values can be found in table added at the end of page. last_report_at: type: integer description: Timestamp (in epoch format) at which the system's Envoy last submitted a report last_energy_at: type: integer description: Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned. operational_at: type: integer description: Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time. description: Information about the system such as its status, when it became operational and last reported to Envoy. examples: response: value: system_id: 66 meter_readings: - serial_num: 123123123123EIM1 value: 6180635 read_at: 1473901200 meta: status: normal last_report_at: 1473902079 last_energy_at: 1473901200 operational_at: 1357023600 '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 examples: response: value: 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 examples: response: value: 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 examples: response: value: message: Not Authorized 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 examples: response: value: 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 examples: response: value: message: Unprocessable Entity details: Failed to parse date 1613543106 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 examples: response: value: 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 examples: response: value: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/rgm_stats: get: summary: rgm_stats description: "Returns performance statistics as measured by the revenue-grade meters installed on the specified system. If the total duration requested is more than one week, returns one week of intervals. Intervals are 15 minutes in length and start at the top of the hour.\n Requests for times that do not fall on the 15-minute marks are rounded down. For example, a request for 08:01, 08:08, 08:11, or 08:14 (in epoch format) is treated as a request for 08:00 (in epoch format). Intervals are listed by their end times in epoch format.\n The requested date range in one API hit cannot be more than 7 days and the requested start at must be within 2 years from current time. 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. Empty list will be returned if the last interval < requested start time < current time." operationId: getRgmStats tags: - Site Level Production Monitoring parameters: - name: system_id in: path description: The numeric id of the system required: true schema: type: integer - name: start_at in: query description: Start of period to report on in Unix epoch time. If no start is specified, the assumed start is midnight today, in the timezone of the system. If the start is earlier than the system’s operational_date, the response data begins at midnight of the first reported interval date. schema: type: integer - name: end_at in: query description: End of reporting period in Unix epoch time. If no end is specified, default to the time of the request or (start time + 1 week), whichever is earlier. If the end is later than the last reported interval the response data ends with the last reported interval. schema: type: integer responses: '200': description: rgm_stats content: application/json: schema: type: object properties: system_id: type: integer description: System id total_devices: type: integer description: Number of active production meters for this system. meta: type: object properties: status: type: string description: System's status. Corresponding Enlighten values can be found in table added at the end of page. last_report_at: type: integer description: Timestamp (in epoch format) at which the system's Envoy last submitted a report last_energy_at: type: integer description: Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned. operational_at: type: integer description: Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time. description: Information about the system such as its status, when it became operational and last reported to Envoy. intervals: type: array items: properties: end_at: type: integer description: End time of the telemetry interval. devices_reporting: type: integer description: Number of production meters that reported data for this interval at the time of the request. wh_del: type: integer description: Energy delivered during this interval, in Wh. description: A list of intervals between the requested start and end times. meter_intervals: type: array items: properties: meter_serial_number: type: string description: Meter serial number envoy_serial_number: type: string description: Enovy serial number of the system that the meter reports to intervals: type: array items: properties: channel: type: integer description: The reporting channel id end_at: type: integer description: End time of the telemetry interval. wh_del: type: integer description: Energy delivered during this interval, in Wh (Watt-Hour). curr_w: type: integer description: Power delivered during this interval, in W (Watts). description: Individual meter level interval. description: A list of intervals of a meter between the requested start and end times. examples: response: value: system_id: 66 total_devices: 2 meta: status: normal last_report_at: 1470087000 last_energy_at: 1470086106 operational_at: 1357023600 intervals: - end_at: 1384122700 wh_del: 50 devices_reporting: 2 - end_at: 1384123600 wh_del: 100 devices_reporting: 2 - end_at: 1384124500 wh_del: 15 devices_reporting: 2 - end_at: 1384125400 wh_del: 21 devices_reporting: 2 - end_at: 1384126300 wh_del: 34 devices_reporting: 2 meter_intervals: - meter_serial_number: '1218676784' envoy_serial_number: '1218347675' intervals: - channel: 1 end_at: 1384122700 wh_del: 30 curr_w: 120 - channel: 1 end_at: 1384123600 wh_del: 50 curr_w: 200 - channel: 1 end_at: 1384124500 wh_del: 10 curr_w: 40 - channel: 1 end_at: 1384125400 wh_del: 10 curr_w: 40 - channel: 1 end_at: 1384126300 wh_del: 20 curr_w: 80 - meter_serial_number: '1218676791' envoy_serial_number: '1218347675' intervals: - channel: 1 end_at: 1384122700 wh_del: 20 curr_w: 80 - channel: 1 end_at: 1384123600 wh_del: 50 curr_w: 200 - channel: 1 end_at: 1384124500 wh_del: 5 curr_w: 20 - channel: 1 end_at: 1384125400 wh_del: 11 curr_w: 44 - channel: 1 end_at: 1384126300 wh_del: 14 curr_w: 56 '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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: message: Unprocessable Entity details: Requested date range is invalid for this system 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 examples: response: value: message: Too Many Requests details: Usage limit exceeded for plan Kilowatt code: 429 period: minute period_start: 1623825660 period_end: 1623825720 limit: 5 '500': description: 'Under some conditions, data for a given period may be temporarily unavailable. When this condition is detected, the response code is 500 and the response body is:' content: application/json: schema: type: object properties: errorCode: type: integer description: Error Code errorMessages: type: array description: Error Messages items: type: string examples: response: value: errorCode: 7 errorMessages: - Data is temporarily unavailable '501': description: Not Implemented content: application/json: schema: type: object properties: reason: type: string message: type: array items: type: string examples: response: value: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/energy_lifetime: get: summary: energy_lifetime description: "Returns a daily time series of energy produced by the system over its lifetime. All measurements are in Watt hours.\n 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 includes trailing zeroes, such as [909, 4970, 0, 0, 0], then no energy has been reported for the last days in the series.\n If the system has a meter, the time series includes data as measured by the microinverters until the first full day after the meter has been installed. Later, it switches to using the data as measured by the meter. This is called the “merged time series.” The attribute “meter_start_date” indicates the time when the meter measurements begin to be used. You can retrieve the complete time series from the meter and from the microinverters by adding the parameter production=all to the request." operationId: getEnergyLifetime tags: - Site Level Production Monitoring 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: Start date of the time series data. 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 of the time series data. Defaults to yesterday. Pass as String date format YYYY-MM-DD. schema: type: string - name: production in: query description: When “all”, returns the merged time series plus the time series as reported by the microinverters and the meter on the system. Other values are ignored. schema: type: string responses: '200': description: 'When the query parameters include “production=all”, returns meter and microinverter-measured time series:' content: application/json: schema: type: object properties: system_id: type: integer description: System id start_date: type: string description: When no start_date parameter is specified on the request, this is the operational_date of the system. May be null if system has never produced. When a start_date parameter is included in the request, it is included here in the response. meter_start_date: type: string description: The first day in the time series when measurements are taken from a meter instead of from microinverters. This field is not present unless the system has a meter. production: type: array description: An array of production measurements, one for each day since the system started producing, or one for each day of the requested period. If the system has never produced energy, the array may be empty. items: type: integer micro_production: type: array description: Array of production measurements reported by the microinverters. items: type: integer nullable: true meter_production: type: array description: Array of production measurements reported by the meter. items: type: integer nullable: true meta: type: object properties: status: type: string description: System's status. Corresponding Enlighten values can be found in table added at the end of page. last_report_at: type: integer description: Timestamp (in epoch format) at which the system's Envoy last submitted a report last_energy_at: type: integer description: Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned. operational_at: type: integer description: Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time. description: Information about the system such as its status, when it became operational and last reported to Envoy. examples: response: value: system_id: 66 start_date: 2013-01-01 meter_start_date: 2013-01-04 production: - 15422 - 15421 - 17118 - 18505 - 18511 - 18487 micro_production: - 15422 - 15421 - 17118 - 18513 - 18520 - 18494 meter_production: - 0 - 0 - 11388 - 18505 - 18511 - 18487 meta: status: normal last_report_at: 1445619615 last_energy_at: 1445619033 operational_at: 1357023600 '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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: message: Unprocessable Entity details: Requested date range is invalid for this system 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 examples: response: value: 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 examples: response: value: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/telemetry/production_micro: get: summary: Retrieves telemetry for all production micros for a system description: "Retrieves telemetry for all the production micros of a system. \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." operationId: getProductionMicroTelemetry tags: - Site Level Production Monitoring 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 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: $ref: '#/components/schemas/TelemetryGranularity' responses: '200': description: Telemetry for all production micros content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system granularity: allOf: - $ref: '#/components/schemas/TelemetryGranularity' description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' total_devices: type: integer description: Number of micro inverters in the site 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 is 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 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: An array of telemetry objects. Each object contains items: properties: end_at: type: integer description: End time of the telemetry interval devices_reporting: type: integer description: Number of devices reporting 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 meta: type: object properties: status: type: string description: System's status. Corresponding Enlighten values can be found in table added at the end of page. last_report_at: type: integer description: Timestamp (in epoch format) at which the system's Envoy last submitted a report last_energy_at: type: integer description: Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned. operational_at: type: integer description: Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time. description: Information about the system such as its status, when it became operational and last reported to Envoy. examples: response: value: system_id: 698905955 granularity: day total_devices: 9 start_at: 1496526300 end_at: 1496528300 items: intervals intervals: - end_at: 1384122700 devices_reporting: 1 powr: 30 enwh: 40 - end_at: 1384123600 devices_reporting: 1 powr: 20 enwh: 40 meta: status: normal last_report_at: 1445619615 last_energy_at: 1445619033 operational_at: 1357023600 '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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: reason: '501' message: - Not Implemented /api/v4/systems/{system_id}/telemetry/production_meter: get: summary: Retrieves telemetry for all production meters for a system description: "Retrieves telemetry for all the production meters of a system. \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 intervals 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." operationId: getProductionMeterTelemetry tags: - Site Level Production Monitoring 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. 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: $ref: '#/components/schemas/TelemetryGranularity' responses: '200': description: Telemetry for all production meters content: application/json: schema: type: object properties: system_id: type: integer description: The unique numeric ID of the system granularity: allOf: - $ref: '#/components/schemas/TelemetryGranularity' description: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day' total_devices: type: integer description: Number of Production meters in the site 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 is 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 is 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. devices_reporting: type: integer description: Number of device reporting wh_del: type: integer description: Units produced per interval examples: response: value: system_id: 698905955 granularity: day total_devices: 9 start_at: 1496526300 end_at: 1496529300 items: intervals intervals: - end_at: 1384122700 devices_reporting: 1 wh_del: 40 - end_at: 1384123600 devices_reporting: 1 wh_del: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: 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 examples: response: value: reason: '501' message: - Not Implemented components: schemas: TelemetryGranularity: type: string description: Interval size used when returning telemetry time series. enum: - 5mins - 15mins - day - week securitySchemes: ApiKey: type: apiKey name: key in: query