canonical: https://jentic.com/apis/enphaseenergy.com/enphase

# Enphaseenergy Enphase Monitoring API

The Enphase Monitoring API gives developers access to live and historical telemetry from Enphase solar systems, including microinverters, batteries, and consumption meters. The v4 surface covers system discovery and search, device inventory, production and consumption meter readings, alarms and events, and billing-grade telemetry suitable for tariff and net-metering analytics. With 47 endpoints, it is one of the most detailed solar telemetry APIs available and is the canonical source of truth for Enphase-installed systems.

## For AI agents

Read live and historical solar production, consumption, storage, and alarm data from Enphase-monitored PV and battery systems.

## Scope

Does not handle solar system design, installer billing, or grid-operator dispatch - use for telemetry, alarms, and device inventory on installed Enphase systems only.

## Capabilities

- List solar systems linked to the authenticated installer or homeowner account
- Search systems by attributes such as serial number, address, or system status
- Pull production, consumption, and storage meter readings for any system
- Read lifetime energy totals for production and consumption analytics
- Retrieve open alarms and historical events for diagnostics and field service
- Inventory the devices (microinverters, batteries, gateways) attached to a system
- Look up a system ID by site or installer reference for downstream calls

## Use cases

### Solar Production Dashboard

Build a homeowner or installer dashboard that visualises live and historical PV production, consumption, and storage by reading the Enphase v4 meter endpoints. Per-interval data underpins tariff comparisons and self-consumption metrics, while lifetime totals support warranty and ROI reporting. Most installer portals consume this API for their daily operational view.

Example prompt: Call GET `/api/v4/systems/{system_id}/production_meter_readings` for the last 24 hours and chart 15-minute interval kWh values.

### Field Service Alarm Triage

Field service teams pull open alarms with GET `/api/v4/systems/{system_id}/open_events` and historical events with GET `/api/v4/systems/{system_id}/events` to triage faults before dispatch. Combining alarm context with device inventory from GET `/api/v4/systems/{system_id}/devices` lets technicians pre-stage replacement microinverters and batteries.

Example prompt: Call GET `/api/v4/systems/{system_id}/open_events` for system 1234567 and summarise affected devices and severity.

### Battery and Storage Analytics

Commercial and residential storage operators read GET `/api/v4/systems/{system_id}/storage_meter_readings` to track Encharge battery cycling, state of charge, and energy throughput. Pair with consumption readings to build self-consumption and load-shifting analytics. Useful for utilities and aggregators running virtual power plant programs.

Example prompt: Pull storage meter readings for the past 7 days from GET `/api/v4/systems/{system_id}/storage_meter_readings` and compute average daily throughput.

### AI Agent Solar Assistant Through Jentic

An AI assistant answers homeowner questions like 'how much did my system produce yesterday?' by discovering the Enphase production endpoint through Jentic, loading its schema, and executing the call with the homeowner's system ID. Enphase OAuth tokens and the API key stay in your Jentic One instance and never enter the agent context.

Example prompt: Search Jentic for 'get yesterday's solar production', load GET `/api/v4/systems/{system_id}/production_meter_readings`, and execute it for the user's system.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v4/systems` | List solar systems on the account |
| POST | `/api/v4/systems/search` | Search systems by criteria |
| GET | `/api/v4/systems/{system_id}/summary` | System summary including current status |
| GET | `/api/v4/systems/{system_id}/production_meter_readings` | Production meter readings |
| GET | `/api/v4/systems/{system_id}/consumption_meter_readings` | Consumption meter readings |
| GET | `/api/v4/systems/{system_id}/storage_meter_readings` | Battery storage meter readings |
| GET | `/api/v4/systems/{system_id}/open_events` | Open alarms on a system |
| GET | `/api/v4/systems/{system_id}/devices` | Device inventory for a system |

## Key resources

- **Systems** — List, search, and read summary data for Enphase-monitored solar systems.
- **Devices** — Inventory the microinverters, batteries, and gateways attached to a system.
- **Meter Readings** — Production, consumption, and storage meter readings at interval and lifetime resolution.
- **Events and Alarms** — Open alarms, historical events, and event-type metadata for fault diagnosis.
- **RGM Stats** — Revenue-grade meter statistics for billing and net-metering use cases.

## Why Jentic

- **Setup:** Wiring Enphase by hand means combining its OAuth2 authorization-code tokens with the separate 'key' API-key header, refreshing the tokens, and building your own retries against api.enphaseenergy.com. Through Jentic you install once, import the Enphase Monitoring API from the API Directory, store the OAuth token and key once, and your agent calls it.
- **Permission scoping:** Enphase puts the system id in the URL path (`/api/v4/systems/{system_id}/...`), so a rule can pin your agent to one system: it can read that system's summary, meter readings, and events and nothing else. You choose the operations it may call, so write operations like updating battery settings are not included unless you add them.
- **Credential handling:** Your Enphase OAuth token and API key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get solar production for a site' or 'list open events on a system', and Jentic returns the matching Enphase operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Tesla Fleet API** — First-party Tesla Powerwall and solar telemetry
- **Enode** — Unified EV and charger API to pair with home solar telemetry
- **OpenWeatherMap** — Forecast irradiance to predict solar output

## FAQ

### What authentication does the Enphase Monitoring API use?

The Enphase v4 API requires both OAuth 2.0 (for the user-bound access token) and an API key passed in the 'key' header. Each request must satisfy both schemes. Through Jentic, both credentials are stored encrypted in your Jentic One instance and never enter the agent context.

### Can I read live solar production data with the Enphase API?

Yes. GET `/api/v4/systems/{system_id}/production_meter_readings` returns interval-level production data, while GET `/api/v4/systems/{system_id}/summary` gives the current status and lifetime totals. Pair with the consumption endpoint to build a complete energy view.

### How do I find a system's ID?

Either list systems with GET `/api/v4/systems` and filter on the response, or call GET `/api/v4/systems/retrieve_system_id` to look up an ID by reference. POST `/api/v4/systems/search` supports more advanced filtering criteria.

### What are the rate limits for the Enphase Monitoring API?

Enphase enforces plan-based daily request and concurrency limits. The OpenAPI spec does not embed numeric values; refer to the developer plan attached to your API key for the current quota. The API returns 429 when limits are exceeded.

### How do I check open alarms on a system through Jentic?

Search Jentic for 'list open alarms for an Enphase system', load GET `/api/v4/systems/{system_id}/open_events`, and execute it with the system_id. Get started with Jentic One, the self-hosted execution layer.

### Does the Enphase API expose battery storage data?

Yes. GET `/api/v4/systems/{system_id}/storage_meter_readings` returns Encharge battery throughput at interval resolution. Use it with consumption and production readings for self-consumption and time-of-use analytics.

### Can I limit what my agent is allowed to do with the Enphase Monitoring API?

Yes. Because you run Jentic One yourself, your own rules decide which Enphase operations and credentials the agent may use. Enphase puts the system id in the URL path, such as `/api/v4/systems/{system_id}/production_meter_readings`, so you can pin the agent to a single system and let it read only that system's summary, meter readings, and open events. You choose the exact operations it may call, so write actions like changing battery settings stay off the list unless you add them.
