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.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/enphase-monitoring-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

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