Enphase Energy System Details API

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

Operations 12

GET /api/v4/systems Fetch systems
POST /api/v4/systems/search Search and filter systems
GET /api/v4/systems/{system_id} Retrieves a System by id
GET /api/v4/systems/{system_id}/summary Retrieves a system summary
GET /api/v4/systems/{system_id}/devices Retrieves devices for a given system
GET /api/v4/systems/retrieve_system_id Retrieve system for a given envoy serial number
GET /api/v4/systems/{system_id}/events To retrieve the list of events for a site
GET /api/v4/systems/{system_id}/alarms To retrieve the list of alarms for a site
GET /api/v4/systems/event_types To retrieve the list of event_type_id along with event_description and recommended_action
GET /api/v4/systems/{system_id}/open_events To retrieve the list of all open events of a site
GET /api/v4/systems/{system_id}/open_alarms To retrieve the list of all open alarms of a site
GET /api/v4/systems/inverters_summary_by_envoy_or_site inverters_summary_by_envoy_or_site

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/enphase-system-details-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

enphase-system-details-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monitoring System Details API
  version: v4
servers:
- url: https://api-qa2.enphaseenergy.com
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.
      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
                          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
                          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.
                        attachment_type:
                          type: string
                          description: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
                        interconnect_date:
                          type: integer
                          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: null
                  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: null
                  interconnect_date: null
        '401':
          description: Authentication Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error Type
                  details:
                    type: string
                    description: Error Details
                  code:
                    type: integer
                    description: Error Code
              example:
                message: Not Authorized
                details: User is not authorized
                code: 401
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '405'
                message:
                - Method not allowed
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error Type
                  details:
                    type: string
                    description: Error Details
                  code:
                    type: integer
                    description: Error Code
              example:
                message: Unprocessable Entity
                details: Invalid request because of '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
              example:
                message: Too Many Requests
                details: Usage limit exceeded for plan Kilowatt
                code: 429
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '501'
                message:
                - Not Implemented
  /api/v4/systems/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.
      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
      - name: live_stream
        in: query
        description: Indicates whether the live_stream field should be included in the response (true to include, false to omit).
        schema:
          type: boolean
      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
                          description: Timezone to which the system belongs
                        address:
                          type: object
                          properties:
                            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
                        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.
                        attachment_type:
                          type: string
                          description: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
                        interconnect_date:
                          type: integer
                          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
                        live_stream:
                          type: string
                          description: Shows the status live stream via Kafka is enabled or not for the site => "enabled" / "disabled"
                    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: null
                  interconnect_date: null
                  energy_lifetime: -1
                  energy_today: -1
                  system_size: -1
                  live_stream: enabled
                - 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: null
                  interconnect_date: null
                  energy_lifetime: -1
                  energy_today: -1
                  system_size: -1
                  reference: '106015287'
                  other_references:
                  - '106015287'
                  live_stream: disabled
        '401':
          description: Authentication Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error Type
                  details:
                    type: string
                    description: Error Details
                  code:
                    type: integer
                    description: Error Code
              example:
                message: Not Authorized
                details: User is not authorized
                code: 401
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '405'
                message:
                - Method not allowed
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error Type
                  details:
                    type: string
                    description: Error Details
                  code:
                    type: integer
                    description: Error Code
              example:
                message: Unprocessable Entity
                details: 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
              example:
                message: Too Many Requests
                details: Usage limit exceeded for plan Kilowatt
                code: 429
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '501'
                message:
                - Not Implemented
      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
  /api/v4/systems/{system_id}:
    get:
      summary: Retrieves a System by id
      description: Retrieves a System by ID
      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
                    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.
                  attachment_type:
                    type: string
                    description: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
                  interconnect_date:
                    type: integer
                    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.
              example:
                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
              example:
                message: Not Authorized
                details: User is not authorized
                code: 401
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error Type
                  details:
                    type: string
                    description: Error Details
                  code:
                    type: integer
                    description: Error Code
              example:
                message: Forbidden
                details: Not authorized to access this resource
                code: 403
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error Type
                  details:
                    type: string
                    description: Error Details
                  code:
                    type: integer
                    description: Error Code
              example:
                message: Not Found
                details: System not found for {:id=>"1"}
                code: 404
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '405'
                message:
                - Method not allowed
        '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
              example:
                message: Too Many Requests
                details: Usage limit exceeded for plan Kilowatt
                code: 429
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '501'
                

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