How it works

Last updated:

February 8, 2024

The Steadysun API provides an easy way to integrate your forecast data with any external system. The API closely follows REST semantics, uses JSON to encode objects, and relies on standard HTTP codes to signal operation outcomes. 
  Getting Started
  • To begin using the API, a paid subscription is required. For more details or to request a quote  contact us.

Authentification

Steadysun uses simple token-based authentication.
  • All API requests must be authenticated and made over HTTPS.
  • The token must be added in the header.
  • You must authenticate to the API by providing your API token in the HTTP authorization token header.

Key

Value

Authorization

Token {your token}

Asset Management

  • The set of requests in this section allows you to manage the assets of your subscription contract.
  • In the STEADYSUN API, a solar power plant is called a PV System.
  • In the STEADYSUN API, a wind power plant is called a windfarm.
  • In the STEADYSUN API, the modules that build a windfarm are called windturbine
  • In the STEADYSUN API, a Portfolio gathering several assets is called a Group.
  • You will find ready-to-use examples in Python.
Main API url
https://steadyweb.steady-sun.com/api/v1/

POST One PV System

To add one power plant (or PV System), its parameters have to be specified in a POST request with following requirements.
You can skip some of the parameters. Leave the default values in case of uncertainty

Required fields :
  • title: (string) limited to 128 characters
  • name: (string) limited to 32 characters
  • location: indicate the geographical coordinates of your system,that represents the physical location at which to evaluate the model.
Type: “point”,
Coordinates : [
longitude:(float) must be specified in decimal degrees (°).
latitude:(float) must be specified in decimal degrees (°). ]
  • altitude: (integer) is in meters (m). By default, the following value is applied:0
  • installation_date: (string) must be specified in YYYY-MM-DD
  • pv_type: corresponds to the power plant type (fixed, tracker with single_axis or with double_axis). Must be specified by integer.By default, the following value is applied:1
If you select a tracker PV type, you can specify the additional 'tracker_config' parameter.

arrays (list of dict(s)):
  • pvmodules_pdc0: ”float” Power is in Watts (W). This field is required
  • orientation: ”float” Azimuth of the main axis of the panels, in degrees (°). 0° corresponds to North, 180° corresponds to South. By default, the following value is applied:180°
  • inclination: (float) Tilt is the angle of the panels in degrees (°) taken between the ground and the panel. 0° is horizontal.By default, the following value is applied:45°
  • module_technology: “integer” Default=standard (1). corresponds to whether the panels are bifacial or standard. If you select 'bifacial', you must specify the additional 'bifacial_config' parameter.
  • module_material: “integer” Default=monosi (1).Indicates the type of semiconductor used in the panels. Available choices are 'monosi', 'cigs', 'asi', 'cdte', 'xsi', 'multisi', 'polysi'. Details about these options can be found on the pvlib documentation.
  • racking:”integer” Default=open_rack (1).Is the manner that the panels are mounted to their structure: Available choices are 'open_rack', 'close_mount' (typically meaning that the panels are installed on an existing roof), 'insulated_back' (typically meaning that the panels are completely integrated in a roof).
  • module_type:” integer”. Describes the module’s construction. is the type of interface protecting the panel.Default= glass_polymer (1)
  • power_temp_coeff:”float”is the loss coefficient of efficiency versus temperature, in %/°C, typically between -2 and 0 %/°C.. By default, the following value is applied:-0.4
Array : [...] for each photovoltaic system, a number of solar panel blocks can be specified.
A PV system must have at least one solar field, and only fixed systems can have several solar fields.
A PV system can have several panels oriented in different directions, for example.
Each array depends on the above parameters:

requested_fields: Requested variables (or "fields") must be specified by their respective id; the correspondance between fields and their id can be retrieved via this request.


Here below is list of values and their corresponding integer.

Parameters

Value

Integer (int)

pv_type

fixed

1


tacker single_axis

2


tracker double_axis

3

module_technology

standard

1


bifacial

2

module_material

monosi

1


cigs

2


asi

3


cdte

4


xsi

5


multisi

6


polysi

7

racking

open_rack

1


close_mount

2


insulated_back

3

module_type

glass_polymer

1


glass_glass

2

