SolarEdge Sites API

Site list and site-level data

OpenAPI Specification

solar-edge-sites-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SolarEdge Monitoring Accounts Sites 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: Sites
  description: Site list and site-level data
paths:
  /sites/list:
    get:
      operationId: getSiteList
      summary: Get Site List
      description: Returns a paginated list of sites associated with the account token. Sites can be filtered by status and sorted by various properties.
      tags:
      - Sites
      parameters:
      - name: size
        in: query
        description: Number of sites to return per page (max 100)
        schema:
          type: integer
          default: 100
          maximum: 100
      - name: startIndex
        in: query
        description: Starting index for pagination
        schema:
          type: integer
          default: 0
      - name: searchText
        in: query
        description: Free-text search across Name, Notes, Email, Country, State, City, Zip, Full address
        schema:
          type: string
      - name: sortProperty
        in: query
        description: Property to sort results by
        schema:
          type: string
          enum:
          - Name
          - Country
          - State
          - City
          - Address
          - Zip
          - Status
          - PeakPower
          - InstallationDate
          - Amount
          - MaxSeverity
          - CreationTime
      - name: sortOrder
        in: query
        description: Sort order
        schema:
          type: string
          enum:
          - ASC
          - DESC
          default: ASC
      - name: status
        in: query
        description: Comma-separated list of site statuses to filter by, or "All"
        schema:
          type: string
          example: Active,Pending
      responses:
        '200':
          description: Successful response with site list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /site/{siteId}/details:
    get:
      operationId: getSiteDetails
      summary: Get Site Details
      description: Returns detailed information for a single site including location, configuration, and contact info.
      tags:
      - Sites
      parameters:
      - $ref: '#/components/parameters/siteId'
      responses:
        '200':
          description: Site details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteDetailsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/dataPeriod:
    get:
      operationId: getSiteDataPeriod
      summary: Get Site Data Period
      description: Returns the site energy production start and end dates (the period for which data is available).
      tags:
      - Sites
      parameters:
      - $ref: '#/components/parameters/siteId'
      responses:
        '200':
          description: Data period for the site
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataPeriodResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/overview:
    get:
      operationId: getSiteOverview
      summary: Get Site Overview
      description: Returns current site power and summary energy metrics including today, month, and lifetime energy totals as well as revenue where available. Supports comma-separated siteId for bulk requests (up to 100 sites).
      tags:
      - Sites
      parameters:
      - $ref: '#/components/parameters/siteId'
      responses:
        '200':
          description: Site overview with current power and energy summary
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteOverviewResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/image:
    get:
      operationId: getSiteImage
      summary: Get Site Image
      description: Returns the site image uploaded by the user.
      tags:
      - Sites
      parameters:
      - $ref: '#/components/parameters/siteId'
      - name: maxWidth
        in: query
        description: Maximum image width in pixels
        schema:
          type: integer
      - name: maxHeight
        in: query
        description: Maximum image height in pixels
        schema:
          type: integer
      - name: hash
        in: query
        description: Image hash for cache validation
        schema:
          type: integer
      responses:
        '200':
          description: Site image binary
          content:
            image/jpeg:
              schema:
                type: string
                format: binary
            image/png:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /site/{siteId}/installerImage:
    get:
      operationId: getSiteInstallerImage
      summary: Get Site Installer Image
      description: Returns the installer logo image for the site.
      tags:
      - Sites
      parameters:
      - $ref: '#/components/parameters/siteId'
      responses:
        '200':
          description: Installer logo image binary
          content:
            image/jpeg:
              schema:
                type: string
                format: binary
            image/png:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    DataPeriodResponse:
      type: object
      properties:
        dataPeriod:
          type: object
          properties:
            startDate:
              type: string
              format: date
              description: First date with energy data (YYYY-MM-DD)
            endDate:
              type: string
              format: date
              description: Last date with energy data (YYYY-MM-DD)
    Location:
      type: object
      properties:
        country:
          type: string
        state:
          type: string
        city:
          type: string
        address:
          type: string
        address2:
          type: string
        zip:
          type: string
        timeZone:
          type: string
        countryCode:
          type: string
        stateCode:
          type: string
    EnergyWithRevenue:
      type: object
      properties:
        energy:
          type: number
          format: float
          description: Energy in Wh
        revenue:
          type: number
          format: float
          description: Revenue generated (where applicable)
    Module:
      type: object
      properties:
        manufacturerName:
          type: string
        modelName:
          type: string
        maximumPower:
          type: number
        temperatureCoef:
          type: number
    SiteOverviewResponse:
      type: object
      properties:
        overview:
          type: object
          properties:
            lastUpdateTime:
              type: string
              description: Timestamp of last data update
            lifeTimeData:
              $ref: '#/components/schemas/EnergyWithRevenue'
            lastYearData:
              $ref: '#/components/schemas/EnergyWithRevenue'
            lastMonthData:
              $ref: '#/components/schemas/EnergyWithRevenue'
            lastDayData:
              $ref: '#/components/schemas/EnergyWithRevenue'
            currentPower:
              type: object
              properties:
                power:
                  type: number
                  format: float
                  description: Current power production in W
    SiteDetailsResponse:
      type: object
      properties:
        details:
          $ref: '#/components/schemas/Site'
    Site:
      type: object
      properties:
        id:
          type: integer
          description: Unique site identifier
        name:
          type: string
          description: Site name
        accountId:
          type: integer
          description: Account identifier
        status:
          type: string
          enum:
          - Active
          - Pending
          - Disabled
          description: Current site status
        peakPower:
          type: number
          format: float
          description: Site peak power capacity in kW
        lastUpdateTime:
          type: string
          description: Last update timestamp
        installationDate:
          type: string
          format: date
          description: Installation date in YYYY-MM-DD format
        ptoDate:
          type: string
          format: date
          description: Permission to operate date
        notes:
          type: string
          description: Site notes
        type:
          type: string
          description: Site type (e.g., Optimizers & Inverters)
        location:
          $ref: '#/components/schemas/Location'
        primaryModule:
          $ref: '#/components/schemas/Module'
        uris:
          type: object
          additionalProperties:
            type: string
        publicSettings:
          type: object
          properties:
            isPublic:
              type: boolean
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code
        message:
          type: string
          description: Human-readable error message
    SiteListResponse:
      type: object
      properties:
        sites:
          type: object
          properties:
            count:
              type: integer
              description: Total number of sites matching the query
            list:
              type: array
              items:
                $ref: '#/components/schemas/Site'
  responses:
    TooManyRequests:
      description: Rate limit exceeded. The API allows up to 3 concurrent requests per source IP, and 300 requests per day per account token and per site.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    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'
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: API key generated through the SolarEdge monitoring portal