Enphase Commissioning API

The Commissioning API is the installer-facing administrative surface, documented across 21 paths and eleven tags — Activations, Arrays, Companies, Users, Home Owner, Meters, Grid Profiles, Tariff, Estimate, PvManufacturers and PvModels. It creates and updates site activations, manages installer companies and users, sets grid profiles, and updates the utility tariff and rate-plan data attached to a site, which is the closest this company comes to touching utility retail pricing. It is not self-serve: the Partner plan is restricted to registered Enphase installers with at least ten installations, requires a credit card on file, and authenticates through an OAuth 2.0 password grant against Enphase cloud credentials rather than a homeowner consent redirect.

OpenAPI Specification

enphase-commissioning-api-openapi.json Raw ↑
{"swagger":"2.0","host":"api.enphaseenergy.com","schemes":["https"],"info":{"title":"Commissioning API","version":"v4"},"paths":{"/api/v4/activations/{activation_id}/battery_mode":{"get":{"summary":"API endpoint to get battery charge/discharge setting.","description":"This endpoint can be used to get the CFG and DTG settings of the site.","parameters":[{"name":"activation_id","in":"path","type":"integer","description":"The Enlighten ID of the activation(system). System-generated.","required":true}],"tags":["Activations"],"produces":["application/json"],"responses":{"200":{"description":"OK","schema":{"type":"object","properties":{"CFG_allowed":{"type":"boolean"},"DTG_allowed":{"type":"boolean"}}},"examples":{"application/json":{"CFG_allowed":true,"DTG_allowed":false}}},"401":{"description":"Unauthorized","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"401","message":["Not authorized to access requested resource.","API Key missing in url/headers!"]}}},"404":{"description":"Not found","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"404","message":["System not found"]}}},"405":{"description":"Method Not Allowed","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"405","message":["Method not allowed"]}}},"422":{"description":"Unprocessable entity. The body contains error information in a hash of errorMessages and an optional errorCode","schema":{"type":"object","properties":{"errorMessages":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"errorMessages":["This is a PV only site. Battery mode can only be fetched for sites with Enphase battery systems"]}}},"429":{"description":"Too Many Requests","schema":{"type":"object","properties":{"reason":{"type":"string","description":"Response code"},"message":{"type":"array","items":{"type":"string","description":"Error Messages"}}}},"examples":{"application/json":{"reason":"429","message":["Usage limit exceeded for plan Partner (custom)"]}}},"501":{"description":"Not Implemented","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"501","message":["Not Implemented"]}}}}},"put":{"summary":"API endpoint to update battery charge/discharge setting.","description":"This endpoint can be used to setup/update the CFG and DTG settings of the site.","parameters":[{"name":"activation_id","in":"path","type":"integer","description":"The Enlighten ID of the activation(system). System-generated.","required":true},{"name":"battery_mode","in":"body","schema":{"type":"object","properties":{"CFG_allowed":{"type":"boolean","description":"true or false"},"DTG_allowed":{"type":"boolean","description":"true or false"}},"required":["CFG_allowed","DTG_allowed"]}}],"tags":["Activations"],"consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"OK","schema":{"type":"object","properties":{"message":{"type":"string"}}},"examples":{"application/json":{"message":"Battery mode updated successfully"}}},"401":{"description":"Unauthorized","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"401","message":["Not authorized to access requested resource.","API Key missing in url/headers!"]}}},"404":{"description":"Not found","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"404","message":["System not found"]}}},"405":{"description":"Method Not Allowed","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"405","message":["Method not allowed"]}}},"422":{"description":"Unprocessable entity. The body contains error information in a hash of errorMessages and an optional errorCode","schema":{"type":"object","properties":{"errorMessages":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"errorMessages":["This is a PV only site. Battery mode can only be updated for sites with Enphase battery systems"]}}},"429":{"description":"Too Many Requests","schema":{"type":"object","properties":{"reason":{"type":"string","description":"Response code"},"message":{"type":"array","items":{"type":"string","description":"Error Messages"}}}},"examples":{"application/json":{"reason":"429","message":["Usage limit exceeded for plan Partner (custom)"]}}},"501":{"description":"Not Implemented","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"501","message":["Not Implemented"]}}}}}},"/api/v4/partner/activations":{"get":{"summary":"List of Activations","description":"Returns a list of activations for which the user can make API requests. There is a limit to the number of activations which can be returned at one time. If the first request does not return a full list, use the 'next' attribute in the response body to request the next page. By default, activations are returned in batches of 100. The maximum page size is 1000. Provide only valid filters. During filter the activations empty and invalid filter fields are ignored. In case the installer ID doesn’t exist, API will return an empty array.","parameters":[{"name":"next","in":"query","type":"string","description":"If the first request does not return a full list, use the 'next' attribute in the response body to request the next page. By default, activations are returned in batches of 100. The maximum page size is 1000. If the returned list below the limit, then response does not include the 'next' field."},{"name":"limit","in":"query","type":"integer","description":"There is a limit to the number of activations which can be returned at one time"},{"name":"stage","in":"query","type":"string","enum":[1,2,3,4,5,"in_progress"],"description":"Filter activations by stage. Passing in_progress alone will consider as you have passed all the 1,2,3,4 stages. Passing multiple stage values using comma to filter. E.g. stage=1,2,3. Paasing in_progress with any other combination will give you empty systems. This parameter searches for an exact match of the input value."},{"name":"reference","in":"query","type":"string","description":"Filter activations by company reference. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"installer_id","in":"query","type":"integer","description":"Filter activations by installer id. This parameter searches for an exact match of the input value."},{"name":"system_name","in":"query","type":"string","description":"Filter activations by system name. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"city","in":"query","type":"string","description":"Filter activations by city. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"state","in":"query","type":"string","description":"Filter activations by state. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"country","in":"query","type":"string","description":"Filter activations by country. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"postal_code","in":"query","type":"string","description":"Filter activations by zipcode. This parameter searches for an exact match of the input value."},{"name":"street1","in":"query","type":"string","description":"Filter activations by street1. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"street2","in":"query","type":"string","description":"Filter activations by street2. This parameter searches for an exact match of the input value and is not case-sensitive."},{"name":"host_id","in":"query","type":"integer","description":"Filter activations by host_id. This parameter searches for an exact match of the input value. In addition to Integers, the filter will support null values too"},{"name":"owner_id","in":"query","type":"integer","description":"Filter activations by owner_id. This parameter searches for an exact match of the input value. In addition to Integers, the filter will support null values too"}],"tags":["Activations"],"produces":["application/json"],"responses":{"200":{"description":"OK","schema":{"type":"object","properties":{"systems":{"type":"array","description":"Zero or more activations","items":{"type":"object","properties":{"system_id":{"type":"integer","description":"The Enlighten ID of this system. System-generated"},"system_name":{"type":"string","description":"The name of the system."},"system_type":{"type":"string","description":"The type of the system. One of 'residential', 'commercial', or 'other'. Default 'residential'. Cannot be null."},"status":{"type":"string","description":"System's status."},"timezone":{"type":"string","description":"System's timezone."},"stage":{"type":"integer","description":"What stage of the activation process this activation is in. System-generated."},"internet_connection":{"type":"string","description":"How the system's Envoys connect to the Internet. Possible values are none, cellular, broadband, dialup. Use 'dialup' if the Internet connection is satellite or dial-up"},"lease":{"type":"boolean","description":"Whether the system is leased. Possible values true, false. Default false"},"operational":{"type":"boolean","description":"Whether this system is permitted to operate. Possible values true, false. Default true"},"owner":{"type":"string","description":"Name of the system owner. Owner must be an Enlighten user. If the user of the API is a self-installer, the owner must be himself"},"owner_id":{"type":"integer","description":"The Enlighten ID of this system owner. System-generated"},"host":{"type":"string","description":"Name of the system host. Please see “Specifying an Owner and Lease Arrangement”, above, for more information."},"host_id":{"type":"integer","description":"The Enlighten ID of this system host. System-generated"},"installer_name":{"type":"string","description":"Name of the installer."},"installer_id":{"type":"integer","description":"The Enlighten ID of the installer of this system"},"maintainer_name":{"type":"string","description":"Name of the maintainer."},"maintainer_id":{"type":"integer","description":"The Enlighten ID of the maintainer of this system"},"authorized_subcontractors":{"type":"array","description":"List of sub-contractors of this system.","items":{"type":"object","properties":{"authorized_subcontractor_id":{"type":"integer","description":"The Enlighten ID of the sub-contractor of this system. System-generated."},"authorized_subcontractor_name":{"type":"string","description":"Name of the sub-contractor of this system."},"status":{"type":"string","description":"Current status of the subcontractor for the site. This field will be shown only for pending and rejected sub-contractors."}}}},"grid_connection_type":{"type":"object","description":"Possible values for parameter: 1 – Net Billing Tariff (NEM 3.0), 2 – Net Metering, 3 – Net Feed-in tariff, 4 – Gross Feed-in tariff","properties":{"type":{"type":"integer"},"value":{"type":"string"}}},"battery_grid_mode":{"type":"string","description":"Battery grid mode can be of two types - Export Only, Import Only"},"third_party_storage_device_installed":{"type":"boolean","description":"If third party storage device is installed on the site."},"third_party_storage_device_manufacturer":{"type":"string","description":"Manufacturer name of the third party storage device."},"interconnection_application_date":{"type":"integer","description":"Date in epoch format"},"permission_to_operate":{"type":"boolean","description":"boolean (true / false)"},"uri":{"type":"string","description":"URI for this activation"},"updated_at":{"type":"integer","description":"Activation last updated timestamp"},"reference":{"type":"string","description":"The identifier of this system as provided by the calling user's company. This attribute is not present if the calling user's company does not have a reference for this system."},"other_references":{"type":"array","description":"The identifiers assigned to this activation by other companies which have access to it. This attribute is not present if there are no other references for this system.","items":{"type":"string","description":"Name of the reference"}},"address":{"type":"object","description":"The location of the system. Use the ISO 3166-1 2-letter code for the country. Latitude and longitude are calculated by Enlighten, not provided by the client","properties":{"street1":{"type":"string","description":"Street line 1"},"city":{"type":"string","description":"City"},"state":{"type":"string","description":"State"},"postal_code":{"type":"string","description":"Postal code"},"country":{"type":"string","description":"Country"},"latitude":{"type":"integer","description":"Latitude"},"longitude":{"type":"integer","description":"Longitude"},"street2":{"type":"string","description":"Street line 2. This field is Optional"}}}}}},"next":{"type":"string","description":"If the first request does not return a full list, use the 'next' attribute in the response body to request the next page. By default, activations are returned in batches of 10. The maximum page size is 1000"}}},"examples":{"application/json":{"systems":[{"system_id":12345,"system_name":"System name","system_type":"residential","status":"Normal","timezone":"US/Pacific","stage":5,"internet_connection":"dialup","lease":false,"operational":true,"owner":"Test User","owner_id":123,"host":321,"host_id":"Host name","installer_name":"Enphase \u0026 Energy","installer_id":1,"maintainer_name":"Enphase \u0026 Energy","maintainer_id":5,"authorized_subcontractors":[{"authorized_subcontractor_id":67,"authorized_subcontractor_name":"Enphase India"},{"authorized_subcontractor_id":68,"authorized_subcontractor_name":"Enphase India","status":"Pending for system owner approval"}],"grid_connection_type":{"type":1,"value":"Net Billing Tariff (NEM 3.0)"},"battery_grid_mode":"Export Only","third_party_storage_device_installed":true,"third_party_storage_device_manufacturer":"Franklin","interconnection_application_date":1727156880,"permission_to_operate":true,"uri":"/api/v4/partner/activations/12345.json","updated_at":1628153151,"reference":"ENPH123","other_references":["OTHER1234"],"address":{"street1":"Bangalore Lane","city":"San Diego","state":"CA","postal_code":"92126","country":"US","latitude":32.912785,"longitude":-117.153778,"street2":"2nd Street"}}],"next":"4e6a6b344f5445774d446b350a"}}},"401":{"description":"Unauthorized","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"401","message":["Not authorized to access requested resource.","API Key missing in url/headers!"]}}},"405":{"description":"Method Not Allowed","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"405","message":["Method not allowed"]}}},"422":{"description":"Unprocessable entity. The body contains error information in a hash of errorMessages and an optional errorCode","schema":{"type":"object","properties":{"errorCode":{"type":"integer"},"errorMessages":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"errorMessages":["Invalid stage option 11"]}}},"429":{"description":"Too Many Requests","schema":{"type":"object","properties":{"reason":{"type":"string","description":"Response code"},"message":{"type":"array","items":{"type":"string","description":"Error Messages"}},"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":{"application/json":{"reason":"429","message":["Usage limit exceeded for plan Partner (custom)"],"period":"minute","period_start":1623825660,"period_end":1623825720,"limit":5}}},"501":{"description":"Not Implemented","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"501","message":["Not Implemented"]}}}}},"post":{"summary":"Create new activation.","description":"Create new activation. Address is mandatory if users company belongs to US.","tags":["Activations"],"consumes":["application/x-www-form-urlencoded"],"parameters":[{"name":"system","in":"body","schema":{"type":"object","properties":{"system_name":{"type":"string","description":"The name of the system. Limit 255 characters."},"system_type":{"type":"string","description":"The type of the system. Possible values are 'residential', 'commercial', 'other'. Default 'residential'."},"internet_connection":{"type":"string","description":"How the system's Envoys connect to the Internet. Possible values are none, cellular, broadband, dialup. Use 'dialup' if the Internet connection is satellite or dial-up"},"lease":{"type":"boolean","description":"Whether the system is leased. Possible values true, false. Default false"},"operational":{"type":"boolean","description":"Whether this system is permitted to operate. Possible values true, false. Default true"},"owner_id":{"type":"integer","description":"Enlighten ID of the system owner. Owner must be an Enlighten user. Optional. If the user of the API is a self-installer, the owner must be himself. If the user of the API is an installer then use the Search user API to get the owner user id. If the owner not exist in the enlighten then use Create home owner API to create it newly."},"host_id":{"type":"integer","description":"Enlighten ID of the system host. System host must be an Enlighten user. Optional. If the user of the API is an installer then use the Search user API to get the host user id. If the host not exist in the enlighten then use Create home owner API to create it newly."},"authorized_subcontractor_id":{"type":"integer","description":"Enlighten ID of the sub-contractor you want to add to the system. Optional."},"installer_id":{"type":"integer","description":"The Enlighten ID of the installer of this system. Defaults to current user's company ID"},"maintainer_id":{"type":"integer","description":"The Enlighten ID of the maintainer of this system. Defaults to current user's company ID"},"allow_public_access":{"type":"boolean","description":"When true, the system will be eligible to appear in the public systems lists of Enphase and the system's installer. Default true"},"interconnect_date":{"type":"integer","description":"When the system was approved to connect to the grid. Epoch in seconds format"},"source":{"type":"string","description":"The source of production measurements taken on the system. Possible values 'meter', 'microinverters'. When 'meter', production values come from a revenue-grade meter on the system. When 'microinverters', production values come from the microinverters on the system."},"array_type":{"type":"string","enum":["fixed_open_rack","fixed_roof_mount","single_axis_tracking","single_axis_backtracking","dual_axis_tracking"],"description":"The type of array installed. Possible values are fixed_open_rack, fixed_roof_mount, single_axis_tracking, single_axis_backtracking, dual_axis_tracking. All other values will be ignored. To unset array_type, pass null"},"attachment_type":{"type":"string","enum":["rack_mount","zep","acm","bipv","frame_mount","railless_mount"],"description":"How the microinverters are attached to the panels. Possible values are acm (AC Module), rack_mount (rack- or rail-mounted), zep (Zep Solar compatible), bipv (Building Integrated PV), frame_mount (Enphase Frame Mount), railless_mount (Other Railless Mount)"},"ensemble_envoy":{"type":"string","description":"Specifies serial number of ensemble envoy in multi envoy system"},"grid_profile":{"type":"string","description":"The grid profile to set on this system's microinverters. See GridProfiles API for how to retrieve a list of known profiles."},"requested_profile":{"type":"string","description":""},"requested_report_freq":{"type":"string","description":""},"voltage":{"type":"string","description":"The supported voltage/phase associated with a commercial system inside North America. If system type is not commercial, or if the installer exists \u0026 installer's country is not inside North America, or if the system's country is not inside North America, then the voltage value would be null"},"envoy_serial_numbers":{"type":"array","items":{"type":"string"},"description":"A list of Envoys installed on this system"},"pv_manufacturer":{"type":"integer","description":"Enlighten ID of the PV manufacturer associated with the PV model installed on the system. See PvManufacturers for how to retrieve PV manufacturer IDs"},"pv_manufacturer_name":{"type":"string","description":"Name of the Custom PV Module Manufacturer associated with the system."},"pv_model":{"type":"integer","description":"Enlighten ID of the PV model installed on the system. See PvManufacturers and PvModels for how to retrieve PV model IDs"},"pv_model_name":{"type":"string","description":"Name of the Custom PV Module Model associated with the system."},"pv_module_power_rating":{"type":"number","format":"float","minimum":0,"description":"Power Rating (in W) of the PV module installed on the system."},"pv_module_type":{"type":"integer","enum":[1,2,3,4],"description":"Type ID of the PV module installed on the system. 1 -\u003e 'Mono-facial', 2 -\u003e 'Bi-facial', 3 -\u003e 'Split cell', 4 -\u003e 'Other'"},"expected_envoy_count":{"type":"integer","description":"Total envoys the system is supposed to have"},"expected_pcu_count":{"type":"integer","description":"Total PCUs the system is supposed to have"},"expected_acb_count":{"type":"integer","description":"Total acbs the system is supposed to have"},"expected_nsr_count":{"type":"integer","description":"Total nsrs the system is supposed to have"},"expected_meter_count":{"type":"integer","description":"Total meters the system is supposed to have"},"expected_encharge_count":{"type":"integer","description":"Total encharges the system is supposed to have"},"expected_enpower_count":{"type":"integer","description":"Total enpowers the system is supposed to have"},"reference":{"type":"string","description":"The identifier of this system as provided by the calling user's company. This attribute is not present if the calling user's company does not have a reference for this system. This value should be alphanumberic"},"encharge":{"type":"array","description":"Encharge detail","items":{"type":"object","properties":{"envoy_serial_number":{"type":"string","description":"Envoy serial number"},"encharge_serial_numbers":{"type":"array","description":"Encharge serial numbers","items":{"type":"string"}}}}},"enpower":{"type":"array","description":"Enpower detail","items":{"type":"object","properties":{"envoy_serial_number":{"type":"string","description":"Envoy serial number"},"enpower_serial_numbers":{"type":"array","description":"Enpower serial numbers","items":{"type":"string"}}}}},"address":{"type":"object","description":"The location of the system. Use a valid two-letter code for state. Use the ISO 3166-1 2-letter code for the country. Latitude and longitude are calculated by Enlighten, not provided by the client. Address is mandatory if users company belongs to US.","properties":{"street1":{"type":"string"},"street2":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"postal_code":{"type":"string"}},"required":["street1","city","state","country","postal_code"]},"grid_connection_type":{"type":"integer","description":"This field is mandatory for sites in California, United States. Possible values for parameter: 1 – Net Billing Tariff (NEM 3.0), 2 – Net Metering, 3 – Net Feed-in tariff, 4 – Gross Feed-in tariff"},"battery_grid_mode":{"type":"integer","description":"This field is mandatory for sites with battery in California, United States when grid_connection_type is 1. Battery grid mode must be either 1 (for Import Only) or 2 ( for Export Only)."},"third_party_storage_device_installed":{"type":"boolean","description":"This field is mandatory for sites in California, United States. Whether third party storage device is installed on the site."},"third_party_storage_device_manufacturer":{"type":"string","description":"This field is mandatory for sites in California, United States when the third_party_storage_device_installed field is passed as true. Manufacturer name of the third party storage device."},"interconnection_application_date":{"type":"integer","description":"Date in epoch format"},"permission_to_operate":{"type":"boolean","description":"boolean (true / false)"}},"required":["system_name"]}}],"produces":["application/json"],"responses":{"201":{"description":"Created","schema":{"type":"object","properties":{"system_id":{"type":"integer","description":"The Enlighten ID of this system. System-generated"},"system_name":{"type":"string","description":"The name of the system."},"system_type":{"type":"string","description":"The type of the system. One of 'residential', 'commercial', or 'other'. Default 'residential'. Cannot be null."},"status":{"type":"string","description":"System's status."},"stage":{"type":"integer","description":"What stage of the activation process this activation is in. System-generated."},"internet_connection":{"type":"string","description":"How the system's Envoys connect to the Internet. Possible values are none, cellular, broadband, dialup. Use 'dialup' if the Internet connection is satellite or dial-up"},"lease":{"type":"boolean","description":"Whether the system is leased. Possible values true, false. Default false"},"operational":{"type":"boolean","description":"Whether this system is permitted to operate. Possible values true, false. Default true"},"owner":{"type":"object","description":"Name of the system owner. Owner must be an Enlighten user. If the user of the API is a self-installer, the owner must be himself. If the query parameter 'expand=owner' passed in the request owner detail will appear in the response","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"active":{"type":"boolean","description":"Whether the user is allowed to log in to Enlighten. Values true, false. Default true."},"user_id":{"type":"integer"},"user_roles":{"type":"array","items":{"type":"string","description":"Role"},"description":"What type of user this is in Enlighten. Possible values are ['self_installer']. For self installer user user_roles will be ['self_installer']. For other users user_roles will be empty."},"enlighten_emails":{"type":"boolean"},"enlighten_view":{"type":"string"},"uri":{"type":"string"},"updated_at":{"type":"integer"}}},"owner_id":{"type":"integer","description":"The Enlighten ID of this system owner. System-generated. This field is optional."},"host":{"type":"object","description":"Name of the system host. Please see “Specifying an Owner and Lease Arrangement”, above, for more information. If the query parameter 'expand=host' passed in the request host detail will appear in the response","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"active":{"type":"boolean","description":"Whether the user is allowed to log in to Enlighten. Values true, false. Default true."},"user_id":{"type":"integer"},"user_roles":{"type":"array","items":{"type":"string","description":"Role"},"description":"What type of user this is in Enlighten. Possible values are ['self_installer']. For self installer user user_roles will be ['self_installer']. For other users user_roles will be empty."},"enlighten_emails":{"type":"boolean"},"enlighten_view":{"type":"string"},"uri":{"type":"string"},"updated_at":{"type":"integer"}}},"host_id":{"type":"integer","description":"The Enlighten ID of this system host. System-generated. This field is optional."},"installer_name":{"type":"string","description":"Name of the installer."},"installer_id":{"type":"integer","description":"The Enlighten ID of the installer of this system. Defaults to current user's company ID"},"maintainer_name":{"type":"string","description":"Name of the maintainer."},"maintainer_id":{"type":"integer","description":"The Enlighten ID of the maintainer of this system. Defaults to current user's company ID"},"authorized_subcontractors":{"type":"array","description":"List of sub-contractors of this system.","items":{"type":"object","properties":{"authorized_subcontractor_id":{"type":"integer","description":"The Enlighten ID of the sub-contractor of this system. System-generated."},"authorized_subcontractor_name":{"type":"string","description":"Name of the sub-contractor of this system."},"status":{"type":"string","description":"Current status of the subcontractor for the site. This field will be shown only for pending and rejected sub-contractors."}}}},"grid_connection_type":{"type":"object","description":"Possible values for parameter: 1 – Net Billing Tariff (NEM 3.0), 2 – Net Metering, 3 – Net Feed-in tariff, 4 – Gross Feed-in tariff","properties":{"type":{"type":"integer"},"value":{"type":"string"}}},"battery_grid_mode":{"type":"string","description":"Battery grid mode can be of two types - Export Only, Import Only"},"third_party_storage_device_installed":{"type":"boolean","description":"If third party storage device is installed on the site."},"third_party_storage_device_manufacturer":{"type":"string","description":"Manufacturer name of the third party storage device."},"interconnection_application_date":{"type":"integer","description":"Date in epoch format"},"permission_to_operate":{"type":"boolean","description":"boolean (true / false)"},"uri":{"type":"string","description":"URI for this activation"},"updated_at":{"type":"integer","description":"Activation last updated timestamp"},"reference":{"type":"string","description":"The identifier of this system as provided by the calling user's company. This attribute is not present if the calling user's company does not have a reference for this system."},"other_references":{"type":"array","description":"The identifiers assigned to this activation by other companies which have access to it. This attribute is not present if there are no other references for this system.","items":{"type":"string","description":"Name of the reference"}},"allow_public_access":{"type":"boolean","description":"When true, the system will be eligible to appear in the public systems lists of Enphase and the system's installer. Default true"},"interconnect_date":{"type":"integer","description":"When the system was approved to connect to the grid"},"installer_support_email":{"type":"string","description":"Installer support email"},"source":{"type":"string","description":"The source of production measurements taken on the system. Possible values 'meter', 'microinverters'. When 'meter', production values come from a revenue-grade meter on the system. When 'microinverters', production values come from the microinverters on the system"},"array_type":{"type":"string","description":"The type of array installed. Possible values are fixed_open_rack, fixed_roof_mount, single_axis_tracking, single_axis_backtracking, dual_axis_tracking. All other values will be ignored. To unset array_type, pass null"},"attachment_type":{"type":"string","description":"How the microinverters are attached to the panels. Possible values are acm (AC Module), rack_mount (rack- or rail-mounted), zep (Zep Solar compatible), bipv (Building Integrated PV), frame_mount (Enphase Frame Mount), railless_mount (Other Railless Mount)"},"ensemble_envoy":{"type":"string","description":"Specifies serial number of ensemble envoy in multi envoy system"},"production_mode":{"type":"string","description":"Possible value is 'on' and 'off'

# --- truncated at 32 KB (173 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/enphase/refs/heads/main/openapi/enphase-commissioning-api-openapi.json