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

Get Batch Status

System 5-minute data in 365 day batches

One system over multiple days

5 minute

Get System Status

System 5-minute generation data in 50 system batches

Multiple systems over 1 day

5 minute

Get Region Status

All system 5-minute generation data in a region

Multiple systems over 1 day

5 minute

Get Supply

Aggregated 5-minute data in a region

Aggregated systems over 1 day

5 minute

Get Country Output

All system daily outputs in a country

Multiple systems over 1 day

1 day

Get Country System

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 -

  1. Submit request to service.

  2. If the response is 202 -

    • Wait for 1 minute.

    • Submit the same request again.

  3. 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

sid1

Another System Id

Yes

number

35

dt

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 dt parameter

  • Requests 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

sid1

Other System Ids

Yes

number 1

78641,10329

dt

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

X-Payload-Date

yyyymmdd

date

20210228

Restrictions and Limitations

  • The date parameter dt is limited to the last 365 days.

  • When the dt parameter is omitted, the latest date is returned.

  • Maximum of 50 systems ids can be provided in the sid1 parameter.

  • Consumption data is hidden for all systems.

  • Temperature and voltage are optional, where temperature is not present and voltage is present, the value NaN is 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

c

Country Code

Yes

text

See Codes

from

System Id From

Yes

number

1

to

System Id To

Yes

number

20000

Country Codes

The list of valid c country codes below -

Code

Name

au

Australia

uk

United Kingdom

us

United States

eu

European Union - See countries included below

world

All countries excluding (AU, US, NL, UK and DE)

Countries in ‘eu’ code

Code

Name

at

Austria

be

Belgium

bg

Bulgaria

hr

Croatia

cy

Cyprus

cz

Czechia

dk

Denmark

ee

Estonia

fi

Finland

fr

France

de

Germany

gr

Greece

hu

Hungary

ie

Ireland

it

Italy

lv

Latvia

lt

Lithuania

lu

Luxembourg

mt

Malta

nl

Netherlands

pl

Poland

pt

Portugal

ro

Romania

sk

Slovakia

si

Slovenia

es

Spain

se

Sweden

Countries in ‘world’ code

Code

Name

af

Afghanistan

al

Albania

dz

Algeria

as

American Samoa

ad

Andorra

ao

Angola

ai

Anguilla

aq

Antarctica

ag

Antigua and Barbuda

ar

Argentina

am

Armenia

aw

Aruba

at

Austria

az

Azerbaijan

bs

Bahamas

bh

Bahrain

bd

Bangladesh

bb

Barbados

by

Belarus

be

Belgium

bz

Belize

bj

Benin

bm

Bermuda

bt

Bhutan

bo

Bolivia

ba

Bosnia and Herzegovina

bw

Botswana

br

Brazil

io

British Indian Ocean Territory

vg

British Virgin Islands

bn

Brunei

bg

Bulgaria

bf

Burkina Faso

bi

Burundi

kh

Cambodia

cm

Cameroon

ca

Canada

cv

Cabo Verde

ky

Cayman Islands

cf

Central African Republic

td

Chad

cl

Chile

cn

China

cx

Christmas Island

cc

Cocos

co

Colombia

km

Comoros

cd

Congo Kinshasa

cg

Congo Brazzaville

ck

Cook Islands

cr

Costa Rica

hr

Croatia

cu

Cuba

cw

Curacao

cy

Cyprus

cz

Czechia

dk

Denmark

dj

Djibouti

dm

Dominica

do

Dominican Republic

ec

Ecuador

eg

Egypt

sv

El Salvador

gq

Equatorial Guinea

er

Eritrea

ee

Estonia

et

Ethiopia

fk

Falkland Islands

fo

Faroe Islands

fj

Fiji

fi

Finland

fr

France

pf

French Polynesia

tf

French Southern Territories

ga

Gabon

gm

Gambia

ge

Georgia

gh

Ghana

gi

Gibraltar

gr

Greece

gl

Greenland

gd

Grenada

gu

Guam

gt

Guatemala

gg

Guernsey

gn

Guinea

gw

Guinea Bissau

gy

Guyana

ht

Haiti

hm

Heard Island and McDonald Islands

hn

Honduras

hk

Hong Kong

hu

Hungary

is

Iceland

in

India

id

Indonesia

ir

Iran

iq

Iraq

ie

Ireland

im

Isle of Man

il

Israel

it

Italy

jm

Jamaica

jp

Japan

je

Jersey

jo

Jordan

kz

Kazakhstan

ke

Kenya

ki

Kiribati

kp

North Korea

kr

South Korea

kw

