---
title: "Search and filter systems"
method: POST
path: "/api/v4/systems/search"
tags: ["System Details"]
---

# Search and filter systems

`POST /api/v4/systems/search`

## Request

- Base URL: `https://api-qa2.enphaseenergy.com`
- URL: `https://api-qa2.enphaseenergy.com/api/v4/systems/search`
- Auth: none declared
- TypeScript: <https://skmtc.dev/enphase/apis/monitoring-api/docs/api/v4/systems/search/post.ts> (a function with typed inputs; its response is checked against the schema)

Search and filter systems. Provide only valid values in request parameters. Empty values will be ignored. Invalid keys will be rejected.

## Query parameters

- `page` integer
- `size` integer
- `live_stream` boolean

## Request body

- object
  - `sort_by` 'id' | '-id': 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` object, required
    - `ids` integer[]: Filter system by particular Ids
    - `name` string: Search by name of the System.
    - `reference` string: Search by reference of the System.
    - `other_reference` string: Search by any other_references of the System.
    - `statuses` string[]: Search by System status.

## Response `200`

List of Systems

- object
  - `total` integer: Total number of systems available
  - `current_page` integer: Current page of the systems result. Default is 1
  - `size` integer: Max number of records from API per page is 100. Default is 10.
  - `count` integer: Total number of systems actually returned for the current page
  - `items` string: Named key of the list data. In this endpoint, it is systems
  - `systems` object[]: List of filtered systems. It contains the following items
    - `system_id` integer: The unique numeric ID of the system
    - `name` string: Name of the system
    - `public_name` string: 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` string: Timezone to which the system belongs
    - `address` object: Address object for the system. It can contain the following items
      - `state` string: State in which the system is located
      - `country` string: Country in which the system is located
      - `postal_code` string: Postal Code of the system's location
    - `connection_type` string: Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular
    - `status` string: System's status. Corresponding Enlighten values can be found in table added at the end of page.
    - `stage` integer: Current stage of the system. Stage values indicate the system's progression through the activation process.
    - `last_report_at` integer: Timestamp (in epoch format) at which the system's Envoy last submitted a report
    - `last_energy_at` integer: 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` integer: 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` string: Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount
    - `interconnect_date` integer: Date on which the system was approved to connect to the grid
    - `energy_lifetime` integer: Deprecated field. The API will always return this field as -1
    - `energy_today` integer: Deprecated field. The API will always return this field as -1
    - `system_size` number, float: Deprecated field. The API will always return this field as -1
    - `live_stream` string: Shows the status live stream via Kafka is enabled or not for the site => "enabled" / "disabled"

## Other responses

- `401`: Authentication Error
- `405`: Method Not Allowed
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `501`: Not Implemented

## Changes

- **2026-11-06** `a783ff728669`: 1 info
  - added the new optional `query` request parameter `live_stream`

[Operation history](https://skmtc.dev/enphase/apis/monitoring-api/changes/api/v4/systems/search/post.md)

---

[API](https://skmtc.dev/enphase/apis/monitoring-api.md) - [All operations](https://skmtc.dev/enphase/apis/monitoring-api/llms.txt) - [OpenAPI document](https://skmtc.dev/enphase/apis/monitoring-api/revisions/a783ff728669?raw)
