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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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
      operationId: getApiV4SystemsBySystemIdMetersBySerialNumber
      x-operation-id-source: derived
  /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: ''
      operationId: postApiV4ActivationsByActivationIdMetersBySerialNumberMeterControl
      x-operation-id-source: derived