### GET /api/v4/systems Source: https://developer-v4.enphase.com/docs/release_notes Retrieves a list of systems associated with the user's account. ```APIDOC ## GET /api/v4/systems ### Description Retrieves a paginated list of systems associated with the authenticated user's account. This endpoint provides an overview of the user's systems, including their size and energy production metrics. ### Method GET ### Endpoint `/api/v4/systems` ### Parameters #### Query Parameters - **page_size** (integer) - Optional - The number of systems to return per page. Defaults to 100. - **page_number** (integer) - Optional - The specific page number to retrieve. ### Request Example ``` GET /api/v4/systems?page_size=50&page_number=2 ``` ### Response #### Success Response (200) - **systems** (array) - An array of system objects. - **system_id** (string) - The unique identifier of the system. - **system_name** (string) - The name of the system. - **reference** (string) - Optional - The company's own identifier for the system. - **other_references** (array) - Optional - An array of identifiers provided by other companies for the system. - **energy_lifetime_Wh** (number) - The total energy generated by the system during its lifetime in Wh. - **energy_today_Wh** (number) - The energy generated by the system today in Wh. - **system_size_W** (number) - The size of the system in Watts (W). - **pagination** (object) - **total_systems** (integer) - The total number of systems available. - **page_size** (integer) - The number of systems returned per page. - **current_page** (integer) - The current page number. - **total_pages** (integer) - The total number of pages available. #### Response Example ```json { "systems": [ { "system_id": "sys123", "system_name": "My Solar System", "reference": "REF456", "other_references": ["ORGREF789"], "energy_lifetime_Wh": 15000000, "energy_today_Wh": 45000, "system_size_W": 10000 } ], "pagination": { "total_systems": 250, "page_size": 100, "current_page": 1, "total_pages": 3 } } ``` ``` -------------------------------- ### GET /systems/{system_id}/devices/micros/{serial_no Source: https://developer-v4.enphase.com/docs/release_notes No description -------------------------------- ### HTTP Request for OAuth Token Source: https://developer-v4.enphase.com/docs/quickstart This example illustrates the raw HTTP request format for obtaining an OAuth token from the Enphase API. It specifies the GET method, host, and required authorization header. ```http GET /oauth/token?grant_type=refresh_token&refresh_token=unique_refresh_token HTTP/1.1 Host: api.enphaseenergy.com Authorization: Basic ZjJhNDc5ZjNjNjA2N2YwZDk1MTdjYWRhZTdmMDBiNDc6NTAzNWNhNjRjMTNmNzkzYTdjMWJjYTQzNTU5MWQ1ZWE= ``` -------------------------------- ### GET /systems/config/{system_id}/storm_guard Source: https://developer-v4.enphase.com/docs/release_notes Retrieves the storm guard settings for a specific system. ```APIDOC ## GET /systems/config/{system_id}/storm_guard ### Description Retrieves the current storm guard settings for a specified system. This indicates whether storm guard is enabled and its current configuration. ### Method GET ### Endpoint `/systems/config/{system_id}/storm_guard` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. #### Query Parameters None ### Request Example ``` GET /systems/config/12345/storm_guard ``` ### Response #### Success Response (200) - **storm_guard_enabled** (boolean) - Indicates if storm guard is currently enabled. - **backup_reserve_percent** (integer) - The current percentage of battery backup reserve. #### Response Example ```json { "storm_guard_enabled": true, "backup_reserve_percent": 50 } ``` ``` -------------------------------- ### Request OAuth Token via Python http.client Source: https://developer-v4.enphase.com/docs/quickstart This Python example uses the built-in http.client library to make an HTTP GET request to the Enphase API for an OAuth token. It shows how to establish a connection, set headers, and print the decoded response. ```python import http.client conn = http.client.HTTPSConnection("api.enphaseenergy.com") payload = '' headers = { 'Authorization': 'Basic ZjJhNDc5ZjNjNjA2N2YwZDk1MTdjYWRhZTdmMDBiNDc6NTAzNWNhNjRjMTNmNzkzYTdjMWJjYTQzNTU5MWQ1ZWE=' } conn.request("GET", "/oauth/token?grant_type=refresh_token&refresh_token=unique_refresh_token", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` -------------------------------- ### API Endpoint for Fetching Devices with Product Name Source: https://developer-v4.enphase.com/docs/release_notes An example of a request to the fetch devices endpoint, which now includes the 'product_name' field in its response. This can be useful for identifying specific device models. ```json { "device_id": "some_device_id", "product_name": "IQ Gateway", "serial_number": "1234567890" } ``` -------------------------------- ### GET /api/v4/systems/{system_id}/devices Source: https://developer-v4.enphase.com/docs/release_notes Retrieves a list of devices associated with a specific system, including gateway firmware versions. ```APIDOC ## GET /api/v4/systems/{system_id}/devices ### Description Retrieves a list of devices associated with a specific system. This includes information about gateways and their firmware versions. ### Method GET ### Endpoint `/api/v4/systems/{system_id}/devices` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. ### Request Example ``` GET /api/v4/systems/12345/devices ``` ### Response #### Success Response (200) - **gateways** (array) - An array of gateway objects. - **serial_number** (string) - The serial number of the gateway. - **emu_sw_version** (string) - The firmware version of the gateway. #### Response Example ```json { "gateways": [ { "serial_number": "GW789", "emu_sw_version": "4.5.1" } ] } ``` ``` -------------------------------- ### GET /systems/{system_id}/telemetry/production_micro Source: https://developer-v4.enphase.com/docs/release_notes Retrieves production microinverter telemetry data for a specific system, with support for 5-minute intervals. ```APIDOC ## GET /systems/{system_id}/telemetry/production_micro ### Description Retrieves production telemetry data from microinverters for a given system. Supports 5-minute intervals when specified. ### Method GET ### Endpoint `/systems/{system_id}/telemetry/production_micro` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. #### Query Parameters - **interval_duration** (integer) - Optional - The desired interval duration for telemetry data in seconds. Set to 300 for 5-minute intervals. ### Request Example ``` GET /systems/12345/telemetry/production_micro?interval_duration=300 ``` ### Response #### Success Response (200) - **production_W** (number) - The power output in Watts (W) from microinverters for the specified interval. - **timestamp** (integer) - The Unix timestamp of the telemetry data point. #### Response Example ```json { "production_W": 250, "timestamp": 1678886400 } ``` ``` -------------------------------- ### GET /systems/{system_id}/energy_import_telemetry Source: https://developer-v4.enphase.com/docs/release_notes Retrieves real-time energy import telemetry data for a specific system. ```APIDOC ## GET /systems/{system_id}/energy_import_telemetry ### Description Retrieves real-time energy import telemetry data for a given system. This data shows the current rate of energy being imported from the grid. ### Method GET ### Endpoint `/systems/{system_id}/energy_import_telemetry` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. #### Query Parameters - **interval_duration** (integer) - Optional - The desired interval duration for telemetry data in seconds (e.g., 300 for 5 minutes). Defaults to a standard interval if not provided. ### Request Example ``` GET /systems/12345/energy_import_telemetry?interval_duration=300 ``` ### Response #### Success Response (200) - **current_import_rate_W** (number) - The current rate of energy import in Watts (W). - **timestamp** (integer) - The Unix timestamp of the telemetry data point. #### Response Example ```json { "current_import_rate_W": 500, "timestamp": 1678886400 } ``` ``` -------------------------------- ### System Endpoints Field Behavior Source: https://developer-v4.enphase.com/docs/release_notes The `GET /api/v4/systems` and `POST /api/v4/systems/search` endpoints will consistently return `energy_lifetime`, `energy_today`, and `system_size` as -1. ```APIDOC ## System Endpoints (Fixed Field Values) ### Description This applies to the `GET /api/v4/systems` and `POST /api/v4/systems/search` endpoints. The fields `energy_lifetime`, `energy_today`, and `system_size` will always be returned as -1, regardless of the system's actual data. ### Method GET, POST ### Endpoint - `/api/v4/systems` - `/api/v4/systems/search` ### Response #### Success Response (200) - **energy_lifetime** (integer) - Always returns -1. - **energy_today** (integer) - Always returns -1. - **system_size** (integer) - Always returns -1. - ... (other system fields) #### Response Example ```json { "energy_lifetime": -1, "energy_today": -1, "system_size": -1, "system_id": "sys-123" } ``` ``` -------------------------------- ### Fetch Enphase System Data via HTTP Request Source: https://developer-v4.enphase.com/docs/quickstart This snippet shows how to make a GET request to the Enphase API to retrieve system data. It requires an API key and an authorization token. The response is typically in JSON format. ```curl curl --location -g --request GET 'https://api.enphaseenergy.com/api/v4/systems?key=b2b2fd806ed13efb463691b436957798' \ --header 'Authorization: Bearer unique_access_token' ``` ```http GET /api/v4/systems?key=b2b2fd806ed13efb463691b436957798 HTTP/1.1 Host: api.enphaseenergy.com Authorization: Bearer unique_access_token ``` ```php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://api.enphaseenergy.com/api/v4/systems?key=b2b2fd806ed13efb463691b436957798', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Authorization: Bearer unique_access_token' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ``` ```python import http.client conn = http.client.HTTPSConnection("api.enphaseenergy.com") payload = '' headers = { 'Authorization': 'Bearer unique_access_token' } conn.request("GET", "/api/v4/systems?key=b2b2fd806ed13efb463691b436957798", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` -------------------------------- ### HTTP Request Snippet for Enphase API Source: https://developer-v4.enphase.com/docs/quickstart This example demonstrates the raw HTTP request format for interacting with the Enphase API. It outlines the POST method, target URL, host, and required Authorization header for obtaining an access token. This is useful for understanding the underlying communication. ```http POST /oauth/token?grant_type=authorization_code&redirect_uri=https://api.enphaseenergy.com/oauth/redirect_uri&code=2TJk7M HTTP/1.1 Host: api.enphaseenergy.com Authorization: Basic ZjJhNDc5ZjNjNjA2N2YwZDk1MTdjYWRhZTdmMDBiNDc6NTAzNWNhNjRjMTNmNzkzYTdjMWJjYTQzNTU5MWQ1ZWE= ``` -------------------------------- ### GET /systems/{system_id}/telemetry/production_meter Source: https://developer-v4.enphase.com/docs/release_notes Retrieves production meter telemetry data for a specific system, with support for 5-minute intervals. ```APIDOC ## GET /systems/{system_id}/telemetry/production_meter ### Description Retrieves production meter telemetry data for a given system. Supports 5-minute intervals when specified. ### Method GET ### Endpoint `/systems/{system_id}/telemetry/production_meter` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. #### Query Parameters - **interval_duration** (integer) - Optional - The desired interval duration for telemetry data in seconds. Set to 300 for 5-minute intervals. ### Request Example ``` GET /systems/12345/telemetry/production_meter?interval_duration=300 ``` ### Response #### Success Response (200) - **production_Wh** (number) - The energy produced in Watt-hours (Wh) for the specified interval. - **timestamp** (integer) - The Unix timestamp of the telemetry data point. #### Response Example ```json { "production_Wh": 1500, "timestamp": 1678886400 } ``` ``` -------------------------------- ### GET /api/v4/systems Source: https://developer-v4.enphase.com/docs/quickstart Retrieves a list of Enphase energy systems associated with the authenticated user. Includes query parameters for filtering and pagination. ```APIDOC ## GET /api/v4/systems ### Description Retrieves a list of Enphase energy systems associated with the authenticated user. Includes query parameters for filtering and pagination. ### Method GET ### Endpoint /api/v4/systems ### Parameters #### Query Parameters - **key** (string) - Required - Your unique API key. ### Request Example ```json { "request": "curl --location -g --request GET 'https://api.enphaseenergy.com/api/v4/systems?key=YOUR_API_KEY' --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'" } ``` ### Response #### Success Response (200) - **total** (integer) - The total number of systems available. - **current_page** (integer) - The current page number of the results. - **size** (integer) - The number of systems per page. - **count** (integer) - The number of systems on the current page. - **items** (string) - The type of items returned, usually "systems". - **systems** (array) - An array of system objects. - **system_id** (integer) - The unique identifier for the system. - **name** (string) - The name of the system. - **public_name** (string) - The public-facing name of the system. - **timezone** (string) - The timezone of the system's location. - **address** (object) - The address of the system. - **city** (string) - The city. - **state** (string) - The state or province. - **country** (string) - The country code. - **postal_code** (string) - The postal code. - **connection_type** (string) - The type of network connection. - **energy_lifetime** (number) - Lifetime energy production. - **energy_today** (number) - Energy produced today. - **system_size** (number) - The size of the system. - **status** (string) - The current operational status of the system. - **last_report_at** (integer) - Timestamp of the last report. - **last_energy_at** (integer) - Timestamp of the last energy data update. - **operational_at** (integer) - Timestamp when the system became operational. - **attachment_type** (null) - Placeholder for attachment type. - **interconnect_date** (null) - Placeholder for interconnect date. - **reference** (string) - A reference identifier for the system. - **other_references** (array) - An array of other reference identifiers. #### Response Example ```json { "response": "{\"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}]}" } ``` ``` -------------------------------- ### API Response for Unimplemented Methods Source: https://developer-v4.enphase.com/docs/release_notes This demonstrates the error message users will receive when attempting to use HTTP methods that are not implemented for a given endpoint on the v4 developer portal. The accepted methods are POST, PUT, GET, DELETE, HEAD, OPTIONS, and PATCH. ```text 501 not implemented ``` -------------------------------- ### GET /api/v4/systems Source: https://developer-v4.enphase.com/docs/quickstart Retrieves a list of Enphase energy systems associated with the provided API key. This endpoint allows you to access essential details about your solar installations. ```APIDOC ## GET /api/v4/systems ### Description Retrieves a list of Enphase energy systems associated with the provided API key. This endpoint allows you to access essential details about your solar installations. ### Method GET ### Endpoint `https://api.enphaseenergy.com/api/v4/systems` ### Parameters #### Query Parameters - **key** (string) - Required - Your unique Enphase API key. #### Request Headers - **Authorization** (string) - Required - Bearer token for authentication (e.g., `Bearer unique_access_token`). ### Request Example ```json { "request_url": "https://api.enphaseenergy.com/api/v4/systems?key=YOUR_API_KEY", "headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN" } } ``` ### Response #### Success Response (200) - **total** (integer) - The total number of systems available. - **current_page** (integer) - The current page number of the results. - **size** (integer) - The number of systems per page. - **count** (integer) - The number of systems returned in this response. - **items** (string) - Type of items returned (e.g., "systems"). - **systems** (array) - An array of system objects, each containing: - **system_id** (integer) - The unique identifier for the system. - **name** (string) - The name of the system. - **public_name** (string) - The public-facing name of the system. - **timezone** (string) - The timezone of the system's location. - **address** (object) - Address details of the system location. - **connection_type** (string) - The type of connection used by the system. - **energy_lifetime** (number) - Lifetime energy production (value may vary). - **energy_today** (number) - Energy production today (value may vary). - **system_size** (number) - The size of the system (value may vary). - **status** (string) - The operational status of the system. - **last_report_at** (integer) - Timestamp of the last report. - **last_energy_at** (integer) - Timestamp of the last energy reading. - **operational_at** (integer) - Timestamp when the system became operational. - **attachment_type** (null) - Placeholder for attachment type. - **interconnect_date** (null) - Placeholder for interconnect date. - **reference** (string) - A reference identifier for the system. - **other_references** (array) - An array of other reference identifiers. #### Response Example ```json { "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 } ] } ``` ``` -------------------------------- ### Monitoring API - System Details Source: https://developer-v4.enphase.com/docs/.html Endpoints for fetching and searching system details, including summaries, devices, and events. ```APIDOC ## GET /api/v4/systems ### Description Fetch systems. ### Method GET ### Endpoint /api/v4/systems ## POST /api/v4/systems/search ### Description Search and filter systems. ### Method POST ### Endpoint /api/v4/systems/search ## GET /api/v4/systems/{system_id} ### Description Retrieves a System by id. ### Method GET ### Endpoint /api/v4/systems/{system_id} #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/summary ### Description Retrieves a system summary. ### Method GET ### Endpoint /api/v4/systems/{system_id}/summary #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/devices ### Description Retrieves devices for a given system. ### Method GET ### Endpoint /api/v4/systems/{system_id}/devices #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/retrieve_system_id ### Description Retrieve system for a given envoy serial number. ### Method GET ### Endpoint /api/v4/systems/retrieve_system_id ## GET /api/v4/systems/{system_id}/events ### Description To retrieve the list of events for a site. ### Method GET ### Endpoint /api/v4/systems/{system_id}/events #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/alarms ### Description To retrieve the list of alarms for a site. ### Method GET ### Endpoint /api/v4/systems/{system_id}/alarms #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/event_types ### Description To retrieve the list of event_type_id along with event_description and recommended_action. ### Method GET ### Endpoint /api/v4/systems/event_types ## GET /api/v4/systems/inverters_summary_by_envoy_or_site ### Description inverters_summary_by_envoy_or_site ### Method GET ### Endpoint /api/v4/systems/inverters_summary_by_envoy_or_site ``` -------------------------------- ### Monitoring API - System Configurations Source: https://developer-v4.enphase.com/docs/.html Endpoints for retrieving and updating system configuration settings. ```APIDOC ## GET /api/v4/systems/config/{system_id}/battery_settings ### Description Returns the current battery settings of a system. ### Method GET ### Endpoint /api/v4/systems/config/{system_id}/battery_settings #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## PUT /api/v4/systems/config/{system_id}/battery_settings ### Description Updates the current battery settings of a system. ### Method PUT ### Endpoint /api/v4/systems/config/{system_id}/battery_settings #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/config/{system_id}/storm_guard ### Description Returns the current storm guard settings of a system. ### Method GET ### Endpoint /api/v4/systems/config/{system_id}/storm_guard #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## PUT /api/v4/systems/config/{system_id}/storm_guard ### Description Updates the current storm guard settings of a system. ### Method PUT ### Endpoint /api/v4/systems/config/{system_id}/storm_guard #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/config/{system_id}/grid_status ### Description Returns the current grid status of a system. ### Method GET ### Endpoint /api/v4/systems/config/{system_id}/grid_status #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/config/{system_id}/load_control ### Description Returns the current load control settings of a system. ### Method GET ### Endpoint /api/v4/systems/config/{system_id}/load_control #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## PUT /api/v4/systems/config/{system_id}/load_control ### Description Updates the current load control settings of a system. ### Method PUT ### Endpoint /api/v4/systems/config/{system_id}/load_control #### Path Parameters - **system_id** (string) - Required - The ID of the system. ``` -------------------------------- ### Activations API Source: https://developer-v4.enphase.com/docs/.html Endpoints for managing system activations, including battery and production modes. ```APIDOC ## GET /api/v4/activations/{activation_id}/battery_mode ### Description API endpoint to get battery charge/discharge setting. ### Method GET ### Endpoint /api/v4/activations/{activation_id}/battery_mode ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation. ### Response #### Success Response (200) - **battery_mode** (string) - The current battery mode (e.g., "charge", "discharge", "idle"). #### Response Example ```json { "battery_mode": "charge" } ``` ``` ```APIDOC ## PUT /api/v4/activations/{activation_id}/battery_mode ### Description API endpoint to update battery charge/discharge setting. ### Method PUT ### Endpoint /api/v4/activations/{activation_id}/battery_mode ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation. #### Request Body - **battery_mode** (string) - Required - The desired battery mode (e.g., "charge", "discharge", "idle"). ### Request Example ```json { "battery_mode": "discharge" } ``` ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the update was successful. #### Response Example ```json { "message": "Battery mode updated successfully." } ``` ``` ```APIDOC ## GET /api/v4/partner/activations ### Description List of Activations. ### Method GET ### Endpoint /api/v4/partner/activations ### Response #### Success Response (200) - **activations** (array) - A list of activation objects. - **activation_id** (string) - The ID of the activation. - **name** (string) - The name of the activation. #### Response Example ```json { "activations": [ { "activation_id": "act_123", "name": "System Alpha" }, { "activation_id": "act_456", "name": "System Beta" } ] } ``` ``` ```APIDOC ## POST /api/v4/partner/activations ### Description Create a new activation. ### Method POST ### Endpoint /api/v4/partner/activations ### Parameters #### Request Body - **name** (string) - Required - The name for the new activation. - **system_id** (string) - Required - The ID of the system to associate with the activation. ### Request Example ```json { "name": "New System", "system_id": "sys_789" } ``` ### Response #### Success Response (200) - **activation_id** (string) - The ID of the newly created activation. #### Response Example ```json { "activation_id": "act_012" } ``` ``` ```APIDOC ## GET /api/v4/partner/activations/{activation_id} ### Description Retrieves an Activation by its ID. ### Method GET ### Endpoint /api/v4/partner/activations/{activation_id} ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation to retrieve. ### Response #### Success Response (200) - **activation_id** (string) - The ID of the activation. - **name** (string) - The name of the activation. - **system_id** (string) - The ID of the associated system. #### Response Example ```json { "activation_id": "act_123", "name": "System Alpha", "system_id": "sys_abc" } ``` ``` ```APIDOC ## PUT /api/v4/partner/activations/{activation_id} ### Description Update an existing activation. ### Method PUT ### Endpoint /api/v4/partner/activations/{activation_id} ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation to update. #### Request Body - **name** (string) - Optional - The new name for the activation. ### Request Example ```json { "name": "Updated System Name" } ``` ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the update was successful. #### Response Example ```json { "message": "Activation updated successfully." } ``` ``` ```APIDOC ## DELETE /api/v4/partner/activations/{activation_id} ### Description Delete an activation by its ID. ### Method DELETE ### Endpoint /api/v4/partner/activations/{activation_id} ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation to delete. ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the deletion was successful. #### Response Example ```json { "message": "Activation deleted successfully." } ``` ``` ```APIDOC ## POST /api/v4/activations/{activation_id}/users/{user_id} ### Description Grant access to a user for a specific activation. ### Method POST ### Endpoint /api/v4/activations/{activation_id}/users/{user_id} ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation. - **user_id** (string) - Required - The ID of the user to grant access to. ### Response #### Success Response (200) - **message** (string) - A confirmation message. #### Response Example ```json { "message": "User access granted." } ``` ``` ```APIDOC ## DELETE /api/v4/activations/{activation_id}/users/{user_id} ### Description Revoke access for a user from a specific activation. ### Method DELETE ### Endpoint /api/v4/activations/{activation_id}/users/{user_id} ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation. - **user_id** (string) - Required - The ID of the user to revoke access from. ### Response #### Success Response (200) - **message** (string) - A confirmation message. #### Response Example ```json { "message": "User access revoked." } ``` ``` ```APIDOC ## POST /api/v4/activations/{activation_id}/ops/production_mode ### Description Set the production mode for an activation. ### Method POST ### Endpoint /api/v4/activations/{activation_id}/ops/production_mode ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation. #### Request Body - **production_mode** (string) - Required - The desired production mode (e.g., "normal", "eco", "storage_only"). ### Request Example ```json { "production_mode": "eco" } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Production mode set successfully." } ``` ``` ```APIDOC ## GET /api/v4/activations/{activation_id}/ops/production_mode ### Description Get the current production mode for an activation. ### Method GET ### Endpoint /api/v4/activations/{activation_id}/ops/production_mode ### Parameters #### Path Parameters - **activation_id** (string) - Required - The ID of the activation. ### Response #### Success Response (200) - **production_mode** (string) - The current production mode. #### Response Example ```json { "production_mode": "normal" } ``` ``` -------------------------------- ### Home Owner API Source: https://developer-v4.enphase.com/docs/.html Endpoint for creating a home owner. ```APIDOC ## POST /api/v4/users ### Description Create a new home owner. ### Method POST ### Endpoint /api/v4/users ### Parameters #### Request Body - **first_name** (string) - Required - The home owner's first name. - **last_name** (string) - Required - The home owner's last name. - **email** (string) - Required - The home owner's email address. - **password** (string) - Required - The home owner's password. ### Request Example ```json { "first_name": "Sarah", "last_name": "Connor", "email": "sarah.connor@example.com", "password": "SkynetIsReal" } ``` ### Response #### Success Response (200) - **user_id** (string) - The ID of the newly created home owner. #### Response Example ```json { "user_id": "ho_sarah" } ``` ``` -------------------------------- ### Monitoring API - Site Level Production Monitoring Source: https://developer-v4.enphase.com/docs/.html Endpoints for monitoring site-level energy production metrics. ```APIDOC ## GET /api/v4/systems/{system_id}/production_meter_readings ### Description production_meter_readings ### Method GET ### Endpoint /api/v4/systems/{system_id}/production_meter_readings #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/rgm_stats ### Description rgm_stats ### Method GET ### Endpoint /api/v4/systems/{system_id}/rgm_stats #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/energy_lifetime ### Description energy_lifetime ### Method GET ### Endpoint /api/v4/systems/{system_id}/energy_lifetime #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/telemetry/production_micro ### Description Retrieves telemetry for all production micros for a system. ### Method GET ### Endpoint /api/v4/systems/{system_id}/telemetry/production_micro #### Path Parameters - **system_id** (string) - Required - The ID of the system. ## GET /api/v4/systems/{system_id}/telemetry/production_meter ### Description Retrieves telemetry for all production meters for a system. ### Method GET ### Endpoint /api/v4/systems/{system_id}/telemetry/production_meter #### Path Parameters - **system_id** (string) - Required - The ID of the system. ``` -------------------------------- ### GET /systems/config/{system_id}/battery_settings Source: https://developer-v4.enphase.com/docs/release_notes Retrieves the battery settings for a specific system. ```APIDOC ## GET /systems/config/{system_id}/battery_settings ### Description Retrieves the current battery settings configuration for a specified system. This includes details about battery mode and other related parameters. ### Method GET ### Endpoint `/systems/config/{system_id}/battery_settings` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. #### Query Parameters None ### Request Example ``` GET /systems/config/12345/battery_settings ``` ### Response #### Success Response (200) - **battery_mode** (string) - The current battery mode of the system. Possible values are "Savings Mode", "Full Backup", and "Self – Consumption". - **backup_reserve_percent** (integer) - The current percentage of battery backup reserve. #### Response Example ```json { "battery_mode": "Savings Mode", "backup_reserve_percent": 20 } ``` ``` -------------------------------- ### Enphase API Resources Source: https://developer-v4.enphase.com/docs/faq Links to important resources related to the Enphase API. ```APIDOC ### Resources - **API License Agreement:** [API License Agreement v4 | Enphase](https://enphase.com/legal/api-license-agreement-v4) - **Privacy Policy:** [Privacy Policy | Enphase](https://enphase.com/legal/privacy-policy) - **Terms of Service:** [Terms of Service | Enphase](https://enphase.com/legal/terms-of-service) - **Sign-up Page:** [The Enlighten Systems API](https://enlighten.enphaseenergy.com/) - **Log in Page:** [The Enlighten Systems API](https://enlighten.enphaseenergy.com/) - **Quick Start Guide:** [The Enlighten Systems API](https://enphase.com/partners/developer/) - **API Documentation:** [The Enlighten Systems API](https://enphase.com/partners/developer/) - **Installer Plans:** [The Enlighten Systems API](https://enphase.com/partners/plans/installer) - **Developer Plans:** [The Enlighten Systems API](https://enphase.com/partners/plans/developer) - **Release Notes:** [The Enlighten Systems API](https://enphase.com/partners/developer/) - **Applications:** [The Enlighten Systems API](https://enphase.com/partners/developer/) - **Payment Details:** [The Enlighten Systems API](https://enphase.com/partners/developer/) - **Invoices:** [The Enlighten Systems API](https://enphase.com/partners/developer/) - **Users:** [The Enlighten Systems API](https://enphase.com/partners/developer/) ``` -------------------------------- ### GET /api/v4/systems/config/{system_id}/grid_status Source: https://developer-v4.enphase.com/docs/release_notes Retrieves the grid status for a specific system. ```APIDOC ## GET /api/v4/systems/config/{system_id}/grid_status ### Description Retrieves the current grid status of the system. This indicates whether the site is connected to the grid or not. ### Method GET ### Endpoint `/api/v4/systems/config/{system_id}/grid_status` ### Parameters #### Path Parameters - **system_id** (string) - Required - The unique identifier of the system. #### Query Parameters None ### Request Example ``` GET /api/v4/systems/config/12345/grid_status ``` ### Response #### Success Response (200) - **grid_state** (string) - The current state of the grid connection. Possible values are "On Grid", "Off Grid", and "Unknown". #### Response Example ```json { "grid_state": "On Grid" } ``` ```