---
title: "Retrieves telemetry for all batteries for a system"
method: GET
path: "/api/v4/systems/{system_id}/telemetry/battery"
tags: ["Site Level Consumption Monitoring"]
---

# Retrieves telemetry for all batteries for a system

`GET /api/v4/systems/{system_id}/telemetry/battery`

## Request

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

Retrieves telemetry for all the batteries of a system. 
If no start_at is specified, defaults to midnight today, in the timezone of the system. If you request a start date earlier than when the system first reported data, we use midnight of the first reported date instead. The first reported date is the later of the system’s First Interval End Date or Interconnection Date.
The end_at is calculated as the minimum of the time of the request and (start time + granularity). 
The meaning of granularity is as follow:

If granularity is 15mins, maximum 1 interval will appear in response. If granularity is day, maximum 96 intervals, and if granularity is week, maximum 672 intervals,  will appear in response where each interval is of 15 mins duration.
 
 The requested start date must be within 2 years from current date. 
 By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response. 
By default end_at will appear in response. If end_date parameter is passed in the url then end_date field will appear in response. Empty list will be returned if the last interval < requested start time < current time.

## Path parameters

- `system_id` integer, required

## Query parameters

- `start_at` integer
- `granularity` '5mins' | '15mins' | 'day' | 'week'

## Response `200`

Telemetry for batteries

- object
  - `system_id` integer: The unique numeric ID of the system
  - `granularity` string: The granularity of the telemetry data. Possible values are 'week', 'day', '15mins', '5mins'. Default is 'day'
  - `total_devices` integer: Number of Batteries in the site
  - `start_at` integer: Start Time of the data series. Either Start_date or start_at will be present. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response.
  - `end_at` integer: End Time of the data series. Either end_date or end_at will be present. By default end_at will appear in response. If end_date parameter is passed in the url, then end_date field will appear in response.
  - `items` string: The list key 'intervals'
  - `intervals` object[]
    - `end_at` integer: End time of the telemetry interval.
    - `charge` object
      - `enwh` integer: Energy into the battery during the interval
      - `devices_reporting` integer: Number of devices reporting
    - `discharge` object
      - `enwh` integer: Energy discharged from the battery during the interval
      - `devices_reporting` integer: Number of devices reporting
    - `soc` object
      - `percent` integer: Battery soc percentage
      - `devices_reporting` integer: Number of devices reporting
  - `last_reported_aggregate_soc` string: Last reported aggregate soc percentage

## Other responses

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

---

[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)
