Enphase Monitoring API

The Monitoring API is the consumer-data surface of the Enphase platform and the only self-serve one. Documented across 48 paths and eight tags — System Details, Site Level Production Monitoring, Site Level Consumption Monitoring, Device Level Monitoring, EV Charger Monitoring, EV Charger Control, System Configurations and Streaming APIs — it lets a registered application retrieve an individual system owner's solar production, household consumption, IQ Battery telemetry and microinverter-level data after that owner approves the application through an OAuth 2.0 authorization-code grant. Access controls are scoped per plan: the free Watt plan (10 hits/minute, 1,000 hits/month) covers system details, site-level production, site-level consumption and EV charger monitoring, while device-level production monitoring requires the paid Kilowatt or Megawatt plans.

OpenAPI Specification

enphase-monitoring-api-openapi.json Raw ↑
{"swagger":"2.0","host":"api-qa2.enphaseenergy.com","schemes":["https"],"info":{"title":"Monitoring API","version":"v4"},"paths":{"/api/v4/systems":{"get":{"summary":"Fetch systems","description":"Returns a list of systems for which the user can make API requests. By default, systems are returned in batches of 10. The maximum size is 100.","tags":["System Details"],"parameters":[{"name":"page","in":"query","type":"integer","description":"The page to be returned. Default=1, Min=1. For example, if page is set to 2, 2nd page is returned"},{"name":"size","in":"query","type":"integer","description":"Maximum number of records shown per page. Default=10, Min=1, Max=100.  For example, if max is set to 5, 5 records are shown per page"},{"name":"sort_by","in":"query","type":"string","enum":["id","-id"],"description":"Returns list of systems sorted by \u003csort_by\u003e field. To get the ASC order sorted list, user sort_by = id. To get the DESC order sorted list, use sort_by = -id. By default, the list is sorted by ascending order of system ID."}],"produces":["application/json"],"responses":{"200":{"description":"List of Systems","schema":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of systems"},"current_page":{"type":"integer","description":"Number of the current page fetched "},"size":{"type":"integer","description":"Maximum number of records shown per page. Default=10, Min=1, Max=100."},"count":{"type":"integer","description":"Total number of systems actually returned for the current page"},"items":{"type":"string","description":"Named key of the list data. In this endpoint, it is systems"},"systems":{"type":"array","items":{"properties":{"system_id":{"type":"integer","description":"The unique numeric ID of the system"},"name":{"type":"string","description":"Name of the system"},"public_name":{"type":"string","description":"Name displayed on the public system page. Available values are All, Residential System, Commercial etc. Default='Residential System'. Only for systems that allow public access."},"timezone":{"type":"string","description":"Timezone to which the system belongs"},"address":{"type":"object","properties":{"city":{"type":"string","description":"City in which the system is located"},"state":{"type":"string","description":"State in which the system is located"},"country":{"type":"string","description":"Country in which the system is located"},"postal_code":{"type":"string","description":"Postal Code of the system's location"}},"description":"Address object for the system. It can contain the following items"},"connection_type":{"type":"string","description":"Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular"},"energy_lifetime":{"type":"integer","description":"Deprecated field. The API will always return this field as -1"},"energy_today":{"type":"integer","description":"Deprecated field. The API will always return this field as -1"},"system_size":{"type":"number","format":"float","description":"Deprecated field. The API will always return this field as -1"},"status":{"type":"string","description":"System's status. Corresponding Enlighten values can be found in table added at the end of page."},"last_report_at":{"type":"integer","description":"Timestamp (in epoch format) at which the system's Envoy last submitted a report"},"last_energy_at":{"type":"integer","description":"Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned."},"operational_at":{"type":"integer","description":"Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time."},"attachment_type":{"type":"string","description":"Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount"},"interconnect_date":{"type":"integer","description":"Date on which the system was approved to connect to the grid"},"reference":{"type":"string","description":"If the calling user belongs to a company and that company has provided its own identifier for a system, that ID is included here. Otherwise, this attribute is not returned."},"other_references":{"type":"array","items":{"type":"string"},"description":"If any other companies have provided their own identifiers for a system, those identifiers are included here. Otherwise, this attribute is not returned."}}},"description":"List of systems. It contains the following:"}}},"examples":{"application/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}]}}},"401":{"description":"Authentication Error","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Not Authorized","details":"User is not authorized","code":401}}},"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","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Unprocessable Entity","details":"Invalid request because of 'The sorting parameter is not supported. Please use id for sorting by Asc or -id for sorting by Desc'","code":422}}},"429":{"description":"Too Many Requests","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Too Many Requests","details":"Usage limit exceeded for plan Kilowatt","code":429}}},"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/systems/search":{"post":{"summary":"Search and filter systems","description":"Search and filter systems. Provide only valid values in request parameters. Empty values will be ignored. Invalid keys will be rejected.","tags":["System Details"],"parameters":[{"name":"page","in":"query","type":"integer","description":"The page to be returned. Default=1, Min=1, e.g=2"},{"name":"size","in":"query","type":"integer","description":"Maximum number of records shown per page. Default=10, Min=1, Max=1000, e.g=5"},{"name":"live_stream","in":"query","type":"boolean","description":"Indicates whether the live_stream field should be included in the response (true to include, false to omit)."},{"name":"params","in":"body","schema":{"type":"object","properties":{"sort_by":{"type":"string","enum":["id","-id"],"description":"Returns list of systems sorted by \u003csort_by\u003e field. To get ASC order sorted list, user sort_by = id. To get DESC order sorted list, use sort_by = -id. By default, the list is sorted by ascending order of system ID."},"system":{"type":"object","properties":{"ids":{"type":"array","description":"Filter system by particular Ids","items":{"type":"integer"}},"name":{"type":"string","description":"Search by name of the System."},"reference":{"type":"string","description":"Search by reference of the System."},"other_reference":{"type":"string","description":"Search by any other_references of the System."},"statuses":{"type":"array","description":"Search by System status.","items":{"type":"string","enum":["normal","comm","micro","power","meter","battery","storage_idle","meter_issue","enpower","encharge","enpower_issue","encharge_issue"]}}}}},"required":["system"]}}],"consumes":["application/json"],"produces":["application/json"],"responses":{"200":{"description":"List of Systems","schema":{"type":"object","properties":{"total":{"type":"integer","description":"Total number of systems available"},"current_page":{"type":"integer","description":"Current page of the systems result. Default is 1"},"size":{"type":"integer","description":"Max number of records from API per page is 100. Default is 10."},"count":{"type":"integer","description":"Total number of systems actually returned for the current page"},"items":{"type":"string","description":"Named key of the list data. In this endpoint, it is systems"},"systems":{"type":"array","items":{"properties":{"system_id":{"type":"integer","description":"The unique numeric ID of the system"},"name":{"type":"string","description":"Name of the system"},"public_name":{"type":"string","description":"Name displayed on the public system page. Available values are All, Residential System, Commercial etc. Default='Residential System'. Only for systems that allow public access."},"timezone":{"type":"string","description":"Timezone to which the system belongs"},"address":{"type":"object","properties":{"state":{"type":"string","description":"State in which the system is located"},"country":{"type":"string","description":"Country in which the system is located"},"postal_code":{"type":"string","description":"Postal Code of the system's location"}},"description":"Address object for the system. It can contain the following items"},"connection_type":{"type":"string","description":"Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular"},"status":{"type":"string","description":"System's status. Corresponding Enlighten values can be found in table added at the end of page."},"last_report_at":{"type":"integer","description":"Timestamp (in epoch format) at which the system's Envoy last submitted a report"},"last_energy_at":{"type":"integer","description":"Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned."},"operational_at":{"type":"integer","description":"Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time."},"attachment_type":{"type":"string","description":"Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount"},"interconnect_date":{"type":"integer","description":"Date on which the system was approved to connect to the grid"},"energy_lifetime":{"type":"integer","description":"Deprecated field. The API will always return this field as -1"},"energy_today":{"type":"integer","description":"Deprecated field. The API will always return this field as -1"},"system_size":{"type":"number","format":"float","description":"Deprecated field. The API will always return this field as -1"},"live_stream":{"type":"string","description":"Shows the status live stream via Kafka is enabled or not for the site =\u003e \"enabled\" / \"disabled\""}}},"description":"List of filtered systems. It contains the following items"}}},"examples":{"application/json":{"total":28,"current_page":1,"size":2,"count":2,"items":"systems","systems":[{"system_id":698910067,"name":"Enphase System","public_name":"Residential System","timezone":null,"address":{"state":null,"country":null,"postal_code":null},"connection_type":"ethernet","status":"micro","last_report_at":1557400231,"last_energy_at":null,"operational_at":null,"attachment_type":null,"interconnect_date":null,"energy_lifetime":-1,"energy_today":-1,"system_size":-1,"live_stream":"enabled"},{"system_id":698906018,"name":"Enphase Public System","public_name":"Residential System","timezone":"US/Pacific","address":{"state":"CA","country":"US","postal_code":"94954"},"connection_type":"ethernet","status":"normal","last_report_at":1508174262,"last_energy_at":1508174172,"operational_at":1497445200,"attachment_type":null,"interconnect_date":null,"energy_lifetime":-1,"energy_today":-1,"system_size":-1,"reference":"106015287","other_references":["106015287"],"live_stream":"disabled"}]}}},"401":{"description":"Authentication Error","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Not Authorized","details":"User is not authorized","code":401}}},"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","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Unprocessable Entity","details":"system is missing at Json body location","code":422}}},"429":{"description":"Too Many Requests","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Too Many Requests","details":"Usage limit exceeded for plan Kilowatt","code":429}}},"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/systems/{system_id}":{"get":{"summary":"Retrieves a System by id","description":"Retrieves a System by ID","tags":["System Details"],"produces":["application/json"],"parameters":[{"name":"system_id","in":"path","type":"integer","description":"The unique numeric ID of the system. If an empty value is passed in the ID, this endpoint behaves as Fetch systems endpoint.","required":true}],"responses":{"200":{"description":"System fetched","schema":{"type":"object","properties":{"system_id":{"type":"integer","description":"The unique numeric ID of the system"},"name":{"type":"string","description":"Name of the system"},"public_name":{"type":"string","description":"Name displayed on the public system page. Available values are All, Residential System, Commercial etc. Default='Residential System'. Only for systems that allow public access."},"timezone":{"type":"string","description":"Timezone to which the system belongs"},"address":{"type":"object","properties":{"city":{"type":"string","description":"City in which the system is located"},"state":{"type":"string","description":"State in which the system is located"},"country":{"type":"string","description":"Country in which the system is located"},"postal_code":{"type":"string","description":"Postal Code of the system's location"}},"description":"Address object for the system. It can contain the following items"},"connection_type":{"type":"string","description":"Connection Type of the system. Available values are ethernet, Wi-Fi, Cellular"},"energy_lifetime":{"type":"integer","description":"Deprecated field. The API will always return this field as -1"},"energy_today":{"type":"integer","description":"Deprecated field. The API will always return this field as -1"},"system_size":{"type":"number","format":"float","description":"Deprecated field. The API will always return this field as -1"},"status":{"type":"string","description":"System's status. Corresponding Enlighten values can be found in table added at the end of page."},"last_report_at":{"type":"integer","description":"Timestamp (in epoch format) at which the system's Envoy last submitted a report"},"last_energy_at":{"type":"integer","description":"Timestamp (in epoch format) at which the systems's produced energy was last reported. Even if the last produced energy is 0, its timestamp will be returned."},"operational_at":{"type":"integer","description":"Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time."},"attachment_type":{"type":"string","description":"Micro inverter attachment type. Available values are rack_mount, zep, acm, bipv, frame_mount, railless_mount"},"interconnect_date":{"type":"integer","description":"Date on which the system was approved to connect to the grid"},"reference":{"type":"string","description":"If the calling user belongs to a company and that company has provided its own identifier for a system, that ID is included here. Otherwise, this attribute is not returned."},"other_references":{"type":"array","items":{"type":"string"},"description":"If any other companies have provided their own identifiers for a system, those identifiers are included here. Otherwise, this attribute is not returned."}}},"examples":{"application/json":{"system_id":72,"name":"Enphase System","public_name":"Residential System","timezone":"America/Los_Angeles","address":{"city":"Los Angeles","state":"CA","country":"US","postal_code":"94954"},"connection_type":"cellular","energy_lifetime":-1,"energy_today":-1,"system_size":-1,"status":"normal","last_report_at":1445619615,"last_energy_at":1445619033,"operational_at":1357023600,"attachment_type":"acm","interconnect_date":"2012-10-13","reference":"106015287","other_references":["106015287"]}}},"401":{"description":"Authentication Error","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Not Authorized","details":"User is not authorized","code":401}}},"403":{"description":"Forbidden","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Forbidden","details":"Not authorized to access this resource","code":403}}},"404":{"description":"Not Found","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Not Found","details":"System not found for {:id=\u003e\"1\"}","code":404}}},"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"]}}},"429":{"description":"Too Many Requests","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Too Many Requests","details":"Usage limit exceeded for plan Kilowatt","code":429}}},"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/systems/{system_id}/summary":{"get":{"summary":"Retrieves a system summary","description":"Returns system summary based on the specified system ID and summary date. For historical requests i.e summary date is in the past the fields modules, size_w and current_power are returned as zero.","tags":["System Details"],"produces":["application/json"],"parameters":[{"name":"system_id","in":"path","type":"integer","description":"The unique numeric ID of the system","required":true},{"name":"summary_date","in":"query","type":"string","description":"Requested date for the system's summary data. Defaults to the current local date of the system","required":false}],"responses":{"200":{"description":"System summary fetched","schema":{"type":"object","properties":{"system_id":{"type":"integer","description":"The unique numeric ID of the system"},"current_power":{"type":"integer","description":"Current power production of the system in Watts"},"energy_lifetime":{"type":"integer","description":"Energy generated by the system during its lifetime till one day before to the requested summary date in Wh"},"energy_today":{"type":"integer","description":"Energy generated by the system on requested summary date in Wh"},"last_interval_end_at":{"type":"integer","description":"The last known time that the system produced energy. When a system has not been communicating for a length of time, the last_report_at can be recent, whereas the last_interval_end_at may be further back."},"last_report_at":{"type":"integer","description":"Timestamp (in epoch format) at which the system's Envoy last submitted a report"},"modules":{"type":"integer","description":"Total number of modules in the system"},"operational_at":{"type":"integer","description":"Timestamp (in epoch format) at which this system became operational. Corresponds to the system’s interconnect time, if one is specified. Otherwise, it is the system’s first reported interval end time."},"size_w":{"type":"integer","description":"System size in watts"},"nmi":{"type":"integer","description":"National Meter Identifier"},"source":{"type":"string","description":"Source of energy measurement"},"status":{"type":"string","description":"Current status of the system"},"summary_date":{"type":"string","description":"Summary date"},"battery_charge_w":{"type":"integer","description":"Maximum charge power of all the batteries of the system in watts"},"battery_discharge_w":{"type":"integer","description":"Maximum discharge power of all the batteries of the system in watts"},"battery_capacity_wh":{"type":"integer","description":"Total capacity of all the batteries of the system in watt-hours"},"evse_power":{"type":"array","description":"This individual object is a Map with key value pair. Key will be individual serial number and value will be object containing evse_max_charge_w and evse_min_charge_w","items":{"type":"object","properties":{"serial_number":{"type":"object","properties":{"evse_max_charge_w":{"type":"integer","description":"evse_max_charge_w"},"evse_min_charge_w":{"type":"integer","description":"evse_min_charge_w"}}}}}}}},"examples":{"application/json":{"system_id":698910067,"current_power":0,"energy_lifetime":0,"energy_today":0,"last_interval_end_at":1557400231,"last_report_at":1557400231,"modules":5,"operational_at":null,"size_w":1250,"nmi":"1213141516","source":"meter","status":"normal","summary_date":"2019-05-12","battery_charge_w":1280,"battery_discharge_w":1280,"battery_capacity_wh":3360,"evse_power":[{"21458935":{"evse_max_charge_w":440,"evse_min_charge_w":2230}},{"12785966":{"evse_max_charge_w":530,"evse_min_charge_w":1200}}]}}},"401":{"description":"Authentication Error","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Not Authorized","details":"User is not authorized","code":401}}},"403":{"description":"Forbidden","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Forbidden","details":"Not authorized to access this resource","code":403}}},"404":{"description":"Not Found","schema":{"type":"object","properties":{"message":{"type":"string","description":"Error Type"},"details":{"type":"string","description":"Error Details"},"code":{"type":"integer","description":"Error Code"}}},"examples":{"application/json":{"message":"Not Found","details":"System not found for {:id=\u003e\"1\"}","code":404}}},"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"]}}},"429":{"description":"Too Many Requests","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":{"application/json":{"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","schema":{"type":"object","properties":{"reason":{"type":"string"},"message":{"type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"reason":"501","message":["Not Implemented"]}}}}}},"/api/v4/systems/{system_id}/devices":{"get":{"summary":"Retrieves devices for a given system","description":"Retrieves devices for a given system. Only devices that are active will be returned in the response.","tags":["System Details"],"produces":["application/json"],"parameters":[{"name":"system_id","in":"path","type":"integer","description":"The unique numeric ID of the system","required":true}],"responses":{"200":{"description":"List of devices","schema":{"type":"object","properties":{"system_id":{"type":"integer","description":"System id"},"total_devices":{"type":"integer","description":"Total active devices associated with the System"},"items":{"type":"string","description":"The list key"},"devices":{"type":"object","description":"Hash keys include all the possible device types: micros, meters, gateways, q_relays, ACBs, Encharges, Enpowers, ev_chargers, heat_pump, iq_collars, iq_air, generators (if the devices of this type are present). For all the device types, the object will contain the serial_number and model with some additional information pertaining to the device type.","additionalProperties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"last_report_at":{"type":"integer"},"name":{"type":"string"},"serial_number":{"type":"string"},"part_number":{"type":"string"},"emu_sw_version":{"type":"string"},"sku":{"type":"string"},"model":{"type":"string"},"status":{"type":"string"},"active":{"type":"string"},"state":{"type":"string"},"config_type":{"type":"string"},"config_phase":{"type":"string","description":"Meter phase configuration: 'single' or 'three' (only for production and consumption meters)"},"product_name":{"type":"string"},"feoc_compliant":{"type":"boolean","description":"Foreign Entity of Concern compliant status (only for micros and encharges in US sites)"},"dom_compliant":{"type":"boolean","description":"Domestic Content compliant status (only for micros and encharges in US sites)"}}}}}}},"examples":{"application/json":{"system_id":698910067,"total_devices":11,"items":"devices","devices":{"micros":[{"id":1023273222,"last_report_at":1508174262,"name":"Microinverter 902167438951","serial_number":"902167438951","part_number":"800-01333-r01","sku":"IQ8A-72-2-US","model":"M250","status":"normal","active":true,"product_name":"M250","feoc_compliant":true,"dom_compliant":true},{"id":1023273243,"last_report_at":1508174262,"name":"Microinverter 902372021616","serial_number":"902372021616","part_number":"800-01333-r01","sku":"IQ8A-72-2-US","model":"M250","status":"normal","active":true,"product_name":"M250","feoc_compliant":true,"dom_compliant":true}],"meters":[{"id":1059640322,"last_report_at":1508174262,"name":"production","serial_number":"901553005272EIM1","part_number":"800-00655-r08","sku":null,"model":"Envoy S","status":"normal","active":true,"state":"enabled","config_type":"Production","config_phase":"three","product_name":"RGM"},{"id":1060400473,"last_report_at":1778493953,"name":"consumption","serial_number":"122105037250EIM2","part_number":"800-00655-r09","sku":null,"model":"IQ Envoy","status":"normal","active":true,"state":"enabled","config_type":"Net","config_phase":"single","product_name":"IQ Gateway"}],"gateways":[{"id":1059563029,"last_report_at":1508174262,"name":"Gateway 202323054201","serial_number":"901553005272","part_number":"800-00655-r08","emu_sw_version":"D4.6.11.170403 (799d2d)","sku":"ENV-IQ-AM1-240","model":"Envoy-S-Standard-NA","status":"normal","active":true,"cellular_modem":{"imei":"352009112238477","part_num":"860-00157-r01","sku":"CELLMODEM-M1","plan_start_date":1614796200,"plan_end_date":1772562600},"product_name":"Envoy-S-Metered-EU"}],"q_relays":[{"id":1059640316,"last_report_at":1508174262,"name":"IQ Relay 912158973973","serial_number":"912158973973","part_number":"800-00595-r01","sku":"Q-RELAY-1P-INT","model":"","status":"normal","active":true,"product_name":"IQ Relay"},{"id":1059640326,"last_report_at":1508174262,"name":"IQ Relay 912163603334","serial_number":"912163603334","part_number":"800-00595-r01","sku":"Q-RELAY-1P-INT","model":"","status":"normal","active":true,"product_name":"IQ Relay"}],"acbs":[{"id":1059640321,"last_report_at":1508174262,"name":"AC Battery 911364446952","serial_number":"911364446952","part_number":"800-00560-r03","sku":"IQ7-B1200-LN-I-INT01-RV0","model":"","status":"normal","active":true,"product_name":"ACB"},{"id":1059640321,"last_report_at":1508174262,"name":"AC Battery 911499228280","serial_number":"911499228280","part_number":"800-00560-r03","sku":"IQ7-B1200-LN-I-INT01-RV0","model":"","status":"normal","active":true,"product_name":"ACB"}],"encharges":[{"id":1059640295,"last_report_at":1508174262,"name":"IQ Battery 492312001241","serial_number":"121593621979","part_number":"800-00562-r01","sku":"B03-A01-US00-1-3","model":"","status":"normal","active":true,"product_name":"IQ Battery R3 - 5P","feoc_compliant":true,"dom_compliant":true}],"enpowers":[{"id":1059640294,"last_report_at":1508174262,"name":"IQ System Controller 482218007023","serial_number":"121245173988","part_number":"800-01135-r02","sku":"EP200G101-M240US00","model":"","status":"normal","active":true,"product_name":"IQ System Controller"}],"ev_chargers":[{"id":"","sku":"","status":"normal","serial_number":"25901946","name":"EV Charger_1","model":"Keba_P30","part_number":"","last_report_at":1700074065,"firmware":"","active":true}],"heat_pump":[{"id":"","SKU":"","status":"normal","serial_number":"","name":"Viessmann VitoCal 300G","model":"Expert Net Control 2302","part_number":"","last_report_at":1700074065,"firmware":"","sg_ready_relay":"Expert net control 2302","iq_er":"Nano hub 2","active":true}],"iq_collars":[{"id":1085310043,"last_report_at":1757523711,"name":"IQ Meter Collar 482443008618","serial_number":"482443008618","part_number":"865-00401-r01","sku":"MC-200-011-V01","model":"","status":"normal","active":true,"product_name":"IQ Meter Collar"}],"iq_air":[{"id":"","last_report_at":null,"name":"IQ Air 1223131061889","serial_number":"1223131061889","part_number":"241.124.42 update 8","sku":"update 1","model":"","

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