Enphase Energy Meters API

The Meters API from Enphase Energy — 2 operation(s) for meters.

Operations 2

GET /api/v4/systems/{system_id}/meters/{serial_number} Returns the requested meter detail.
POST /api/v4/activations/{activation_id}/meters/{serial_number}/meter_control Enable or Disable the meters.

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-meters-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-meters-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Commissioning Meters API
  version: v4
servers:
- url: https://api.enphaseenergy.com
tags:
- name: Meters
paths:
  /api/v4/systems/{system_id}/meters/{serial_number}:
    get:
      summary: Returns the requested meter detail.
      description: Returns the requested meter by serial number. You must have access to the requested system and meter; otherwise a 401 is returned.
      parameters:
      - name: system_id
        in: path
        description: System ID
        required: true
        schema:
          type: integer
      - name: serial_number
        in: path
        description: Meter serial number
        required: true
        schema:
          type: string
      tags:
      - Meters
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  serial_number:
                    type: string
                    description: Meter serial number
                  manufacturer:
                    type: string
                    description: Name of the manufacturer
                  model:
                    type: string
                    description: Model
                  type:
                    type: string
                    description: Meter type
                  operational_date:
                    type: string
                    description: Operational date
                  first_report_date:
                    type: string
                    description: First report date
                  last_report_date:
                    type: string
                    description: Last report date
                  phase:
                    type: string
                    description: Phase
                  envoy_serial_number:
                    type: string
                    description: Envoy serial number
                  status:
                    type: string
                    description: Meter status
                  state:
                    type: string
                    description: Meter state
              example:
                serial_number: '123456789012'
                manufacturer: Enphase Energy
                model: Envoy S
                type: production
                operational_date: '2017-06-13'
                first_report_date: '2020-06-11T22:15:00-08:00'
                last_report_date: '2020-06-14T22:15:00-08:00'
                phase: L1(A)
                envoy_serial_number: '121832000404'
                status: normal
                state: enabled
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '401'
                message:
                - Not authorized to access requested resource.
                - API Key missing in url/headers!
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '404'
                message:
                - Meter not found
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '405'
                message:
                - Method not allowed
        '429':
          description: Too Many Requests
          content:
            application/json:
              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
              example:
                reason: '429'
                message:
                - Usage limit exceeded for plan Partner (custom)
                period: minute
                period_start: 1623825660
                period_end: 1623825720
                limit: 5
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '501'
                message:
                - Not Implemented
  /api/v4/activations/{activation_id}/meters/{serial_number}/meter_control:
    post:
      summary: Enable or Disable the meters.
      description: Enable or Disable the meters. You must have access to the requested system and meter; otherwise a 401 is returned.
      parameters:
      - name: activation_id
        in: path
        description: Activation ID
        required: true
        schema:
          type: integer
      - name: serial_number
        in: path
        description: Meter serial number
        required: true
        schema:
          type: string
      tags:
      - Meters
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '200'
                message:
                - Enable task sent to meter. Please wait until meter is enabled
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '401'
                message:
                - Not authorized to access requested resource.
                - API Key missing in url/headers!
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '404'
                message:
                - Meter not found
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '405'
                message:
                - Method not allowed
        '422':
          description: Unprocessable entity. The body contains error information in a hash of errorMessages and an optional errorCode
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: integer
                  errorMessages:
                    type: array
                    items:
                      type: string
              example:
                errorMessages:
                - Invalid status, expected status is 'enabled' or 'disabled'
        '429':
          description: Too Many Requests
          content:
            application/json:
              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
              example:
                reason: '429'
                message:
                - Usage limit exceeded for plan Partner (custom)
                period: minute
                period_start: 1623825660
                period_end: 1623825720
                limit: 5
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                  message:
                    type: array
                    items:
                      type: string
              example:
                reason: '501'
                message:
                - Not Implemented
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                  - enabled
                  - disabled
                  description: ''