Other optional parameters:

The 'tracker_config' is only relevant in case of a tracker PV type. If none is provided, some default parameters are assumed which can be found in the exemple below.

  • 'max angle' is the maximum angle in degrees that the panel can tilt to,
  • 'backtrack' designates whether backtracking is enabled on the panels,
  • 'gcr' is the ground covering ratio of the panels between 0 and 1,
  • 'slope_azimuth' is the orientation of the rotation axis of the panel in degrees,
  • 'slope_tilt' is the inclination of the rotation axis of the panel in degrees.
The 'bifacial_config' is only relevant in case of bifacial panels. If none is provided, some default parameters are assumed which can be found in the example below.
  • 'bifaciality' is the power ratio between the backside and the frontside (between 0 and 1),
  • 'gcr' is the ground covering ratio of the panels (between 0 and 1)
  • 'pvrow_height' and 'pvrow_width' are in m.
The 'inverter_parameters' are the parameters of AC/DC conversion unit.
  • 'pdc0' is the peak power of AC of the inverter, in Watts. It is typically the same as or bigger than the sum of all 'pvmodules_pdc0', but it can be less in case of a power plant with curtailement.
  • 'eta_inv_norm' is the efficiency of the power conversion (between 0 and 1).


API endpoint https://steadyweb.steady-sun.com/api/v1/pvsystem/


# Imports
import requests
import json


# Configure API authentification
headers = {
'Content-type':'application/json',
'Accept':'application/json',
'Authorization':'Token your_token'
}
url = "https://steadyweb.steady-sun.com/api/v1/pvsystem/"

config = {
"title": "My_Test_Site", # this field is required
"name": "My_Test_Site", # this field is required
"location": { # this field is required
"type": "Point",
"coordinates": [
9.429554,
42.173204
]
},
"altitude": 215.0, # in m
"installation_date": "2023-02-23", # this field is required
"pv_type": 2, # this field is required
"arrays": [
{
"pvmodules_pdc0": 10000, # of AC, in W, this field is required
"orientation": 180, # in °, this field is required
"inclination": 20, # in °, this field is required
"module_technology": 1, # => "standard"
"module_material": 1, # => "monosi"
"racking": 1, # => "open_rack"
"module_type": 1, # => "glass_polymer"
"power_temp_coeff": -0.4,
}
],
"requested_fields": [ # this field is required one value at least
1,2,3,4,5,6,7,8,9,10,11,12, #pac+quantiles
13,14,15,16,17,18,19,20,21,22,23,24, #ghi+quantiles
],


"tracker_config": { # only if you have a tracker
"max_angle": 90,
"backtrack": True,
"gcr": 0.34,
"slope_azimuth": 0,
"slope_tilt": 0,
},
"bifacial_config": { # only if you have bifacial panels
"bifaciality": 0.8,
"gcr": 0.34,
"pvrow_height": 2,
"pvrow_width": 4,
},
"inverter_parameters":{
"pdc0": 10000,
"eta_inv_norm": 0.97,
}
}


json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(json.loads(result.text))                                                                                     

Language

Python

To ensure the PVSystem was created properly, check the answer of the server: it must be 201. The answer should also return a dictionary with the information and especially the uuid of the pvsystem you just created.

GET PV System

To retrieve all the PV Systems you have already created, execute the following script.

API endpoint  https://steadyweb.steady-sun.com/api/v1/pvsystem/


import requests
import json

headers = {
 'Content-type':'application/json',
 'Accept':'application/json',
 'Authorization':'Token your_token'
}
url = "https://steadyweb.steady-sun.com/api/v1/pvsystem/"

result = requests.get(url, headers=headers)

print(json.loads(result.text))  

Language

Python

GET GROUP

For now, creation and update (POST and PATCH requests) of groups and the handling of the hierarchy of various pvsystems is not open to users.
However, a user can request to Steadysun's team these creations.
To retrieve all the groups that have been already created, execute the following script.

API enpoint  https://steadyweb.steady-sun.com/api/v1/group/


import requests
import json

headers = {
 'Content-type':'application/json',
 'Accept':'application/json',
 'Authorization':'Token your_token'
}
url = "https://steadyweb.steady-sun.com/api/v1/group/"

