Enphase Energy System Configurations API
The System Configurations API from Enphase Energy — 4 operation(s) for system configurations.
The System Configurations API from Enphase Energy — 4 operation(s) for system configurations.
openapi: 3.0.0
info:
title: The Enlighten Systems Device Level Production Monitoring System Configurations 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 Configurations
paths:
/api/v4/systems/config/{system_id}/battery_settings:
get:
summary: Returns the current battery settings of a system
description: Returns the current battery settings of a system
operationId: getSystemBatterySettings
parameters:
- name: system_id
in: path
description: The unique numeric id of the system
required: true
schema:
type: string
tags:
- System Configurations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
system_id:
type: integer
battery_mode:
allOf:
- $ref: '#/components/schemas/BatteryMode'
description: Current battery mode of the system. Possible values are Savings Mode, Full Backup, and Self-consumption
reserve_soc:
type: integer
description: Reserve soc for the current mode
energy_independence:
type: string
description: 'Energy independence after peak hours enabled/disabled . Enabled: Battery will discharge to save money during peak hours when electricity rates are high. Once that is done, energy independence is prioritized. This will increase the energy self-sufficiency until the reserve soc is hit. Battery will charge from solar in the morning to get ready for the next period Disabled: Battery will discharge only during peak hours when electricity rates are high. During other times, battery will be idle or will charge from solar in the morning to get ready for the next period'
charge_from_grid:
type: string
description: 'Charge battery from grid enabled/disabled. Enabled: Battery may also charge from the grid when in full backup mode or when battery charge is below the reserve capacity in savings or self-consumption mode'
battery_shutdown_level:
type: integer
description: Level at which battery shutdowns to conserve energy. Battery restarts by using the conserved energy when the utility grid restores power or solar panels start producing energy
examples:
response:
value:
system_id: 1765
battery_mode: Self-consumption
reserve_soc: 95
energy_independence: enabled
charge_from_grid: disabled
battery_shutdown_level: 13
'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
'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
examples:
response:
value:
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
examples:
response:
value:
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
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 doesn't have encharges
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
period:
type: string
description: Quota exceeded for minute/month
period_start:
type: integer
description: Starting period timestamp
period_end:
type: integer
description: Ending period timestamp
limit:
type: integer
description: Limit count for the period
examples:
response:
value:
message: Too Many Requests
details: Usage limit exceeded for plan Kilowatt
code: 429
period: minute
period_start: 1623825660
period_end: 1623825720
limit: 5
'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
put:
summary: Updates the current battery settings of a system
description: Updates the current battery settings of a system.
operationId: updateSystemBatterySettings
parameters:
- name: system_id
in: path
description: The unique numeric id of the system
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
battery_mode:
allOf:
- $ref: '#/components/schemas/BatteryMode'
description: To update battery mode of the system (case sensitive) - "Savings Mode" / "Self-consumption" / "Full Backup"
reserve_soc:
type: integer
description: Reserve soc for the current mode - cannot be less than vls
energy_independence:
type: string
description: 'Energy independence after peak hours "enabled"/"disabled" . Enabled: Battery will discharge to save money during peak hours when electricity rates are high. Once that is done, energy independence is prioritized. This will increase the energy self-sufficiency until the reserve soc is hit. Battery will charge from solar in the morning to get ready for the next period Disabled: Battery will discharge only during peak hours when electricity rates are high. During other times, battery will be idle or will charge from solar in the morning to get ready for the next period'
tags:
- System Configurations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
system_id:
type: integer
battery_mode:
allOf:
- $ref: '#/components/schemas/BatteryMode'
description: Current battery mode of the system
reserve_soc:
type: integer
description: Reserve soc for the current mode
energy_independence:
type: string
description: 'Energy independence after peak hours enabled/disabled . Enabled: Battery will discharge to save money during peak hours when electricity rates are high. Once that is done, energy independence is prioritized. This will increase the energy self-sufficiency until the reserve soc is hit. Battery will charge from solar in the morning to get ready for the next period Disabled: Battery will discharge only during peak hours when electricity rates are high. During other times, battery will be idle or will charge from solar in the morning to get ready for the next period'
charge_from_grid:
type: string
description: 'Charge battery from grid enabled/disabled. Enabled: Battery may also charge from the grid when in full backup mode or when battery charge is below the reserve capacity in savings or self-consumption mode'
battery_shutdown_level:
type: integer
description: Level at which battery shutdowns to conserve energy. Battery restarts by using the conserved energy when the utility grid restores power or solar panels start producing energy
examples:
response:
value:
system_id: 1765
battery_mode: Self-consumption
reserve_soc: 95
energy_independence: enabled
charge_from_grid: disabled
battery_shutdown_level: 13
'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
'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
examples:
response:
value:
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
examples:
response:
value:
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
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 doesn't have encharge
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
period:
type: string
description: Quota exceeded for minute/month
period_start:
type: integer
description: Starting period timestamp
period_end:
type: integer
description: Ending period timestamp
limit:
type: integer
description: Limit count for the period
examples:
response:
value:
message: Too Many Requests
details: Usage limit exceeded for plan Kilowatt
code: 429
period: minute
period_start: 1623825660
period_end: 1623825720
limit: 5
'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/config/{system_id}/storm_guard:
get:
summary: Returns the current storm guard settings of a system
description: Returns the current storm guard settings of a system
operationId: getSystemStormGuard
parameters:
- name: system_id
in: path
description: The unique numeric id of the system
required: true
schema:
type: string
tags:
- System Configurations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
system_id:
type: integer
storm_guard_status:
type: string
description: Overrides your battery profile to full backup mode when a severe weather condition alert is issued in the localitym
storm_alert:
type: string
description: True if severe weather condition alert is issued in the locality
examples:
response:
value:
system_id: 1765
storm_guard_status: enabled
storm_alert: 'false'
'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
'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
examples:
response:
value:
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
examples:
response:
value:
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
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 doesn't have encharges
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
period:
type: string
description: Quota exceeded for minute/month
period_start:
type: integer
description: Starting period timestamp
period_end:
type: integer
description: Ending period timestamp
limit:
type: integer
description: Limit count for the period
examples:
response:
value:
message: Too Many Requests
details: Usage limit exceeded for plan Kilowatt
code: 429
period: minute
period_start: 1623825660
period_end: 1623825720
limit: 5
'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
put:
summary: Updates the current storm guard settings of a system
description: Updates the current storm guard status of a system.
operationId: updateSystemStormGuard
parameters:
- name: system_id
in: path
description: The unique numeric id of the system
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
storm_guard_status:
type: string
description: Overrides your battery profile to full backup mode when a severe weather condition alert is issued in the locality, can be enabled/disabled
required:
- storm_guard_status
tags:
- System Configurations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
system_id:
type: integer
storm_guard_status:
type: string
description: Overrides your battery profile to full backup mode when a severe weather condition alert is issued in the locality
storm_alert:
type: string
description: True if severe weather condition alert is issued in the locality
examples:
response:
value:
system_id: 1765
storm_guard_status: Enabled (Inactive)
storm_alert: 'false'
'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
'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
examples:
response:
value:
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
examples:
response:
value:
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
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 doesn't have encharge
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
period:
type: string
description: Quota exceeded for minute/month
period_start:
type: integer
description: Starting period timestamp
period_end:
type: integer
description: Ending period timestamp
limit:
type: integer
description: Limit count for the period
examples:
response:
value:
message: Too Many Requests
details: Usage limit exceeded for plan Kilowatt
code: 429
period: minute
period_start: 1623825660
period_end: 1623825720
limit: 5
'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/config/{system_id}/grid_status:
get:
summary: Returns the current grid status of a system
description: Returns the current grid status of a system
operationId: getSystemGridStatus
parameters:
- name: system_id
in: path
description: The unique numeric id of the system
required: true
schema:
type: string
tags:
- System Configurations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
system_id:
type: integer
grid_state:
type: string
description: Indicates whether the site is On Grid, Off Grid or grid status of site is Unknown
last_report_date:
type: integer
description: Timestamp (in epoch format) at which the system's Envoy last submitted a report
examples:
response:
value:
system_id: 1765
grid_state: On Grid
last_report_date: 1676029267
'401':
description: Authentication Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/enphase-energy/refs/heads/main/openapi/enphase-energy-system-configurations-api-openapi.yml