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