SolarEdge Equipment API

Inverters, batteries, meters, sensors, and inventory

OpenAPI Specification

solar-edge-equipment-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SolarEdge Monitoring Accounts Equipment API
  description: The SolarEdge Monitoring API provides programmatic access to data from SolarEdge solar energy systems. It delivers site energy measurements, power flow data, inverter technical telemetry, battery storage status, equipment inventory, and environmental benefit metrics for SolarEdge-connected systems. Authentication is via an API key passed as a query parameter. All requests are made over HTTPS with responses returned in JSON format.
  version: 1.0.0
  contact:
    name: SolarEdge Developer Support
    url: https://developers.solaredge.com
  license:
    name: Proprietary
    url: https://www.solaredge.com/us/commercial/developer
  x-api-id: solar-edge:solar-edge-monitoring-api
servers:
- url: https://monitoringapi.solaredge.com
  description: SolarEdge Monitoring API production server
security:
- ApiKeyQuery: []
tags:
- name: Equipment
  description: Inverters, batteries, meters, sensors, and inventory
paths:
  /site/{siteId}/inventory:
    get:
      operationId: getSiteInventory
      summary: Get Site Inventory
      description: Returns the inventory of SolarEdge equipment at the site, including inverters/SMIs, batteries, meters, gateways, and sensors with their serial numbers and status.
      tags:
      - Equipment
      parameters:
      - $ref: '#/components/parameters/siteId'
      responses:
        '200':
          description: Site equipment inventory
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InventoryResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /equipment/{siteId}/list:
    get:
      operationId: getComponentsList
      summary: Get Components List
      description: Returns a list of inverters and SMIs in the specified site.
      tags:
      - Equipment
      parameters:
      - name: siteId
        in: path
        required: true
        description: Unique identifier for the site
        schema:
          type: integer
      responses:
        '200':
          description: List of site components
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentsListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/inverter/{serialNumber}/data:
    get:
      operationId: getInverterTechnicalData
      summary: Get Inverter Technical Data
      description: Returns technical performance data for a specific inverter over a given time period. Maximum date range is 1 week (7 days).
      tags:
      - Equipment
      parameters:
      - $ref: '#/components/parameters/siteId'
      - name: serialNumber
        in: path
        required: true
        description: Inverter serial number
        schema:
          type: string
      - name: startTime
        in: query
        required: true
        description: Start date-time in "YYYY-MM-DD HH:MM:SS" format
        schema:
          type: string
      - name: endTime
        in: query
        required: true
        description: End date-time in "YYYY-MM-DD HH:MM:SS" format
        schema:
          type: string
      responses:
        '200':
          description: Inverter technical performance data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InverterTechnicalDataResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/{serialNumber}/changeLog:
    get:
      operationId: getEquipmentChangeLog
      summary: Get Equipment Change Log
      description: Returns a list of equipment component replacements ordered by date. Applicable to inverters, optimizers, batteries, and gateways.
      tags:
      - Equipment
      parameters:
      - $ref: '#/components/parameters/siteId'
      - name: serialNumber
        in: path
        required: true
        description: Serial number of the equipment component
        schema:
          type: string
      responses:
        '200':
          description: Equipment change log
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquipmentChangeLogResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/meters:
    get:
      operationId: getSiteMeters
      summary: Get Site Meters
      description: Returns meter data for the site including lifetime energy reading, metadata, and the device to which each meter is connected.
      tags:
      - Equipment
      parameters:
      - $ref: '#/components/parameters/siteId'
      - name: startTime
        in: query
        required: true
        description: Start date-time in "YYYY-MM-DD HH:MM:SS" format
        schema:
          type: string
      - name: endTime
        in: query
        required: true
        description: End date-time in "YYYY-MM-DD HH:MM:SS" format
        schema:
          type: string
      - $ref: '#/components/parameters/timeUnit'
      - name: meters
        in: query
        description: Comma-separated list of meter types to include
        schema:
          type: string
          example: Production,Consumption,FeedIn,Purchased
      responses:
        '200':
          description: Meter data for the site
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetersResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /equipment/{siteId}/sensors:
    get:
      operationId: getSensorList
      summary: Get Sensor List
      description: Returns a list of all sensors at the site and the device to which they are connected.
      tags:
      - Equipment
      parameters:
      - name: siteId
        in: path
        required: true
        description: Unique identifier for the site
        schema:
          type: integer
      - name: startTime
        in: query
        description: Start date-time for sensor data (ISO 8601 format YYYY-MM-DDTHH:MM:SS); if provided returns sensor data
        schema:
          type: string
      - name: endTime
        in: query
        description: End date-time for sensor data (ISO 8601 format YYYY-MM-DDTHH:MM:SS); if provided returns sensor data
        schema:
          type: string
      responses:
        '200':
          description: Sensor list or sensor data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SensorListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    PhaseData:
      type: object
      properties:
        acCurrent:
          type: number
          format: float
          description: AC current in A
        acVoltage:
          type: number
          format: float
          description: AC voltage in V
        acFrequency:
          type: number
          format: float
          description: AC frequency in Hz
        apparentPower:
          type: number
          format: float
          description: Apparent power in VA
        activePower:
          type: number
          format: float
          description: Active power in W
        reactivePower:
          type: number
          format: float
          description: Reactive power in VAR
        cosPhi:
          type: number
          format: float
          description: Power factor (cos phi)
    ComponentsListResponse:
      type: object
      properties:
        list:
          type: object
          properties:
            count:
              type: integer
            list:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  manufacturer:
                    type: string
                  model:
                    type: string
                  serialNumber:
                    type: string
                  kWpDC:
                    type: number
                    format: float
    InverterTechnicalDataResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            count:
              type: integer
            telemetries:
              type: array
              items:
                $ref: '#/components/schemas/InverterTelemetry'
    InventoryResponse:
      type: object
      properties:
        Inventory:
          type: object
          properties:
            inverters:
              type: array
              items:
                $ref: '#/components/schemas/Inverter'
            batteries:
              type: array
              items:
                $ref: '#/components/schemas/InventoryBattery'
            meters:
              type: array
              items:
                $ref: '#/components/schemas/Meter'
            gateways:
              type: array
              items:
                $ref: '#/components/schemas/Gateway'
            sensors:
              type: array
              items:
                $ref: '#/components/schemas/Sensor'
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Human-readable error message
    SensorListResponse:
      type: object
      properties:
        SiteSensors:
          type: object
          properties:
            count:
              type: integer
            list:
              type: array
              items:
                type: object
                properties:
                  connectedSolaredgeDeviceSN:
                    type: string
                  count:
                    type: integer
                  sensors:
                    type: array
                    items:
                      $ref: '#/components/schemas/Sensor'
    InventoryBattery:
      type: object
      properties:
        name:
          type: string
        serialNumber:
          type: string
        model:
          type: string
        manufacturer:
          type: string
        firmwareVersion:
          type: string
        connectedInverterSn:
          type: string
        nameplateCapacity:
          type: number
          format: float
    EquipmentChangeLogResponse:
      type: object
      properties:
        ChangeLog:
          type: object
          properties:
            count:
              type: integer
            list:
              type: array
              items:
                type: object
                properties:
                  date:
                    type: string
                    format: date
                    description: Date of equipment change
                  serialNumber:
                    type: string
                    description: Serial number of replacement component
                  partNumber:
                    type: string
                    description: Part number of replacement component
    Inverter:
      type: object
      properties:
        name:
          type: string
        manufacturer:
          type: string
        model:
          type: string
        serialNumber:
          type: string
        kWpDC:
          type: number
          format: float
        communicationMethod:
          type: string
        cpuVersion:
          type: string
        SN:
          type: string
        connectedOptimizers:
          type: integer
    Meter:
      type: object
      properties:
        name:
          type: string
        manufacturer:
          type: string
        model:
          type: string
        firmwareVersion:
          type: string
        connectedSolaredgeDeviceSN:
          type: string
        type:
          type: string
        form:
          type: string
    TimedValue:
      type: object
      properties:
        date:
          type: string
          description: Measurement date/time
        value:
          type: number
          format: float
          nullable: true
          description: Measured value (null if no data)
    Gateway:
      type: object
      properties:
        name:
          type: string
        serialNumber:
          type: string
        firmwareVersion:
          type: string
    InverterTelemetry:
      type: object
      properties:
        date:
          type: string
          description: Measurement timestamp
        totalActivePower:
          type: number
          format: float
          description: Total active power in W
        dcVoltage:
          type: number
          format: float
          description: DC voltage in V
        groundFaultResistance:
          type: number
          format: float
          description: Ground fault resistance
        powerLimit:
          type: number
          format: float
          description: Power limit percentage
        totalEnergy:
          type: number
          format: float
          description: Total lifetime energy in Wh
        temperature:
          type: number
          format: float
          description: Inverter temperature in Celsius
        inverterMode:
          type: string
          description: Current inverter operating mode
        operationMode:
          type: integer
          description: Numeric operation mode code
        L1Data:
          $ref: '#/components/schemas/PhaseData'
        L2Data:
          $ref: '#/components/schemas/PhaseData'
        L3Data:
          $ref: '#/components/schemas/PhaseData'
    Sensor:
      type: object
      properties:
        connectedSolaredgeDeviceSN:
          type: string
        id:
          type: string
        connectedTo:
          type: string
        category:
          type: string
        type:
          type: string
    MetersResponse:
      type: object
      properties:
        meterEnergyDetails:
          type: object
          properties:
            timeUnit:
              type: string
            unit:
              type: string
            meterSerialNumber:
              type: string
            connectedSolaredgeDeviceSN:
              type: string
            model:
              type: string
            meterType:
              type: string
            values:
              type: array
              items:
                $ref: '#/components/schemas/TimedValue'
  responses:
    NotFound:
      description: Site or resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    siteId:
      name: siteId
      in: path
      required: true
      description: Unique numeric identifier for the site. Supports comma-separated values for bulk requests (up to 100 site IDs).
      schema:
        type: string
        example: '12345'
    timeUnit:
      name: timeUnit
      in: query
      description: Time aggregation unit for energy data
      schema:
        type: string
        enum:
        - QUARTER_OF_AN_HOUR
        - HOUR
        - DAY
        - WEEK
        - MONTH
        - YEAR
        default: DAY
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: API key generated through the SolarEdge monitoring portal