Kuwait

kg

Kyrgyzstan

la

Laos

lv

Latvia

lb

Lebanon

ls

Lesotho

lr

Liberia

ly

Libya

li

Liechtenstein

lt

Lithuania

lu

Luxembourg

mo

Macau

mg

Madagascar

mw

Malawi

my

Malaysia

mv

Maldives

ml

Mali

mt

Malta

mh

Marshall Islands

mr

Mauritania

mu

Mauritius

yt

Mayotte

mx

Mexico

md

Moldova

mc

Monaco

mn

Mongolia

me

Montenegro

ms

Montserrat

ma

Morocco

mz

Mozambique

mm

Myanmar

na

Namibia

nr

Nauru

np

Nepal

nc

New Caledonia

nz

New Zealand

ni

Nicaragua

ne

Niger

ng

Nigeria

nu

Niue

nf

Norfolk Island

mp

Northern Mariana Islands

no

Norway

om

Oman

pk

Pakistan

pw

Palau

pa

Panama

pg

Papua New Guinea

py

Paraguay

pe

Peru

ph

Philippines

pn

Pitcairn

pl

Poland

pt

Portugal

pr

Puerto Rico

qa

Qatar

ro

Romania

ru

Russia

rw

Rwanda

sh

Saint Helena

kn

Saint Kitts and Nevis

lc

Saint Lucia

pm

Saint Pierre and Miquelon

vc

Saint Vincent and the Grenadines

ws

Samoa

sm

San Marino

st

Sao Tome and Principe

sa

Saudi Arabia

sn

Senegal

rs

Serbia

sc

Seychelles

sl

Sierra Leone

sg

Singapore

sx

Sint Maarten

sk

Slovakia

si

Slovenia

sb

Solomon Islands

so

Somalia

za

South Africa

gs

South Georgia and the South Sandwich Islands

es

Spain

lk

Sri Lanka

sd

Sudan

sr

Suriname

sz

Eswatini

se

Sweden

ch

Switzerland

sy

Syria

tw

Taiwan

tj

Tajikistan

tz

Tanzania

th

Thailand

tl

Timor Leste

tg

Togo

tk

Tokelau

to

Tonga

tt

Trinidad and Tobago

tn

Tunisia

tr

Turkey

tm

Turkmenistan

tc

Turks and Caicos Islands

tv

Tuvalu

ug

Uganda

ua

Ukraine

ae

United Arab Emirates

uy

Uruguay

uz

Uzbekistan

va

Vatican City

vu

Vanuatu

ve

Venezuela

vn

Vietnam

vi

Virgin Islands

wf

Wallis and Futuna

eh

Western Sahara

ye

Yemen

zm

Zambia

zw

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 eu or world requests only

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

N

North

NE

North East

NW

North West

W

West

E

East

EW

East West

S

South

SE

South East

SW

South West

Restrictions and Limitations

  • Secondary array data fields are only present if this information is available.

  • The maximum range of the from and to parameters 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

c

Country Code

Yes

text

See Codes

dt

History Date

No

yyyymmdd

date

20211215

Country Codes

The list of valid c country codes below -

Country Code

Name

au

Australia

nl

Netherlands

uk

United Kingdom

us

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 dt parameter 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

r

Region Key

No

text

See Region Keys

Region Keys

The list of valid r region keys below -

Australia

Region Key

Name

1:australian_capital_territory

Australian Capital Territory

1:new_south_wales

New South Wales

1:northern_territory

Northern Territory

1:queensland

Queensland

1:south_australia

South Australia

1:tasmania

Tasmania

1:victoria

Victoria

1:western_australia

Western Australia

Netherlands

Region Key

Name

165:provincie_drenthe

Drenthe

165:provincie_flevoland

Flevoland

165:provincie_friesland

Friesland

165:provincie_gelderland

Gelderland

165:provincie_groningen

Groningen

165:provincie_limburg

Limburg

165:provincie_noord-brabant

Noord-Brabant

165:provincie_noord-holland

Noord-Holland

165:provincie_overijssel

Overijssel

165:provincie_utrecht

Utrecht

165:provincie_zeeland

Zeeland

165:provincie_zuid-holland

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

X-Payload-Date

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 NaN is 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

tz

Timezone

No

text

See Timezone

r

Region Key

No

text

See Region Keys

dt

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 tz parameter is empty, the timezone will default to UTC

  • When the r parameter is provided, the 24 hour supply and demand history of the region is returned

  • Region demand and supply history is returned in 5 minute resolution without delay

  • The dt parameter requests older than 14 days requires the Supply and Demand History Subscription to be active