result = requests.get(url, headers=headers)

print(json.loads(result.text))  

Language

Python

PATCH PV System

To change the characteristics of PV Systems, make a PATCH request.
Simply extend the endpoint URL by using the specific PV System's UUID (retrieved via a GET request) and provide in the data a dictionary of properties you would like to change.
The location parameter is unchangeable.

API endpoint  https://steadyweb.steady-sun.com/api/v1/pvsystem/


import requests
import json


headers = {
'Content-type':'application/json',
'Accept':'application/json',
'Authorization':'Token your_token'
}


url = f"https://steadyweb.steady-sun.com/api/v1/pvsystem/uuid/"


config={
"title":"NewTitle_PVsystem",
"arrays": [
{
"pvmodules_pdc0": 5000,
"inclination": 30,
}
],
}


json_object = json.dumps()
result = requests.patch(url, headers=headers, data=json_object)


print(json.loads(result.text))

Language

Python

* when you push arrays data, the new configurations overwrite all old ones.

Wind system

The technical parameters of all windsystems must be associated with a turbine type. Proceed as follows:

STEP 1 : retrieve the id of manufacturer id from this endpoint
*If manufacturer of the type of turbine installed on your windfarm is not listed, please contact us.

API endpoint   https://steadyweb.steady-sun.com/api/v1/manufacturer

STEP 2 : make a POST request to create a wind turbine type. Required fields :
  • manufacturer: (integer) id manufacturer
  • reference: (string) model of manufacturer
  • hub_heigh: (integer) Hub height of the wind turbine type, in meter
  • diameter: (integer) Diameter of the wind turbine type, in meter
  • power: (integer) Power output of the wind turbine type, in W
  • u_list: (string (list of integer)) List of u values, separated by commas. Consult the datasheet of the wind turbine type
  • power_list: (string (list of integer)), List of power values, separated by commas. Consult the datasheet of the wind turbine type
API endpoint : https://steadyweb.steady-sun.com/api/v1/windturbinetype

POST Wind turbine type


import requests
import json


headers = {
"Content-type": "application/json",
"Accept": "application/json",
"Authorization": "Token your_token",
}


url = "https://steadyweb.steady-sun.com/api/v1/windturbinetype/"
# all parameters are required
config = {
"manufacturer":7, # ex:Alstom
"reference":"Haliade 150",
"hub_heigh":100, # Hub height of the wind turbine type, in meter
"diameter":151, # Diameter of the wind turbine type, in meter
"power":6000000, #Power output of the wind turbine type, in W
"u_list":"string (list of integer)", # List of u values, separated by commas
"power_list":"string (list of integer)", # List of power values, separated by commas
}


json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(result.text)                                                                                   

Language

Python

To ensure the wind turbine type was created properly, check the answer of the server: it must be 201.
The answer should also return a dictionary with the information and especially the id of the windfarm you just created.

Case 1 : “without turbine associated”

To create windfarm, its parameters have to be specified in a POST request with following requirements.

Requested parameters:
  • Title: limited to 128 characters
  • Name: limited to 32 characters 
  • Latitude and longitude coordinates must be specified in decimal degrees (°).
  • Altitude is in meters (m). 
  • Requested variables (or "fields") must be specified by their respective id; the correspondance between fields and their id can be retrieved via this request.
  • defined_wind_turbines : false (boolean)
  • Wind turbine type: id of wind_turbine_type previously created
  • Wind turbine count: number of wind turbines in the wind farm
API endpoint   https://steadyweb.steady-sun.com/api/v1/windfarm/


import requests
import json


headers = {
"Content-type": "application/json",
"Accept": "application/json",
"Authorization": "Token your_token",
}


url = f"https://steadyweb.steady-sun.com/api/v1/windfarm/"
# all this parameters are required
config = {
"title": "windfarm_v2",
"name": "windfarm_v2",
"location": {
"type": "Point",
"coordinates": [
139.6082, #lon
35.8658 #lat
]
},
"altitude": 10.0,
"requested_fields": [ # As many as needed, but must include at least one variable
1,2,3,4,5,6,7,8,9,10,11,12, #pac+q
97, #10m_gust
158, #10m_wind_direction
104,366,367,368,369,370,371,372,373,374,375,376, #10m_wind_speed+q
378,379,380,381,382,383,384,385,386,387,388,389, #hhws+q
],
"defined_wind_turbines":"false", # (boolean)
"wind-turbine_type": 12, # id of wind_turbine_type previously created
"wind_turbine_count": 1, # number of wind turbines in the wind farm


}


