Solar Panel Energy Prediction
✔ This is the latest version of the API (v2).
Looking for the previous version? You can find the v1 documentation here.
Product concept
Solar Panel Energy Prediction service allows users to accurately estimate solar power generation and determine the energy output of each PV panel.
Main features of Solar Panel Energy Prediction:
- API response contains daily solar panel power output data for each solar panel with 1 hour, 15 minutes and 1 day detalization
- Each API response contains also essential solar irradiation data (DNI, GHI and DHI)
- Current and 15 days ahead forecast data for solar panel power output
- Historical solar panel power output data is available for 47+ years back (from 1st January 1979)
- Create an unlimited number of solar panels for a particular location. Users could define solar panel by specifying its type, tilt and azimuth angles
- Making API call to particular location get solar panel power output data for all solar panels associated with this location
- Global coverage
You can find the previous documentation v1 here
Data is available in JSON format.
How to use the service
- Sign up to OpenWeather service in case you haven't got your OpenWeather API key yet. Do not forget to add your key to the each API call in paragraphs 3, 4 and 5.
- Follow the pricing page to learn details about the price. Please note that product is available via the separate subscription only, which allows you to pay only for the created locations.
- Create a unique location via API call according "Step 1: Manage my location". Create a location where your solar panels are located in accordance with chapter "How to create a unique location" and receive location ID number. Please pay attention that chapters "How to get a location", "How to get a list of created locations" ,"How to delete a location" described how to manage created locations.
- Create a solar panels for your location according "Step 2: Operations with solar panels". Create a solar panel for location created at the previous step according to the documentation "How to create a solar panel". Please note that you could create unlimited number of panels for one location.
- Make an API call to get location solar panels power output and location solar irradiation data according step 3.
Please note that product is available via the separate subscription only, which allows you to pay only for the created locations.
Step 1: Manage my location
How to create a unique location
This HTTP method is used to create a new location and receive location ID for it. You need to pass a geographical coordinates of location in parameters. In case of successful creation method returns an HTTP code 201.
Method: POST
Header: Content-Type: application/json
URL
https://api.openweathermap.org/energy/2.0/locations?appid={API key}Parameters | ||
|---|---|---|
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
Example of the request body
{
"type": "point",
"coordinates": [
{
"lat": 51.507222,
"lon": -0.1275
}
]
}Parameters | ||
|---|---|---|
| required | Type of the location. Allowed type - point |
| required | Latitude, decimal (−90; 90) |
| required | Longitude, decimal (−180; 180) |
Example of API response
{
"location_id": "F01E165B-22F3-4591-89D4-F238E92F6885",
"type": "point",
"coordinates": [
{
"lat": 51.507222,
"lon": -0.1275
}
]
}Fields in API response
location_idUnique identifier of the location assigned at resource creationtypeType of the locationlatLatitude of the location, decimal (−90; 90)lonLongitude of the location, decimal (-180; 180)
Please note:
- When creating unique locations, coordinates are rounded to 6 decimal places
- To check geographical coordinates of previously created location, please see section "How to get location"
How to get a location data
You could get geographical coordinates for previously created location by its id number following instruction below. In case of success method returns an HTTP code 200.
Method: GET
URL
https://api.openweathermap.org/energy/2.0/location/{location_id}?appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the location assigned at resource creation. You could find all created locations id using instruction here |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
URL example
https://api.openweathermap.org/energy/2.0/location/F01E165B-22F3-4591-89D4-F238E92F6885?appid={API key}Example of API response
{
"location_id": "F01E165B-22F3-4591-89D4-F238E92F6885",
"type": "point",
"coordinates": [
{
"lat": 51.507222,
"lon": -0.1275
}
]
}Fields in API response
location_idUnique identifier of the location assigned at resource creationtypeType of the locationlatLatitude of the location, decimal (−90; 90)lonLongitude of the location, decimal (-180; 180)
How to get a list of created locations
You could get a list of all created locations using your OpenWeather API key and instruction below. In case of success method returns an HTTP code 200.
Method: GET
URL
https://api.openweathermap.org/energy/2.0/locations?appid={API key}Parameters | ||
|---|---|---|
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
Example of API response
{
"location_id": "F01E165B-22F3-4591-89D4-F238E92F6885",
"type": "point",
"coordinates": [
{
"lat": 51.5072,
"lon": -0.1275
}
]
}
]Fields in API response
location_idUnique identifier of the location assigned at resource creationtypeType of the locationlatLatitude of the location, decimal (−90; 90)lonLongitude of the location, decimal (-180; 180)
How to delete a location
You could delete created location by its id number using folowing URL. Please pay attention, that all solar panels assosiated with this location will deleted as well. In case of successful removing method returns an HTTP code 204.
Method: DELETE
URL
https://api.openweathermap.org/energy/2.0/location/{location_id}?appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the location assigned at resource creation |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
URL example
https://api.openweathermap.org/energy/2.0/location/F01E165B-22F3-4591-89D4-F238E92F6885?appid={API key}API response
Please pay attention if the delete request is successfully processed, then no response will be returned.
Step 2: Operations with solar panels
How to create a solar panel
This HTTP method is used to create a new solar panel associated with location and receive solar panel ID for this panel. You need to pass a set of solar panel parameters: tilt, azimuth and peak power. In case of successful creation method returns an HTTP code 201.
Method: POST
Header: Content-Type: application/json
URL
https://api.openweathermap.org/energy/2.0/location/{location_id}/panels?appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the location assigned at resource creation |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
Example of the request body
{
"type": "mono-si",
"area": 1.5,
"tilt": 45,
"azimuth": 182,
"peak_power": 2.5
}Parameters | ||
|---|---|---|
| required | PV technology type used in solar panel. In case not specified |
| required | Area of solar panel in square meters. In case |
| required | Panel installation tilt angle in degrees (0; 90) |
| required | Panel installation azimuth angle in degrees (0; 360). An azimuth circle consists of 360 degrees. Ninety degrees corresponds to east, 180 degrees is south, 270 degrees is west, and 360 degrees and 0 degrees mark north |
| required | Total solar panel installation peak power output in kilowatts. In case |
Example of API response
{
"panel_id": "F48BE762-6101-405B-BB72-E0CA9FE1A8FF",
"location_id": "F01E165B-22F3-4591-89D4-F238E92F6885",
"type": "mono-si",
"area": 1.5,
"tilt": 45,
"azimuth": 182,
"peak_power": 2.5
}Fields in API response
panel_idUnique identifier of the solar panel assigned at resource creationlocation_idUnique identifier of the location assigned at resource creationtypePV technology type used in solar panelareaArea of solar panel, m2tiltPanel installation tilt angle in degrees (0; 90)azimuthPanel installation azimuth angle in degrees (0; 360)peak_powerTotal solar panel installation peak power output in kilowatts
How to get a solar panel data
You could get information about created solar panel by its id number using API call below. In case of success method returns an HTTP code 200.
Method: GET
URL
https://api.openweathermap.org/energy/2.0/panel/{panel_id}?appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the solar panel assigned at resource creation |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
URL example
https://api.openweathermap.org/energy/2.0/panel/F48BE762-6101-405B-BB72-E0CA9FE1A8FF?appid={API key}Example of API response
{
"panel_id": "F48BE762-6101-405B-BB72-E0CA9FE1A8FF",
"location_id": "F01E165B-22F3-4591-89D4-F238E92F6885",
"type": "mono-si",
"area": 1.5,
"tilt": 45,
"azimuth": 182,
"peak_power": 2.5
}Fields in API response
panel_idUnique identifier of the solar panel assigned at resource creationlocation_idUnique identifier of the location assigned at resource creationtypePV technology type used in solar panelareaArea of solar panel, m2tiltPanel installation tilt angle in degrees (0; 90)azimuthPanel installation azimuth angle in degrees (0; 360)peak_powerTotal solar panel installation peak power output in kilowatts (kW)
How to get a list of created solar panels
You could get a list of all created solar panels for particular location using OpenWeather API key. In case of success method returns an HTTP code 200.
Method: GET
URL
https://api.openweathermap.org/energy/2.0/location/{location_id}/panels?appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the location assigned at resource creation |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
URL example
https://api.openweathermap.org/energy/2.0/location/F01E165B-22F3-4591-89D4-F238E92F6885/panels?appid={API key}Example of API response
[
{
"panel_id": "F48BE762-6101-405B-BB72-E0CA9FE1A8FF",
"location_id": "F01E165B-22F3-4591-89D4-F238E92F6885",
"type": "mono-si",
"area": 1.5,
"tilt": 45,
"azimuth": 182,
"peak_power": 2.5
}
]Fields in API response
panel_idUnique identifier of the solar panel assigned at resource creationlocation_idUnique identifier of the location assigned at resource creationtypePV technology type used in solar panelareaArea of solar panel, m2tiltA Panel installation tilt angle in degrees (0; 90)azimuthPanel installation azimuth angle in degrees (0; 360)peak_powerTotal solar panel installation peak power output in kilowatts
How to delete a solar panel
You could delete created solar panel by its id number using folowing API call. In case of successful removing method returns an HTTP code 204.
Method: DELETE
URL
https://api.openweathermap.org/energy/2.0/panel/{panel_id}?appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the solar panel assigned at resource creation |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
URL example
https://api.openweathermap.org/energy/2.0/panel/F01E165B-22F3-4591-89D4-F238E92F6885?appid={API key}API response
Please pay attention if the delete request is successfully processed, then no response will be returned.
Step 3: Get solar panel power output and solar irradiation data by location
To get solar panel power output data make an API call according rules below.
In this section you will find how to request historical starting from 1st January 1979, current or forecast for 15 days ahead daily aggregated and accumulated 1 day, 1 hour or 15 minutes interval detalization for solar panel power output and solar irradiation data for particular geographical location and for specified date.
You could find detailed information about what technologies, algorithms, etc. are behind the solar irradiation calculations here . In case of success method returns an HTTP code 200. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75.
How to make an API call
URL
https://api.openweathermap.org/energy/2.0/location/{location_id}/interval_data?date={date}&interval={interval}&appid={API key}Parameters | ||
|---|---|---|
| required | Unique identifier of the location assigned at resource creation |
| required | Date in the `YYYY-MM-DD` format for which data is requested. Date available from 1979-01-01 up to +15 days to the current date |
| optional | The time interval during which the energy is summed up and solar panel power output is calculated, defines the temporary resolution of solar radiation data. If not specified, the default interval of "1h" (1 hour) will be used. Available values for this parameter include: "15m" (15 minutes), "1h" (1 hour) and "1d" (1 day) |
| required | Your unique API key (you can always find it on your account page under the "API key" tab) |
If the service detected timezone for your location incorrectly you can specify correct timezone manually by adding tz parameter in the ±XX:XX format to API call.
API call
https://api.openweathermap.org/energy/2.0/location/{location_id}/interval_data?date={date}&interval={interval}&tz={tz}&appid={API key}
URL example
https://api.openweathermap.org/energy/2.0/location/F01E165B-22F3-4591-89D4-F238E92F6885/interval_data?date=2023-03-30&interval=1h&tz=+05:45&appid={API key}
Please pay attention that in case timezone is specified time of sunset and sunrise will be returned in accordance with this specified timezone.
URL example
https://api.openweathermap.org/energy/2.0/location/018aa7aa-3d5f-85a2-91ee-b1b53c3e98a4/interval_data?date=2021-05-01&interval=1h&appid={API key}Example of API response
{
"location_id": "01955d08-a960-8b0a-819c-553b7b742ebe",
"lat": 70.609,
"lon": 170.89,
"date": "2025-03-01",
"tz": "+12:00",
"interval": "1h",
"sunrise": "2025-03-01T08:06:48",
"sunset": "2025-03-01T17:32:34",
"intervals": [
{
"start": "00:00",
"end": "00:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "01:00",
"end": "01:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "02:00",
"end": "02:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "03:00",
"end": "03:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "04:00",
"end": "04:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "05:00",
"end": "05:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "06:00",
"end": "06:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "07:00",
"end": "07:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "08:00",
"end": "08:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 8.16,
"dni": 66.84,
"dhi": 11.48
},
"cloudy_sky": {
"ghi": 2.04,
"dni": 0,
"dhi": 2.04
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 20.56,
"dni": 160.2,
"dhi": 22.64
},
"cloudy_sky": {
"ghi": 5.12,
"dni": 0,
"dhi": 5.12
}
},
"irradiation": {
"clear_sky": {
"ghi": 8.15,
"dni": 66.82,
"dhi": 11.48
},
"cloudy_sky": {
"ghi": 2.04,
"dni": 0,
"dhi": 2.04
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 6.13633,
"max_power": 13.06448,
"energy": 6.13634
},
"cloudy_sky": {
"avg_power": 0.82957,
"max_power": 2.09231,
"energy": 0.82958
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.14946,
"max_power": 0.3503,
"energy": 0.14946
},
"cloudy_sky": {
"avg_power": 0.00406,
"max_power": 0.01025,
"energy": 0.00406
}
}
]
},
{
"start": "09:00",
"end": "09:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 52.32,
"dni": 295.32,
"dhi": 35.12
},
"cloudy_sky": {
"ghi": 13.08,
"dni": 0,
"dhi": 13.08
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 72,
"dni": 360.12,
"dhi": 41.24
},
"cloudy_sky": {
"ghi": 18,
"dni": 0,
"dhi": 18
}
},
"irradiation": {
"clear_sky": {
"ghi": 52.33,
"dni": 295.31,
"dhi": 35.11
},
"cloudy_sky": {
"ghi": 13.08,
"dni": 0,
"dhi": 13.08
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 24.88815,
"max_power": 31.64728,
"energy": 24.88815
},
"cloudy_sky": {
"avg_power": 5.34521,
"max_power": 7.35579,
"energy": 5.34521
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.63126,
"max_power": 0.76034,
"energy": 0.63125
},
"cloudy_sky": {
"avg_power": 0.02617,
"max_power": 0.03602,
"energy": 0.02616
}
}
]
},
{
"start": "10:00",
"end": "10:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 102.28,
"dni": 430.76,
"dhi": 48.44
},
"cloudy_sky": {
"ghi": 25.56,
"dni": 0,
"dhi": 25.56
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 118.96,
"dni": 464.84,
"dhi": 52
},
"cloudy_sky": {
"ghi": 29.72,
"dni": 0,
"dhi": 29.72
}
},
"irradiation": {
"clear_sky": {
"ghi": 102.27,
"dni": 430.77,
"dhi": 48.43
},
"cloudy_sky": {
"ghi": 25.57,
"dni": 0,
"dhi": 25.57
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 41.03859,
"max_power": 45.96232,
"energy": 41.03859
},
"cloudy_sky": {
"avg_power": 10.44522,
"max_power": 12.14523,
"energy": 10.44522
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.86729,
"max_power": 0.90358,
"energy": 0.86728
},
"cloudy_sky": {
"avg_power": 0.05115,
"max_power": 0.05947,
"energy": 0.05116
}
}
]
},
{
"start": "11:00",
"end": "11:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 139.88,
"dni": 500.6,
"dhi": 55.96
},
"cloudy_sky": {
"ghi": 34.96,
"dni": 0,
"dhi": 34.96
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 150.04,
"dni": 516.8,
"dhi": 57.76
},
"cloudy_sky": {
"ghi": 37.52,
"dni": 0,
"dhi": 37.52
}
},
"irradiation": {
"clear_sky": {
"ghi": 139.87,
"dni": 500.59,
"dhi": 55.95
},
"cloudy_sky": {
"ghi": 34.97,
"dni": 0,
"dhi": 34.97
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 51.40534,
"max_power": 53.76556,
"energy": 51.40534
},
"cloudy_sky": {
"avg_power": 14.29476,
"max_power": 15.33274,
"energy": 14.29475
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.88541,
"max_power": 0.90707,
"energy": 0.88541
},
"cloudy_sky": {
"avg_power": 0.07,
"max_power": 0.07508,
"energy": 0.07
}
}
]
},
{
"start": "12:00",
"end": "12:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 158,
"dni": 528.48,
"dhi": 59.12
},
"cloudy_sky": {
"ghi": 39.88,
"dni": 0,
"dhi": 39.88
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 160.04,
"dni": 531.48,
"dhi": 59.44
},
"cloudy_sky": {
"ghi": 40.8,
"dni": 0,
"dhi": 40.8
}
},
"irradiation": {
"clear_sky": {
"ghi": 158.01,
"dni": 528.49,
"dhi": 59.11
},
"cloudy_sky": {
"ghi": 39.89,
"dni": 0,
"dhi": 39.89
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 54.55715,
"max_power": 54.8701,
"energy": 54.55715
},
"cloudy_sky": {
"avg_power": 16.30533,
"max_power": 16.67312,
"energy": 16.30533
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.74458,
"max_power": 0.8173,
"energy": 0.74459
},
"cloudy_sky": {
"avg_power": 0.07984,
"max_power": 0.08164,
"energy": 0.07984
}
}
]
},
{
"start": "13:00",
"end": "13:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 154.08,
"dni": 522.68,
"dhi": 58.44
},
"cloudy_sky": {
"ghi": 39.16,
"dni": 0,
"dhi": 39.16
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 159.08,
"dni": 530.04,
"dhi": 59.28
},
"cloudy_sky": {
"ghi": 40.8,
"dni": 0,
"dhi": 40.8
}
},
"irradiation": {
"clear_sky": {
"ghi": 154.09,
"dni": 522.69,
"dhi": 58.44
},
"cloudy_sky": {
"ghi": 39.15,
"dni": 0,
"dhi": 39.15
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 50.37289,
"max_power": 53.04252,
"energy": 50.37289
},
"cloudy_sky": {
"avg_power": 15.99884,
"max_power": 16.67312,
"energy": 15.99884
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.50046,
"max_power": 0.60307,
"energy": 0.50046
},
"cloudy_sky": {
"avg_power": 0.07834,
"max_power": 0.08164,
"energy": 0.07834
}
}
]
},
{
"start": "14:00",
"end": "14:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 128.64,
"dni": 481.48,
"dhi": 53.84
},
"cloudy_sky": {
"ghi": 32.16,
"dni": 0,
"dhi": 32.16
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 141.28,
"dni": 503.08,
"dhi": 56.2
},
"cloudy_sky": {
"ghi": 35.32,
"dni": 0,
"dhi": 35.32
}
},
"irradiation": {
"clear_sky": {
"ghi": 128.63,
"dni": 481.49,
"dhi": 53.83
},
"cloudy_sky": {
"ghi": 32.16,
"dni": 0,
"dhi": 32.16
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 39.80273,
"max_power": 44.60321,
"energy": 39.80272
},
"cloudy_sky": {
"avg_power": 13.14235,
"max_power": 14.43369,
"energy": 13.14234
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.21531,
"max_power": 0.32235,
"energy": 0.21531
},
"cloudy_sky": {
"avg_power": 0.06435,
"max_power": 0.07067,
"energy": 0.06436
}
}
]
},
{
"start": "15:00",
"end": "15:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 85.72,
"dni": 393,
"dhi": 44.56
},
"cloudy_sky": {
"ghi": 21.88,
"dni": 0,
"dhi": 21.88
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 103.96,
"dni": 435.52,
"dhi": 48.88
},
"cloudy_sky": {
"ghi": 26,
"dni": 0,
"dhi": 26
}
},
"irradiation": {
"clear_sky": {
"ghi": 85.71,
"dni": 393,
"dhi": 44.56
},
"cloudy_sky": {
"ghi": 21.89,
"dni": 0,
"dhi": 21.89
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 25.16378,
"max_power": 30.99857,
"energy": 25.16378
},
"cloudy_sky": {
"avg_power": 8.94546,
"max_power": 10.62503,
"energy": 8.94546
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.0944,
"max_power": 0.10434,
"energy": 0.09439
},
"cloudy_sky": {
"avg_power": 0.0438,
"max_power": 0.05203,
"energy": 0.04381
}
}
]
},
{
"start": "16:00",
"end": "16:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 34.6,
"dni": 223.8,
"dhi": 28.44
},
"cloudy_sky": {
"ghi": 9.36,
"dni": 0,
"dhi": 9.36
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 53.72,
"dni": 304.84,
"dhi": 35.92
},
"cloudy_sky": {
"ghi": 14.28,
"dni": 0,
"dhi": 14.28
}
},
"irradiation": {
"clear_sky": {
"ghi": 34.62,
"dni": 223.79,
"dhi": 28.46
},
"cloudy_sky": {
"ghi": 9.36,
"dni": 0,
"dhi": 9.36
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 11.5478,
"max_power": 15.53669,
"energy": 11.54779
},
"cloudy_sky": {
"avg_power": 3.82092,
"max_power": 5.83559,
"energy": 3.82092
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.05874,
"max_power": 0.07492,
"energy": 0.05875
},
"cloudy_sky": {
"avg_power": 0.01871,
"max_power": 0.02857,
"energy": 0.0187
}
}
]
},
{
"start": "17:00",
"end": "17:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 1.76,
"dni": 15.8,
"dhi": 4.16
},
"cloudy_sky": {
"ghi": 0.48,
"dni": 0,
"dhi": 0.48
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 6.52,
"dni": 60.2,
"dhi": 12.88
},
"cloudy_sky": {
"ghi": 1.84,
"dni": 0,
"dhi": 1.84
}
},
"irradiation": {
"clear_sky": {
"ghi": 1.76,
"dni": 15.79,
"dhi": 4.14
},
"cloudy_sky": {
"ghi": 0.49,
"dni": 0,
"dhi": 0.49
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 1.68101,
"max_power": 5.20536,
"energy": 1.68101
},
"cloudy_sky": {
"avg_power": 0.20024,
"max_power": 0.75193,
"energy": 0.20024
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0.00824,
"max_power": 0.02579,
"energy": 0.00824
},
"cloudy_sky": {
"avg_power": 0.00098,
"max_power": 0.00368,
"energy": 0.00098
}
}
]
},
{
"start": "18:00",
"end": "18:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "19:00",
"end": "19:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "20:00",
"end": "20:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "21:00",
"end": "21:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "22:00",
"end": "22:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
},
{
"start": "23:00",
"end": "23:59",
"avg_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"max_irradiance": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"irradiation": {
"clear_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
},
"cloudy_sky": {
"ghi": 0,
"dni": 0,
"dhi": 0
}
},
"panels": [
{
"panel_id": "01956c1a-e7ac-85ae-9a03-86208c2f6f83",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
},
{
"panel_id": "0196afd6-ffe3-885c-8132-53993fbd511a",
"clear_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
},
"cloudy_sky": {
"avg_power": 0,
"max_power": 0,
"energy": 0
}
}
]
}
]
}Fields in API response
location_idUnique identifier of the location assigned at resource creationlatLatitude of the location,decimal (−90; 90)lonLongitude of the location,decimal (-180; 180)dateDate specified in the API request in the `YYYY-MM-DD` format (from 1979-01-01 up to +15 days to the current date)tzTimezone in the ±XX:XX formatintervalTime interval during which the energy is summed up. Determines temporary resolution of solar radiation data. If not specified "1h" interval will be used. Available values : 15m, 1h and 1d.sunriseDate and time of sunrise based on date specified in the API request and timezone authomatically determinated by on latitude and longitute of requested location. If you added timezone parameter into API request, then time of sunrise will be recalculated in accordance with this timezone. For polar areas in midnight sun and polar night periods this parameter is not returned in the responsesunsetDate and time of sunset based on date specified in the API request and timezone authomatically determinated by on latitude and longitute of requested location. If you added timezone parameter into API request, then time of sunset will be recalculated in accordance with this timezone. For polar areas in midnight sun and polar night periods this parameter is not returned in the responseintervalsInterval detalization of daily aggregated irradiation data for the requested datestartStart of the time interval for which the energy is summed up. Time interval displays hour and minutes of the day for which indexes were aggregated in "hh:mm" formatendEnd of the time interval for which the energy is summed up. Time interval displays hour and minutes of the day for which indexes were aggregated in "hh:mm" formaavg_irradianceAverage irradiance per periodclear_skyClear sky modelghiClear sky GHI - Global Horizontal Irradiance, W/m2dniClear sky DNI - Direct Normal Irradiance, W/m2dhiClear sky DHI - Diffuse Horizontal Irradiance, W/m2
cloudy_skyCloudy sky modelghiCloudy sky GHI - Global Horizontal Irradiance, W/m2dniCloudy sky DNI - Direct Normal Irradiance, W/m2dhiCloudy sky DHI - Diffuse Horizontal Irradiance, W/m2
max_irradianceMaximum irradiance per periodclear_skyClear sky modelghiClear sky GHI - Global Horizontal Irradiance, W/m2dniClear sky DNI - Direct Normal Irradiance, W/m2dhiClear sky DHI - Diffuse Horizontal Irradiance, W/m2
cloudy_skyCloudy sky modelghiCloudy sky GHI - Global Horizontal Irradiance, W/m2dniCloudy sky DNI - Direct Normal Irradiance, W/m2dhiCloudy sky DHI - Diffuse Horizontal Irradiance, W/m2
irradiationIrradiation related informationclear_skyClear sky modelghiClear sky GHI - Global Horizontal Irradiation, Wh/m2dniClear sky DNI - Direct Normal Irradiation, Wh/m2dhiClear sky DHI - Diffuse Horizontal Irradiation, Wh/m2
cloudy_skyCloudy sky modelghiCloudy sky GHI - Global Horizontal Irradiation, Wh/m2dniCloudy sky DNI - Direct Normal Irradiation, Wh/m2dhiCloudy sky DHI - Diffuse Horizontal Irradiation, Wh/m2
panelsSolar panels related informationpanel_idUnique identifier of the solar panel assigned at resource creationclear_skyClear sky modelavg_powerSolar panel average power output amount per requested interval for clear sky model, kW. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75max_powerSolar panel maximum power output amount per requested interval for clear sky model, kW. Note that for the smallest available interval max_power and avg_power will be the same. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75energySolar panel energy output amount per requested interval for clear sky model, kWh. Note that for the 1h interval energy and avg_power will be the same. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75
cloudy_skyCloudy sky modelavg_powerSolar panel average power output amount per requested interval for cloudy sky model, kW. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75max_powerSolar panel maximum power output amount per requested interval for cloudy sky model, kW. Note that for the smallest available interval max_power and avg_power will be the same. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75energySolar panel energy output amount per requested interval for cloudy sky model, kWh. Note that for the 1h interval energy and avg_power will be the same. Please pay attention that solar panel output values are given for averaged efficiency with a performance ratio 0.75
API errors
Structure of API errors
In case of incorrected API call you will receive API error response. Error response payload returned for all types of errors with the structure below.
Example of error response
{
"code": "400",
"message": "Invalid date format",
"parameters": [
"date"
]
}codeCode of errormessageDescription of errorparameters(optional) List of request parameters names that are related to this particular error
Errors list
Please find more detailed information about some popular errors below.
API calls return an error 400

API calls return an error 401

API calls return an error 404

API calls return an error 429

API calls return errors '5xx'
