Data Services
Overview
PVOutput Data Services is a subscription service designed for commercial and government organisations that require access to PVOutput public data at a higher request frequency and/or data volumes.
An active Data Service subscription includes the following -
Increased API rate limit to 900 per hour
Access to all standard services with donation bonus features enabled
Commercial use license
For more information about PVOutput Data Services, please contact pvoutput@gmail.com
The following subscriptions are currently available -
Service Name |
Description |
Download |
Granularity |
|---|---|---|---|
System 5-minute data in 365 day batches |
One system over multiple days |
5 minute |
|
System 5-minute generation data in 50 system batches |
Multiple systems over 1 day |
5 minute |
|
All system 5-minute generation data in a region |
Multiple systems over 1 day |
5 minute |
|
Aggregated 5-minute data in a region |
Aggregated systems over 1 day |
5 minute |
|
All system daily outputs in a country |
Multiple systems over 1 day |
1 day |
|
All system metadata in a country |
Multiple systems |
n/a |
Asynchronous Processing
Some Data Service APIs collate and process data in the background. Initial requests to the service will return a HTTP response of 202, this indicates the request has been queued and in progress.
After an accepted response has been received, the requestor should submit the same request at regular intervals until the actual data is returned.
The process can be summerised as follows -
Submit request to service.
If the response is 202 -
Wait for 1 minute.
Submit the same request again.
If the response is 200 -
Process the data and end.
Typical asynchronous processing time is 1-3 minutes.
Get Batch Status Service
The Get Batch Status service retrieves 5-minute live output history data for a system.
The entire system history data is available.
Requests to this service is processed asynchronously. See Asynchronous Processing.
Service URL
Provided on the Data Services Subscription page
Parameters
This service accepts GET requests with the following parameters -
Parameter |
Field |
Required |
Format |
Unit |
Example |
|---|---|---|---|---|---|
|
Another System Id |
Yes |
number |
35 |
|
|
History Date |
No |
yyyymmdd |
date |
20210228 |
Example Requests
1 curl -H "X-Pvoutput-Apikey: Your-API-Key" -H "X-Pvoutput-SystemId: Your-System-Id" https://pvoutput.org/service/r2/getbatchstatus.jsp?sid1=35
Success Messages
The service returns two types of messages -
202 Accepted. The request has been received by the service and queued for processing. A token in reference to the request is returned.
200 Success. The request has been processed. The data is returned in the body of the response.
202 Accepted
Below is an example of the initial response from the service.
1Accepted 202: f321e6ae-f008-4e1b-a133-383165b19f0c
The token is for reference only and is not required for subsequent requests. If the same system sid1 is requested at a later time, and the request is still in progress the same token is returned in the response.
200 Success
Once the request has completed processing the data is returned.
Below is an example of the final data response from the service.
Each date is separated by a new line.
120210130;07:35,2,24;07:40,4,24;07:45,6,24;07:50,8,24;07:55,13,60;08:00,24,132
220210129;07:35,2,24;07:40,4,24;07:45,6,24;07:50,8,24;07:55,13,60;08:00,24,132
320210128;07:35,2,24;07:40,4,24;07:45,6,24;07:50,8,24;07:55,13,60;08:00,24,132
Dates are listed in decending order from the last known live date for the system.
Hint
A maximum of one year is returned per request. To retrieve older data, use the dt parameter to specify a starting (maximum) date.
The data specification is shown below for Generation only subscribers -
Field |
Format |
Unit |
Example |
|---|---|---|---|
Date |
yyyymmdd |
date |
20210228 |
Separator 1 |
; |
||
Time |
hh:mm |
time |
13:00 |
Energy Generation |
number |
watt hours |
359 |
Power Generation |
number |
watt |
731 |
Temperature |
decimal |
celsius |
21.4 |
Voltage |
decimal |
volts |
240.4 |
1 Section repeats for all available times of the day.
The data specification is shown below for Generation and Consumption subscribers -
Field |
Format |
Unit |
Example |
|---|---|---|---|
Date |
yyyymmdd |
date |
20210228 |
Separator 1 |
; |
||
Time |
hh:mm |
time |
13:00 |
Energy Generation |
number |
watt hours |
359 |
Power Generation |
number |
watt |
731 |
Energy Used 2 |
number |
watt hours |
359 |
Power Used 2 |
number |
watt |
731 |
Temperature |
decimal |
celsius |
21.4 |
Voltage |
decimal |
volts |
240.4 |
1 Section repeats for all available times of the day.
2 Consumption will appear as zero for systems with Consumption Privacy enabled.
Restrictions and Limitations
Data returned is limited to the last 365 days per request. To retrieve older data, use the
dtparameterRequests are queued and processed in sequential order
Consumption will be hidden for systems with consumption privacy enabled
Get System Status Service
The Get System Status service retrieves 5-minute live output data for multiple systems on the requested date.
Service URL
Provided on the Data Services Subscription page
Parameters
This service accepts GET requests with the following parameters -
Parameter |
Field |
Required |
Format |
Unit |
Example |
|---|---|---|---|---|---|
|
Other System Ids |
Yes |
number 1 |
78641,10329 |
|
|
Date |
No |
yyyymmdd |
date |
20220101 |
1 Comma separated list of System Ids to retrieve.
Success Messages
The following comma delimited data is returned in the message body -
178641;07:35,2,24;07:40,4,24;07:45,6,24;07:50,8,24;07:55,17,80;08:00,31,131
210329;08:00,1,10;08:05,2,14;08:10,8,28;08:15,9,20;08:20,11,55;08:25,15,112
Each system with data on the date is separated by a new line.
The data specification is shown below -
Field |
Format |
Unit |
Example |
|---|---|---|---|
System Id |
number |
78641 |
|
Separator 1 |
; |
||
Time |
hh:mm |
13:45 |
|
Energy Generated |
number |
watt hours |
4028 |
Power Generated |
number |
watts |
1050 |
Temperature |
decimal |
celsius |
21.4 |
Voltage |
decimal |
volts |
240.4 |
1 Section repeats for all available times of the day.
HTTP Header Response
The HTTP response will be returned with the additional headers -
Header |
Format |
Unit |
Example |
|---|---|---|---|
|
yyyymmdd |
date |
20210228 |
Restrictions and Limitations
The date parameter
dtis limited to the last 365 days.When the
dtparameter is omitted, the latest date is returned.Maximum of 50 systems ids can be provided in the
sid1parameter.Consumption data is hidden for all systems.
Temperature and voltage are optional, where temperature is not present and voltage is present, the value
NaNis used.Temperature can be ambient or panel/inverter temperature.
Voltage can be DC or AC.
Get Country System Service
The Get Country System service retrieves the information of all systems in a country.
Service URL
Provided on the Data Services Subscription page
Parameters
This service accepts GET requests with the following parameters -
Parameter |
Field |
Required |
Format |
Unit |
Example |
|---|---|---|---|---|---|
|
Country Code |
Yes |
text |
See Codes |
|
|
System Id From |
Yes |
number |
1 |
|
|
System Id To |
Yes |
number |
20000 |
Country Codes
The list of valid c country codes below -
Code |
Name |
|---|---|
|
Australia |
|
United Kingdom |
|
United States |
|
European Union - See countries included below |
|
All countries excluding (AU, US, NL, UK and DE) |
Countries in ‘eu’ code
Code |
Name |
|---|---|
|
Austria |
|
Belgium |
|
Bulgaria |
|
Croatia |
|
Cyprus |
|
Czechia |
|
Denmark |
|
Estonia |
|
Finland |
|
France |
|
Germany |
|
Greece |
|
Hungary |
|
Ireland |
|
Italy |
|
Latvia |
|
Lithuania |
|
Luxembourg |
|
Malta |
|
Netherlands |
|
Poland |
|
Portugal |
|
Romania |
|
Slovakia |
|
Slovenia |
|
Spain |
|
Sweden |
Countries in ‘world’ code
Code |
Name |
|---|---|
|
Afghanistan |
|
Albania |
|
Algeria |
|
American Samoa |
|
Andorra |
|
Angola |
|
Anguilla |
|
Antarctica |
|
Antigua and Barbuda |
|
Argentina |
|
Armenia |
|
Aruba |
|
Austria |
|
Azerbaijan |
|
Bahamas |
|
Bahrain |
|
Bangladesh |
|
Barbados |
|
Belarus |
|
Belgium |
|
Belize |
|
Benin |
|
Bermuda |
|
Bhutan |
|
Bolivia |
|
Bosnia and Herzegovina |
|
Botswana |
|
Brazil |
|
British Indian Ocean Territory |
|
British Virgin Islands |
|
Brunei |
|
Bulgaria |
|
Burkina Faso |
|
Burundi |
|
Cambodia |
|
Cameroon |
|
Canada |
|
Cabo Verde |
|
Cayman Islands |
|
Central African Republic |
|
Chad |
|
Chile |
|
China |
|
Christmas Island |
|
Cocos |
|
Colombia |
|
Comoros |
|
Congo Kinshasa |
|
Congo Brazzaville |
|
Cook Islands |
|
Costa Rica |
|
Croatia |
|
Cuba |
|
Curacao |
|
Cyprus |
|
Czechia |
|
Denmark |
|
Djibouti |
|
Dominica |
|
Dominican Republic |
|
Ecuador |
|
Egypt |
|
El Salvador |
|
Equatorial Guinea |
|
Eritrea |
|
Estonia |
|
Ethiopia |
|
Falkland Islands |
|
Faroe Islands |
|
Fiji |
|
Finland |
|
France |
|
French Polynesia |
|
French Southern Territories |
|
Gabon |
|
Gambia |
|
Georgia |
|
Ghana |
|
Gibraltar |
|
Greece |
|
Greenland |
|
Grenada |
|
Guam |
|
Guatemala |
|
Guernsey |
|
Guinea |
|
Guinea Bissau |
|
Guyana |
|
Haiti |
|
Heard Island and McDonald Islands |
|
Honduras |
|
Hong Kong |
|
Hungary |
|
Iceland |
|
India |
|
Indonesia |
|
Iran |
|
Iraq |
|
Ireland |
|
Isle of Man |
|
Israel |
|
Italy |
|
Jamaica |
|
Japan |
|
Jersey |
|
Jordan |
|
Kazakhstan |
|
Kenya |
|
Kiribati |
|
North Korea |
|
South Korea |
|
Kuwait |
|
Kyrgyzstan |
|
Laos |
|
Latvia |
|
Lebanon |
|
Lesotho |
|
Liberia |
|
Libya |
|
Liechtenstein |
|
Lithuania |
|
Luxembourg |
|
Macau |
|
Madagascar |
|
Malawi |
|
Malaysia |
|
Maldives |
|
Mali |
|
Malta |
|
Marshall Islands |
|
Mauritania |
|
Mauritius |
|
Mayotte |
|
Mexico |
|
Moldova |
|
Monaco |
|
Mongolia |
|
Montenegro |
|
Montserrat |
|
Morocco |
|
Mozambique |
|
Myanmar |
|
Namibia |
|
Nauru |
|
Nepal |
|
New Caledonia |
|
New Zealand |
|
Nicaragua |
|
Niger |
|
Nigeria |
|
Niue |
|
Norfolk Island |
|
Northern Mariana Islands |
|
Norway |
|
Oman |
|
Pakistan |
|
Palau |
|
Panama |
|
Papua New Guinea |
|
Paraguay |
|
Peru |
|
Philippines |
|
Pitcairn |
|
Poland |
|
Portugal |
|
Puerto Rico |
|
Qatar |
|
Romania |
|
Russia |
|
Rwanda |
|
Saint Helena |
|
Saint Kitts and Nevis |
|
Saint Lucia |
|
Saint Pierre and Miquelon |
|
Saint Vincent and the Grenadines |
|
Samoa |
|
San Marino |
|
Sao Tome and Principe |
|
Saudi Arabia |
|
Senegal |
|
Serbia |
|
Seychelles |
|
Sierra Leone |
|
Singapore |
|
Sint Maarten |
|
Slovakia |
|
Slovenia |
|
Solomon Islands |
|
Somalia |
|
South Africa |
|
South Georgia and the South Sandwich Islands |
|
Spain |
|
Sri Lanka |
|
Sudan |
|
Suriname |
|
Eswatini |
|
Sweden |
|
Switzerland |
|
Syria |
|
Taiwan |
|
Tajikistan |
|
Tanzania |
|
Thailand |
|
Timor Leste |
|
Togo |
|
Tokelau |
|
Tonga |
|
Trinidad and Tobago |
|
Tunisia |
|
Turkey |
|
Turkmenistan |
|
Turks and Caicos Islands |
|
Tuvalu |
|
Uganda |
|
Ukraine |
|
United Arab Emirates |
|
Uruguay |
|
Uzbekistan |
|
Vatican City |
|
Vanuatu |
|
Venezuela |
|
Vietnam |
|
Virgin Islands |
|
Wallis and Futuna |
|
Western Sahara |
|
Yemen |
|
Zambia |
|
Zimbabwe |
Success Messages
The following comma delimited data is returned in the message body -
Each system is separated by a new line.
135,4000,5024,16,250,1,4000,W,3.0,No,20131227,-34.926634,138.512231,5
221,2590,4070,14,185,1,2800,N,20.0,No,20100730,-27.545591,152.87227,5
The data specification is shown below -
Field |
Format |
Unit |
Example |
Notes |
|---|---|---|---|---|
System Id |
number |
35 |
||
System Size |
number |
watts |
3200 |
|
Country Code |
text |
NL |
For |
|
Postcode / Zipcode |
number |
2162 |
||
Panels |
number |
10 |
||
Panel Power |
number |
watts |
320 |
|
Inverters |
number |
1 |
||
Inverter Power |
watts |
5000 |
||
Orientation |
text |
See Codes |
||
Array Tilt |
decimal |
degrees |
20.0 |
|
Shade |
text |
See Codes |
||
Install Date |
yyyymmdd |
date |
20120228 |
|
Latitude |
decimal |
-33.868135 |
||
Longitude |
decimal |
151.133423 |
||
Status Interval |
number |
minutes |
5 |
|
Secondary Panels |
number |
10 |
||
Secondary Panel Power |
number |
watts |
190 |
|
Secondary Orientation |
text |
See Codes |
||
Secondary Array Tilt |
decimal |
degrees |
30.5 |
Shade Values
The list of shade values below -
Value |
|---|
No |
Low |
Medium |
High |
Orientation Codes
The list of valid orientation codes below -
Code |
Name |
|---|---|
|
North |
|
North East |
|
North West |
|
West |
|
East |
|
East West |
|
South |
|
South East |
|
South West |
Restrictions and Limitations
Secondary array data fields are only present if this information is available.
The maximum range of the
fromandtoparameters is 20000.The latitude and longitude of the system is returned if available, otherwise the system postcode latitude and longitude is returned.
The Country Code field is only present when ‘eu’ or ‘world’ is requested.
Get Country Output Service
The Get Country Output service retrieves the end of day energy output data for all systems in a country.
Service URL
Provided on the Data Services Subscription page
Parameters
This service accepts GET requests with the following parameters -
Parameter |
Field |
Required |
Format |
Unit |
Example |
|---|---|---|---|---|---|
|
Country Code |
Yes |
text |
See Codes |
|
|
History Date |
No |
yyyymmdd |
date |
20211215 |
Country Codes
The list of valid c country codes below -
Country Code |
Name |
|---|---|
|
Australia |
|
Netherlands |
|
United Kingdom |
|
United States |
Success Messages
The following comma delimited data is returned in the message body -
Each system is separated by a new line.
135,20211215,3893,2092,13:40,4328
221,20211215,6821,1200,12:35,8213
The data specification is shown below -
Field |
Format |
Unit |
Example |
|---|---|---|---|
System Id |
number |
35 |
|
Output Date |
yyyymmdd |
date |
20211215 |
Energy Generation |
number |
watt hours |
3893 |
Peak Power |
number |
watts |
2092 |
Peak Time |
time |
hh:mm |
13:40 |
Insolation |
number |
watt hours |
4328 |
Restrictions and Limitations
When the
dtparameter is omitted, the latest output date minus 1 day is returned.Insolation value is identical to the last energy figure returned in the Get Insolation service.
Get Region Status Service
The Get Region Status service retrieves 5-minute live output data for all systems in a region.
Service URL
Provided on the Data Services Subscription page
Parameters
This service accepts GET requests with the following parameters -
Parameter |
Field |
Required |
Format |
Unit |
Example |
|---|---|---|---|---|---|
|
Region Key |
No |
text |
See Region Keys |
Region Keys
The list of valid r region keys below -
Australia
Region Key |
Name |
|---|---|
|
Australian Capital Territory |
|
New South Wales |
|
Northern Territory |
|
Queensland |
|
South Australia |
|
Tasmania |
|
Victoria |
|
Western Australia |
Netherlands
Region Key |
Name |
|---|---|
|
Drenthe |
|
Flevoland |
|
Friesland |
|
Gelderland |
|
Groningen |
|
Limburg |
|
Noord-Brabant |
|
Noord-Holland |
|
Overijssel |
|
Utrecht |
|
Zeeland |
|
Zuid-Holland |
Example Requests
1 curl --compressed -o local_file.csv -H "X-Pvoutput-Apikey: Your-API-Key" -H "X-Pvoutput-SystemId: Your-System-Id" https://pvoutput.org/service/r2/getregionstatus.jsp?r=1:victoria
Success Messages
The following comma delimited data is returned in the message body -
178641,9990,4035;07:35,2,24;07:40,4,24;07:45,6,24;07:50,8,24;07:55,17,80;08:00,31,131
210329,8200,4000;08:00,1,10;08:05,2,14;08:10,8,28;08:15,9,20;08:20,11,55;08:25,15,112
Each system present in the region is separated by a new line.
The data specification is shown below -
Field |
Format |
Unit |
Example |
|---|---|---|---|
System Id |
number |
78641 |
|
System Size |
number |
watts |
9990 |
Postcode |
text |
4035 |
|
Separator 1 |
; |
||
Time |
hh:mm |
13:45 |
|
Energy Generated |
number |
watt hours |
4028 |
Power Generated |
number |
watts |
1050 |
Temperature |
decimal |
celsius |
21.4 |
Voltage |
decimal |
volts |
240.4 |
1 Section repeats for all available times of the day.
HTTP Header Response
The HTTP response will be returned with the additional headers -
Header |
Format |
Unit |
Example |
|---|---|---|---|
|
yyyymmdd |
date |
20210228 |
Restrictions and Limitations
Consumption data is hidden for all systems.
Temperature and voltage are optional, where temperature is not present and voltage is present, the value
NaNis used.Temperature can be ambient or panel/inverter temperature.
Voltage can be DC or AC.
Get Supply Service
The Get Supply service displays aggregated live generation and consumption data.
This service has no delay and data is provided at 5-minute resolution for each region
Service URL
Provided on the Data Services Subscription page
Parameters
This service accepts GET requests with the following parameters -
Parameter |
Field |
Required |
Format |
Unit |
Example |
|---|---|---|---|---|---|
|
Timezone |
No |
text |
See Timezone |
|
|
Region Key |
No |
text |
See Region Keys |
|
|
History Date |
No |
yyyymmdd |
date |
20210228 |
History Requests
Use the dt parameter to retrieve historic region data. The last 24 hours of data, up to the date at 0:00AM in the specified timezone is returned.
The request dt=20201002 will return the data between October 1st to October 2nd in the requested timezone.
Requests to this service is processed asynchronously when the dt parameter is older than 14 days. See Asynchronous Processing.
Example Requests
1curl -H "X-Pvoutput-Apikey: Your-API-Key" -H "X-Pvoutput-SystemId: Your-System-Id" https://pvoutput.org/service/r2/getsupply.jsp?r=1:new_south_wales&tz=Australia/Sydney
Success Messages
Requesting the service without any parameters -
12021-03-06T10:40:00+0000,Provincie Noord-brabant,45.818,1124034,109147,2590,658,1932,434,166,2453266,5653
22021-03-06T10:40:00+0000,Provincie Zuid-holland,27.835,689367,72542,1732,733,999,398,99,2476616,6223
32021-03-06T10:40:00+0000,Vlaanderen,53.224,620380,40517,2885,988,1897,215,41,1165592,5421
42021-03-06T10:40:00+0000,Provincie Gelderland,27.616,564729,106644,1272,544,728,444,196,2044914,4606
52021-03-06T10:40:00+0000,Provincie Utrecht,40.674,493152,23869,2326,442,1884,212,54,1212461,5719
62021-03-06T10:40:00+0000,Provincie Limburg,55.036,392549,10291,2351,245,2106,167,42,713255,4271
72021-03-06T10:40:00+0000,Friuli-venezia Giulia,52.152,366703,12152,9650,1350,8300,38,9,703144,18504
Requesting the service for a specific region r=1:new_south_wales&tz=Australia/Sydney
12021-03-06T21:10:00+1100,New South Wales,0.297,8799,244722,35,1046,-1011,250,234,2960410,11842
22021-03-06T21:00:00+1100,New South Wales,0.127,4302,275312,13,956,-943,341,288,3390529,9943
32021-03-06T20:50:00+1100,New South Wales,0.099,2968,267929,12,978,-966,253,274,2987354,11808
42021-03-06T20:40:00+1100,New South Wales,0.081,2391,284416,9,1094,-1085,254,260,2944539,11593
52021-03-06T20:30:00+1100,New South Wales,0.202,6670,300258,20,1025,-1005,333,293,3299984,9910
62021-03-06T20:20:00+1100,New South Wales,0.115,3418,252361,13,1065,-1052,258,237,2983444,11564
72021-03-06T20:10:00+1100,New South Wales,0.158,4789,249695,18,1058,-1040,264,236,3025374,11460
Note
Each region status is separated by a semi-colon.
The data specification is shown below -
Field |
Format |
Unit |
Example |
|---|---|---|---|
Timestamp |
yyyy-mm-ddThh:mm:ssZ |
timestamp |
2021-03-06T21:10:00+1100 |
Region Name |
text |
New South Wales |
|
Utilisation |
decimal |
percentage |
0.297 |
Total Power Output |
number |
watts |
8799 |
Total Power Input |
number |
watts |
244722 |
Average Power Output |
number |
watts |
35 |
Average Power Input |
number |
watts |
1046 |
Average Net Power |
number |
watts |
-1011 |
Systems Out |
number |
250 |
|
Systems In |
number |
234 |
|
Total Size |
number |
watts |
2960410 |
Average Size |
number |
watts |
11842 |
Restrictions and Limitations
When the
tzparameter is empty, the timezone will default to UTCWhen the
rparameter is provided, the 24 hour supply and demand history of the region is returnedRegion demand and supply history is returned in 5 minute resolution without delay
The
dtparameter requests older than 14 days requires the Supply and Demand History Subscription to be active