Enphase Energy System Details API

The System Details API from Enphase Energy — 10 operation(s) for system details.

OpenAPI Specification

enphase-energy-system-details-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: The Enlighten Systems Device Level Production Monitoring System Details 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: System Details
paths:
  /api/v4/systems:
    get:
      summary: Fetch systems
      description: Returns a list of systems for which the user can make API requests. By default, systems are returned in batches of 10. The maximum size is 100.
      operationId: listSystems
      tags:
      - System Details
      parameters:
      - name: page
        in: query
        description: The page to be returned. Default=1, Min=1. For example, if page is set to 2, 2nd page is returned
        schema:
          type: integer
      - name: size
        in: query
        description: Maximum number of records shown per page. Default=10, Min=1, Max=100.  For example, if max is set to 5, 5 records are shown per page
        schema:
          type: integer
      - name: sort_by
        in: query
        description: Returns list of systems sorted by <sort_by> field. To get the ASC order sorted list, user sort_by = id. To get the DESC order sorted list, use sort_by = -id. By default, the list is sorted by ascending order of system ID.
        schema:
          type: string
          enum:
          - id
          - -id
      responses:
        '200':
          description: List of Systems
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                    description: Total number of systems
                  current_page:
                    type: integer
                    description: 'Number of the current page fetched '
                  size:
                    type: integer
                    description: Maximum number of records shown per page. Default=10, Min=1, Max=100.
                  count:
                    type: integer
                    description: Total number of systems actually returned for the current page
                  items:
                    type: string
                    description: Named key of the list data. In this endpoint, it is systems
                  systems:
                    type: array
                    items:
                      properties:
                        system_id:
                          type: integer
                          description: The unique numeric ID of the system
                        name:
                          type: string
                          description: Name of the system
                        public_name:
                          type: string
                          description: Name displayed on the public system page. Available values are All, Residential System, Commercial etc. Default='Residential System'. Only for systems that allow public access.
                        timezone:
                          type: string
                          nullable: true
                          description: Timezone to which the system belongs
                        address:
                          type: object
                          properties:
                            city:
                              type: string
                              description: City in which the system is located
                            state:
                              type: string
                              nullable: true
                              description: State in which the system is located
                            country:
                              type: string
                              nullable: true
                              description: Country in which the system is located
                            postal_code:
                              type: string
                              nullable: true
                              description: Postal Code of the system's location
                          description: Address object for the system. It can contain the following items
                        connection_type:
                          allOf:
                          - $ref: '#/components/schemas/SystemConnectionType'
                          description: Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular
                        energy_lifetime:
                          type: integer
                          description: Deprecated field. The API will always return this field as -1
                        energy_today:
                          type: integer
                          description: Deprecated field. The API will always return this field as -1
                        system_size:
                          type: number
                          format: float
                          description: Deprecated field. The API will always return this field as -1
                        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
                          nullable: true
                          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
                          nullable: true
                          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.
                        attachment_type:
                          type: string
                          allOf:
                          - $ref: '#/components/schemas/MicroinverterAttachmentType'
                          nullable: true
                          description: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
                        interconnect_date:
                          type: string
                          format: date
                          nullable: true
                          description: Date on which the system was approved to connect to the grid
                        reference:
                          type: string
                          description: If the calling user belongs to a company and that company has provided its own identifier for a system, that ID is included here. Otherwise, this attribute is not returned.
                        other_references:
                          type: array
                          items:
                            type: string
                          description: If any other companies have provided their own identifiers for a system, those identifiers are included here. Otherwise, this attribute is not returned.
                    description: 'List of systems. It contains the following:'
              example:
                total: 28
                current_page: 1
                size: 2
                count: 2
                items: systems
                systems:
                - system_id: 698910067
                  name: Enphase System
                  public_name: Residential System
                  timezone: Australia/Sydney
                  address:
                    city: Sydney
                    state: NSW
                    country: AU
                    postal_code: '2127'
                  connection_type: ethernet
                  energy_lifetime: -1
                  energy_today: -1
                  system_size: -1
                  status: micro
                  last_report_at: 1508174262
                  last_energy_at: 1508174172
                  operational_at: 1497445200
                  attachment_type: acm
                  interconnect_date: null
                  reference: '106015287'
                  other_references:
                  - '106015287'
                - system_id: 698906018
                  name: Enphase Public System
                  public_name: Residential System
                  timezone: US/Pacific
                  address:
                    city: Los Angeles
                    state: CA
                    country: US
                    postal_code: '94954'
                  connection_type: ethernet
                  energy_lifetime: -1
                  energy_today: -1
                  system_size: -1
                  status: normal
                  last_report_at: 1508174262
                  last_energy_at: 1508174172
                  operational_at: 1497445200
                  attachment_type: rack_mount
                  interconnect_date: null
                  reference: '106015287'
                  other_references:
                  - '106015287'
        '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
        '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 'The sorting parameter is not supported. Please use id for sorting by Asc or -id for sorting by Desc'
                    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/search:
    post:
      summary: Search and filter systems
      description: Search and filter systems. Provide only valid values in request parameters. Empty values will be ignored. Invalid keys will be rejected.
      operationId: searchSystems
      tags:
      - System Details
      parameters:
      - name: page
        in: query
        description: The page to be returned. Default=1, Min=1, e.g=2
        schema:
          type: integer
      - name: size
        in: query
        description: Maximum number of records shown per page. Default=10, Min=1, Max=1000, e.g=5
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                sort_by:
                  type: string
                  enum:
                  - id
                  - -id
                  description: Returns list of systems sorted by <sort_by> field. To get ASC order sorted list, user sort_by = id. To get DESC order sorted list, use sort_by = -id. By default, the list is sorted by ascending order of system ID.
                system:
                  type: object
                  properties:
                    ids:
                      type: array
                      description: Filter system by particular Ids
                      items:
                        type: integer
                    name:
                      type: string
                      description: Search by name of the System.
                    reference:
                      type: string
                      description: Search by reference of the System.
                    other_reference:
                      type: string
                      description: Search by any other_references of the System.
                    statuses:
                      type: array
                      description: Search by System status.
                      items:
                        type: string
                        enum:
                        - normal
                        - comm
                        - micro
                        - power
                        - meter
                        - battery
                        - storage_idle
                        - meter_issue
                        - enpower
                        - encharge
                        - enpower_issue
                        - encharge_issue
              required:
              - system
      responses:
        '200':
          description: List of Systems
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                    description: Total number of systems available
                  current_page:
                    type: integer
                    description: Current page of the systems result. Default is 1
                  size:
                    type: integer
                    description: Max number of records from API per page is 100. Default is 10.
                  count:
                    type: integer
                    description: Total number of systems actually returned for the current page
                  items:
                    type: string
                    description: Named key of the list data. In this endpoint, it is systems
                  systems:
                    type: array
                    items:
                      properties:
                        system_id:
                          type: integer
                          description: The unique numeric ID of the system
                        name:
                          type: string
                          description: Name of the system
                        public_name:
                          type: string
                          description: Name displayed on the public system page. Available values are All, Residential System, Commercial etc. Default='Residential System'. Only for systems that allow public access.
                        timezone:
                          type: string
                          nullable: true
                          description: Timezone to which the system belongs
                        address:
                          type: object
                          properties:
                            state:
                              type: string
                              nullable: true
                              description: State in which the system is located
                            country:
                              type: string
                              nullable: true
                              description: Country in which the system is located
                            postal_code:
                              type: string
                              nullable: true
                              description: Postal Code of the system's location
                          description: Address object for the system. It can contain the following items
                        connection_type:
                          allOf:
                          - $ref: '#/components/schemas/SystemConnectionType'
                          description: Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular
                        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
                          nullable: true
                          description: Timestamp (in epoch format) at which the system's Envoy last submitted a report
                        last_energy_at:
                          type: integer
                          nullable: true
                          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
                          nullable: true
                          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.
                        attachment_type:
                          type: string
                          allOf:
                          - $ref: '#/components/schemas/MicroinverterAttachmentType'
                          nullable: true
                          description: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
                        interconnect_date:
                          type: string
                          format: date
                          nullable: true
                          description: Date on which the system was approved to connect to the grid
                        energy_lifetime:
                          type: integer
                          description: Deprecated field. The API will always return this field as -1
                        energy_today:
                          type: integer
                          description: Deprecated field. The API will always return this field as -1
                        system_size:
                          type: number
                          format: float
                          description: Deprecated field. The API will always return this field as -1
                        reference:
                          type: string
                          nullable: true
                          description: Company specific identifier for the system when available.
                        other_references:
                          type: array
                          items:
                            type: string
                          description: Additional identifiers provided by other companies, when available.
                    description: List of filtered systems. It contains the following items
              example:
                total: 28
                current_page: 1
                size: 2
                count: 2
                items: systems
                systems:
                - system_id: 698910067
                  name: Enphase System
                  public_name: Residential System
                  timezone: null
                  address:
                    state: null
                    country: null
                    postal_code: null
                  connection_type: ethernet
                  status: micro
                  last_report_at: 1557400231
                  last_energy_at: null
                  operational_at: null
                  attachment_type: bipv
                  interconnect_date: null
                  energy_lifetime: -1
                  energy_today: -1
                  system_size: -1
                - system_id: 698906018
                  name: Enphase Public System
                  public_name: Residential System
                  timezone: US/Pacific
                  address:
                    state: CA
                    country: US
                    postal_code: '94954'
                  connection_type: ethernet
                  status: normal
                  last_report_at: 1508174262
                  last_energy_at: 1508174172
                  operational_at: 1497445200
                  attachment_type: acm
                  interconnect_date: null
                  energy_lifetime: -1
                  energy_today: -1
                  system_size: -1
                  reference: '106015287'
                  other_references:
                  - '106015287'
        '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
        '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: system is missing at Json body location
                    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}:
    get:
      summary: Retrieves a System by id
      description: Retrieves a System by ID
      operationId: getSystemById
      tags:
      - System Details
      parameters:
      - name: system_id
        in: path
        description: The unique numeric ID of the system. If an empty value is passed in the ID, this endpoint behaves as Fetch systems endpoint.
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: System fetched
          content:
            application/json:
              schema:
                type: object
                properties:
                  system_id:
                    type: integer
                    description: The unique numeric ID of the system
                  name:
                    type: string
                    description: Name of the system
                  public_name:
                    type: string
                    description: Name displayed on the public system page. Available values are All, Residential System, Commercial etc. Default='Residential System'. Only for systems that allow public access.
                  timezone:
                    type: string
                    description: Timezone to which the system belongs
                  address:
                    type: object
                    properties:
                      city:
                        type: string
                        description: City in which the system is located
                      state:
                        type: string
                        description: State in which the system is located
                      country:
                        type: string
                        description: Country in which the system is located
                      postal_code:
                        type: string
                        description: Postal Code of the system's location
                    description: Address object for the system. It can contain the following items
                  connection_type:
                    type: string
                    description: Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular
                  energy_lifetime:
                    type: integer
                    description: Deprecated field. The API will always return this field as -1
                  energy_today:
                    type: integer
                    description: Deprecated field. The API will always return this field as -1
                  system_size:
                    type: number
                    format: float
                    description: Deprecated field. The API will always return this field as -1
                  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
                    nullable: true
                    description: Timestamp (in epoch format) at which the system's Envoy last submitted a report
                  last_energy_at:
                    type: integer
                    nullable: true
                    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
                    nullable: true
                    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.
                  attachment_type:
                    type: string
                    nullable: true
                    description: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
                  interconnect_date:
                    type: string
                    format: date
                    nullable: true
                    description: Date on which the system was approved to connect to the grid
                  reference:
                    type: string
                    description: If the calling user belongs to a company and that company has provided its own identifier for a system, that ID is included here. Otherwise, this attribute is not returned.
                  other_references:
                    type: array
                    items:
                      type: string
                    description: If any other companies have provided their own identifiers for a system, those identifiers are included here. Otherwise, this attribute is not returned.
              examples:
                response:
                  value:
                    system_id: 72
                    name: Enphase System
                    public_name: Residential System
                    timezone: America/Los_Angeles
                    address:
                      city: Los Angeles
                      state: CA
                      country: US
                      postal_code: '94954'
                    connection_type: cellular
                    energy_lifetime: -1
                    energy_today: -1
                    system_size: -1
                    status: normal
                    last_report_at: 1445619615
                    last_energy_at: 1445619033
                    operational_at: 1357023600
                    attachment_type: acm
                    interconnect_date: 2012-10-13
                    reference: '106015287'
                    other_references:
                    - '106015287'
        '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:
     

# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/enphase-energy/refs/heads/main/openapi/enphase-energy-system-details-api-openapi.yml