Enphase Energy Site Level Consumption Monitoring API

The Site Level Consumption Monitoring API from Enphase Energy — 9 operation(s) for site level consumption monitoring.

OpenAPI Specification

enphase-energy-site-level-consumption-monitoring-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: The Enlighten Systems Device Level Production Monitoring Site Level Consumption 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 Consumption Monitoring
paths:
  /api/v4/systems/{system_id}/consumption_lifetime:
    get:
      summary: consumption_lifetime
      description: "Returns a daily time series of energy consumption as measured by the consumption meter installed on the specified system. All measurements are in Watt hours.\n The time series includes one entry for each day from the start_date to the end_date. There are no gaps in the time series. If the response includes trailing zeroes, such as [909, 4970, 0, 0, 0], then no data has been reported for the last three days."
      operationId: getConsumptionLifetime
      tags:
      - Site Level Consumption 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: Requested 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
      responses:
        '200':
          description: consumption_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: When no start_date parameter is specified on the request, defaults to the operational_date of the system. May be null if system has never produced. When a start_date parameter is included in the request, the same is included in the response
                  consumption:
                    type: array
                    description: An array of consumption measurements in Wh, one for each day since consumption metering began, or one for each day of the requested period
                    items:
                      type: integer
                  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: 2016-08-01
                    consumption:
                    - 15422
                    - 15421
                    - 17118
                    - 18505
                    - 18511
                    - 18487
                    meta:
                      status: normal
                      last_report_at: 1470087000
                      last_energy_at: 1470086106
                      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 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
              examples:
                response:
                  value:
                    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
              examples:
                response:
                  value:
                    reason: '501'
                    message:
                    - Not Implemented
  /api/v4/systems/{system_id}/battery_lifetime:
    get:
      summary: battery_lifetime
      description: Returns a daily time series of energy charged into the batteries and energy discharged from the batteries for a system over its lifetime. All measurements are in Watt hours. 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 charged/discharged for the last days in the series.
      operationId: getBatteryLifetime
      tags:
      - Site Level Consumption 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: Requested 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
      responses:
        '200':
          description: battery_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: When no start_date parameter is specified on the request, defaults to the operational_date of the system. May be null if system has never produced. When a start_date parameter is included in the request, the same is included in the response
                  charge:
                    type: array
                    description: An array of charge 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
                  discharge:
                    type: array
                    description: An array of dicharge 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
                  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: 2016-08-01
                    discharge:
                    - 15422
                    - 15421
                    - 17118
                    - 18505
                    - 18511
                    - 18487
                    charge:
                    - 15422
                    - 15421
                    - 17118
                    - 18505
                    - 18511
                    - 18487
                    meta:
                      status: normal
                      last_report_at: 1470087000
                      last_energy_at: 1470086106
                      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 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
              examples:
                response:
                  value:
                    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
              examples:
                response:
                  value:
                    reason: '501'
                    message:
                    - Not Implemented
  /api/v4/systems/{system_id}/energy_import_lifetime:
    get:
      summary: import_lifetime
      description: Returns a daily time series of energy imported to the grid by the system over its lifetime. All measurements are in Watt hours. 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 no energy has been imported for the last days in the series.
      operationId: getEnergyImportLifetime
      tags:
      - Site Level Consumption 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: Requested 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
      responses:
        '200':
          description: import_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: When no start_date parameter is specified on the request, defaults to the operational_date of the system. May be null if system has never produced. When a start_date parameter is included in the request, the same is included in the response
                  import:
                    type: array
                    description: An array of import 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
                  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: 2016-08-01
                    import:
                    - 15422
                    - 15421
                    - 17118
                    - 18505
                    - 18511
                    - 18487
                    meta:
                      status: normal
                      last_report_at: 1470087000
                      last_energy_at: 1470086106
                      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 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
              examples:
                response:
                  value:
                    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
              examples:
                response:
                  value:
                    reason: '501'
                    message:
                    - Not Implemented
  /api/v4/systems/{system_id}/energy_export_lifetime:
    get:
      summary: export_lifetime
      description: Returns a daily time series of energy exported to the grid by the system over its lifetime. All measurements are in Watt-hours. 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 no energy has been exported for the last days in the series.
      operationId: getEnergyExportLifetime
      tags:
      - Site Level Consumption 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: Requested 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
      responses:
        '200':
          description: export_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: When no start_date parameter is specified on the request, defaults to the operational_date of the system. May be null if system has never produced. When a start_date parameter is included in the request, the same is included in the response
                  export:
                    type: array
                    description: An array of export 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
                  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: 2016-08-01
                    export:
                    - 15422
                    - 15421
                    - 17118
                    - 18505
                    - 18511
                    - 18487
                    meta:
                      status: normal
                      last_report_at: 1470087000
                      last_energy_at: 1470086106
                      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:

# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/enphase-energy/refs/heads/main/openapi/enphase-energy-site-level-consumption-monitoring-api-openapi.yml