json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(result.text)                                                                                 

Language

Python

To ensure the windfarm was created properly, check the answer of the server: it must be 201.
The answer should also return a dictionary with the information and especially the uuid of the windfarm you just created.

Case 2 : “with turbine associated”
To create a wind farm with turbine parameters, proceed as follows:

1- create a windfarm via a POST request (described in this section)
2- retrieve your windfarm's id via a GET/windfarm/ via this request
3- create the windturbines associated with the windfarm (you'll need the windfarm id)

To add one windfarm, its parameters have to be specified in a POST request with following requirements. Requested parameters:

  • Title: limited to 128 characters
  • Name: limited to 32 characters
  • Latitude and longitude coordinates must be specified in decimal degrees (°).
  • Altitude is in meters (m).
  • Requested variables (or "fields") must be specified by their respective id; the correspondance between fields and their id can be retrieved via this request.
  • defined_wind_turbines : true (boolean)- Not required, true is default value.
API endpoint https://steadyweb.steady-sun.com/api/v1/windfarm/


import requests
import json


headers = {
"Content-type": "application/json",
"Accept": "application/json",
"Authorization": "Token your_Token",
}


url = "https://steadyweb.steady-sun.com/api/v1/windfarm/"
# all this parameters are required
config = {
"title": "windfarm_v2",
"name": "windfarm_v2",
"location": {
"type": "Point",
"coordinates": [
139.6082, #lon
35.8658 #lat
]
},
"altitude": 10.0,
"requested_fields": [ # As many as needed, but must include at least one variable
1,2,3,4,5,6,7,8,9,10,11,12, #pac+q
97, #10m_gust
158, #10m_wind_direction
104,366,367,368,369,370,371,372,373,374,375,376, #10m_wind_speed+q
378,379,380,381,382,383,384,385,386,387,388,389, #hhws+q
],
"defined_wind_turbines" :"true", # Not required, true is the default value.
}


json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(result.text)                                                                              

Language

Python

To ensure the windfarm was created properly, check the answer of the server: it must be 201.
The answer should also return a dictionary with the information and especially the id of the windfarm you just created

POST Winturbine

Here's a simple example of the way to create a single wind turbine


# Imports
import requests
import requests
import json


headers = {
"Content-type": "application/json",
"Accept": "application/json",
"Authorization": "Token your_token",
}


url = "https://steadyweb.steady-sun.com/api/v1/windturbine/"


config = {
"title": "windfarm_v2_wt1",
"name": "windfarm_v2_wt1",
"location": { # this field is required
"type": "Point",
"coordinates": [
140.22, #lon
36.65 #lat
]
},
"altitude": 0.0,
"requested_fields": [ # this field is required
1, #pac
378, #hhws
158, #10m_wind_direction
104, #10m_wind_speed
],
"wind_turbine_type": 35, # (int) id wind turbine type
"wind_farm": 62, # (int) id windfarm associated
}
json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(result.text)                                                                                    

Language

Python

Here's an example of the way to create a set of wind turbines, by iterating over a compiled csv file


import requests
import json
import pandas as pd

headers = {
'Content-type':'application/json',
'Accept':'application/json',
'Authorization':'Token your_token',
}
url = "https://steadyweb.steady-sun.com/api/v1/windturbine/"


data = pd.read_csv("windturbine_lat_lon.csv",index_col="name")
for turbine in data.index:
latitude = (data["lat"].loc[turbine])
longitude = (data["lon"].loc[turbine])
config = {
"title": f"windfarmName_{turbine}",
"name": f"windfarmName_{turbine}",
"requested_fields": [
1, #pac
378, #hhws
158, #10m_wind_direction
104, #10m_wind_speed ],
"location": {
"type": "Point",
"coordinates": [longitude,latitude]
},
"altitude":1060,
"wind_turbine_type":"integer", # id wind turbine type
"wind_farm":"integer", # id windfarm associated
}


json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(json.loads(result.text))                                                                                

Language

Python

GET Windfarm

To retrieve all the Windfarm you have already created, execute the following script.

API endpoint  https://steadyweb.steady-sun.com/api/v1/windfarm/


import requests
import json

headers = {
 'Content-type':'application/json',
 'Accept':'application/json',
 'Authorization':'Token your_token'
}
url = "https://steadyweb.steady-sun.com/api/v1/windfarm/"

result = requests.get(url, headers=headers)

print(json.loads(result.text))  

Language

Python

GET Windturbine

To retrieve all the PV Systems you have already created, execute the following script.

API endpoint  https://steadyweb.steady-sun.com/api/v1/windturbine/


import requests
import json

headers = {
 'Content-type':'application/json',
 'Accept':'application/json',
 'Authorization':'Token your_token'
}
url = "https://steadyweb.steady-sun.com/api/v1/windtrubine/"

result = requests.get(url, headers=headers)

print(json.loads(result.text))  

Language

Python

PATCH Windfarm

To change the characteristics of Windfarm, make a PATCH request.
Simply extend the endpoint URL by using the specific Windfarm's UUID (retrieved via a GET request) and provide in the data a dictionnary of properties you would like to change.
The location parameter is unchangeable.

API endpoint  https://steadyweb.steady-sun.com/api/v1/windfarm/


import requests
import json

headers = {
 'Content-type':'application/json',
 'Accept':'application/json',
 'Authorization':'Token your_token'
}


url = "https://steadyweb.steady-sun.com/api/v1/windfarm/windfarm_uuid/"

requested_fields = [
97, #10m_gust
158, #10m_wind_direction
]
json_object = json.dumps({"requested_fields": requested_fields})

result = requests.patch(url, headers=headers, data=json_object)
print(result)
 

Language

Python

PATCH Windturbine

To change the characteristics of windfarm, make a PATCH request.
Simply extend the endpoint URL by using the specific PV System's UUID (retrieved via a GET request) and provide in the data a dictionary of properties you would like to change.
The location parameter is unchangeable.

API endpoint  https://steadyweb.steady-sun.com/api/v1/turbine/


import requests
import json

headers = {
 'Content-type':'application/json',
 'Accept':'application/json',
 'Authorization':'Token your_token'
}

url = "https://steadyweb.steady-sun.com/api/v1/windturbine/windturbine_uuid/"


config = {
"title": "NewTitle_v2_wt1",
"name": "NewName_v2_wt1",
"wind_turbine_type":12, # id wind turbine type
}


json_object = json.dumps(config)
result = requests.post(url, headers=headers, data=json_object)


print(result.text)

Language

Python

DELETE Request

It’s possible to delete a system via a delete request, including the uuid of the system (windfarm, pvsystem, windturbine) at the desired endpoint.

Get Forecasts

GET Forecasts

To obtain the forecast, extend the URL of the endpoint using the specific UUID of the different systems (retrieved via a GET request on the different endpoints). The API takes into account several additional parameters that the user can set to modify the retrieved forecasts.

The available parameters are described in the Parameters section.

API endpoint https://steadyweb.steady-sun.com/api/v1/forecast/
  • for a PV system: https: steadyweb.steady-sun.com/api/v1/forecast/pvsystem/{uuid}
  • for a Group: https: steadyweb.steady-sun.com/api/v1/forecast/group/{uuid}
  • for windfarm: https: steadyweb.steady-sun.com/api/v1/forecast/windfarm/{uuid}
  • for windturbine : https: steadyweb.steady-sun.com/api/v1/forecast/windturbine/{uuid}
Below is an example of PV system


import pandas as pd
import requests

headers = {'Authorization':'Token your_token'}

plant_uuid = "replace-this-with-uuid" # Fill in the plant's UUID
url = f"https://steadyweb.steady-sun.com/api/v1/forecast/pvsystem/{uuid}"

parameters = {'time_step':60, 'horizon':2880}
api_data = requests.get(url=url,params=parameters,headers=headers).json()

forecast = pd.DataFrame(
 data=api_data['data'],
 index=api_data['index'],
 columns=api_data['columns'],
)
print(forecast)

Language

Python

Forecasts Parameters

There are different parameters to customize your query:
  • The timezone is UTC by default. 

Parameters

Data Type

Description

data_format 

String (str)

  • split (default): original format of the api
  • records: fully detailed record with name of field and value for each time step
  • tight: tight version of the data that can be used for data visualization

precision

Integer (int)

  • default = 2

horizon

Integer (int)

xx min
  • depend on your contract 

fields

String (str)

  • the variables available in the call API depend on your contract.
  • you can specify the list of fields separated by a ',' for example: t2m,ghi

time_step

String (str)

  • default is 60min
  • available values: 1,5,10,15,30,60
  • Steadysun forecasts are based on backward (on hourly time step, at 12 p.m. forecast, the value is the average from 11 a.m. to 12 p.m.).

date_time_format

String (str)

  • default is in ISO 8601 UTC format, like "2022-01-01T00:00:00Z"
  • you can specify "time_stamp" to get unix time stamp

time_stamp_unit

String (str)

  • to be specified only if the unix time stamp format is requested
  • default is "s" for get unix time stamp in seconds,
  • but you can specify "ms" to get your data in milliseconds

Responses

Result

StatusCode

Content

Success

200 OK

In case of a GET or PATCH request: The request was completed successfully.

Success

201 OK

Specific to a POST request: The request was completed successfully and an object was created.

Success

204 OK

Specific to a DELETE request: The request was completed successfully and an object was deleted.

Error

400 Bad Request 

Something is wrong with the request format or the request content.
Response body will contain a specific error message.


Error

401 Unauthorized

This status code means you haven’t yet authenticated against the API.
The API doesn’t know who you are and it won’t serve you.


Error


403 Forbidden

The forbidden status indicates that you don’t have permission to request that URL.
You’re authenticated, but the user or role you’re authenticated for isn’t permitted to make the API request.  


Error


429 Forbidden
Too many requests

The forbidden status indicates that you don’t have permission to request that URL. You have overrun your quota of calls to our API.

Failed

500 Internal Server Error

Something unexpected went wrong during the request.

Please contact STEADYSUN if this continues, and include any error messages received from the failed request

Failed

502 Bad Gateway Error

Something unexpected went wrong during the request, probably due a server timeout. Try again after 30 seconds.

Please contact STEADYSUN if this continues, and include any error messages received from the failed request

Responses Body

The result is a JSON array including all the forecast variables for each time step. Here’s an example. The JSON format depends on your settings. 

POST Data

This POST method is used to push the measures data for a specific PV system or group, windfarm and windturbine
Push measures with the API is very straightforward.

There are different parameters to adapt your data into our format:

Parameters

Data Type

Description

data_format 

String (str)

  • columns(default):format type “records”
  • split: Json with keys “index”, ”columns” and “data” 
  • index
  • tight

date_time_format 

String (str)

  • default is "%Y-%m-%d%H:%M:%S"
  • you can retrieve date_time format here

timezone

String (str)

  • You can specify your data Timezone (not use abbreviation, just use database name) 
  • If you don’t pass this parameter, we assumed that they are in UTC .Your data will be saved in UTC

field_format

String (str)

  • short_name or long_name, short_name by default
  • see all fields here
To push your measures data, you must make a POST request to the following URL: 

API endpoint  https://steadyweb.steady-sun.com/api/v1/measures
  • for a PV system: https: steadyweb.steady-sun.com/api/v1/measures/pvsystem/{uuid}
  • for a Group: https: steadyweb.steady-sun.com/api/v1/measures/group/{uuid}
  • for windfarm: https: steadyweb.steady-sun.com/api/v1/measures/windfarm/{uuid}
  • for windturbine : https: steadyweb.steady-sun.com/api/v1/measures/windturbine/{uuid}
Below is an example of PV system


import requests
import json

uuid = 'your_uuid'  # Fill in the pvsystem's UUID
token = 'your_token'

measures_to_send = [
  {
      "datetime": "2022-12-02T13:00",
      "power_ac": 3655500.5,
      "all_sky_global_horizontal_irradiance": 121.21,
      "all_sky_diffuse_horizontal_irradiance": 42.23,
      "all_sky_beam_normal_irradiance": 464.41,
      "2m_temperature": 2.07,
      "10m_wind_speed": 4.9
 },
  {
   "datetime": "2022-12-02T14:00",
   "power_ac":891005.94,
   "all_sky_global_horizontal_irradiance": 31.25,
   "all_sky_diffuse_horizontal_irradiance": 17.6,
   "all_sky_beam_normal_irradiance": 130.74,
   "2m_temperature": 1.97,
   "10m_wind_speed": 4.73
  }
 ]

headers = {'Authorization': f'Token {token}'}

url = f'https://steadyweb.steady-sun.com/api/v1/measures/pvsystem/{uuid}'

parameters = {
  "field_format": "long_name",
  "timezone": "Europe/Paris",
  "data_format":"columns",
  "date_time_format":"%Y-%m-%dT%H:%M",
  }

result = requests.post(url, headers=headers, params=parameters, data=measures_to_send)

print(json.loads(result.text))

Language

Python

All fields

  • Datasheet: 
Once connected to the Steadysun API, you will find on this URL, all the possible variables proposed by Steadysun: 

Main API url      https://steadyweb.steady-sun.com/api/v1/allfields

Category

Short Name

Long Name

Description

Unit

Production

pac

power_ac

Solar production of the plant in the output of the inverter

W

Radiation

ghi

all_sky_global_horizontal_irradiance

Global horizontal irradiance when the cloud cover is taken into account.

W.m-2

bni

all_sky_beam_normal_irradiance

Beam normal irradiance when the cloud cover is taken into account.

W.m-2

dhi

all_sky_diffuse_horizontal_irradiance

Diffuse horizontal irradiance when the cloud cover is taken into account.

W.m-2

bhi

all_sky_beam_horizontal_irradiance

 Beam horizontal irradiance when the cloud cover is taken into account.. 

W.m-2

par

photosynthetic_active_radiation

 Photosynthetic active radiation 

W.m-2

Wind

10m_gust

10m_wind_gust

Wind gust at 10m above ground

m.s-1

10m_wind_direction

10m_wind_direction

Direction from which the wind blow at 10m above ground. (North = 0°, East= 90°, South = 180°, West= 270°) 

°

10m_wind_speed

10m_wind_speed

Average wind speed at 10m above ground.

m.s-1

hhws

hub_height_wind_speed

Hub heights typically range between 25m (for smaller wind turbines) and 100m (for large wind turbines).

m.s-1

Temperature

t2m

2m_temperature

Air temperature 2 meters above the ground.

°C

td

2m_dewpoint

Dewpoint at 2 meter height. The dewpoint is the temperature to which the air mass should be cooled to become saturated in water vapor. When compared to the air temperature at the same height, the dewpoint give information about the air humidity.

°C

Clouds 

hcc

high_cloud_cover

Proportion, ranging from 0 to 1, of the cloud cover produced by high altitude clouds. 

[0-1]

lcc

low_cloud_cover

Proportion, ranging from 0 to 1, of the cloud cover produced by high altitude clouds. 

[0-1]

mcc

medium_cloud_cover

Proportion, ranging from 0 to 1, of the cloud cover produced by medium altitude clouds.

[0-1]

tcc

total_cloud_cover

Proportion of cloud cover ranging from 0 to 1.

[0-1]

Humidity

q

specific_humidity

Concentration (in g per kg) of water in the air at 2 meter height. This variable give information about the air humidity near the ground or sea surface. 

g.kg

rh2m

2m_relative_humidity

Relative humidity meters above the ground. 

%

tcwv

total_column_water_vapor

The total amount of water vapor in a vertical column of air. 

kg.m-2

Precipitation

mtpr

mean_total_precipitation_rate 

Precipitation rate in mm/h over your period of time considered. For example if your time step is 5min and the value is 12mm/h, the forecast estimate that 1mm of water will precipitate in these 5 minutes 

 mm.h-1

Pressure & Density 

mlsp

mean_sea_level_pressure

Pressure in hPa calculated back to the sea level.

hPa

msp

mean_surface_pressure

surface pressure

hPa