Getting Started
Basic Examples
The end points /climate/tmy
, /observation/realtime
,
/forecast/basic
and
/forecast/precision
all have meaningful
default arguments, with only lat
and lon
being required.
Note: These examples use our demo API URL. No registration required!
See Free lat/lon locations for more information on how you can test the
Meteonorm API free of charge. For operational use, replace demo.meteonorm.com
with
api.meteonorm.com
.
curl -H "Authorization: Bearer demo0000-0000-0000-0000-000000000000" \ --get \ --data "lat=50" \ --data "lon=10" \ "https://demo.meteonorm.com/v1/climate/tmy"sh
curl -H "Authorization: Bearer demo0000-0000-0000-0000-000000000000" \ --get \ --data "lat=50" \ --data "lon=10" \ "https://demo.meteonorm.com/v1/observation/realtime"sh
curl -H "Authorization: Bearer demo0000-0000-0000-0000-000000000000" \ --get \ --data "lat=50" \ --data "lon=10" \ "https://demo.meteonorm.com/v1/forecast/basic"sh
curl -H "Authorization: Bearer demo0000-0000-0000-0000-000000000000" \ --get \ --data "lat=50" \ --data "lon=10" \ "https://demo.meteonorm.com/v1/forecast/precision"sh
All these requests will return a JSON response containing a time series.
Example of a response:
{ "start_times" : [ "2025-04-22T12:00:00Z", "2025-04-22T13:00:00Z", "2025-04-22T14:00:00Z", ... ], "end_times" : [ "2025-04-22T13:00:00Z", "2025-04-22T14:00:00Z", "2025-04-22T15:00:00Z", ... ], "values" : { "global_horizontal_irradiance" : [ 305, 309, 209, ... ], "temperature" : [ 4.9, 4.9, 5.0, ... ], "diffuse_horizontal_irradiance" : null, "diffuse_horizontal_irradiance_with_shading" : null, ... }, "meta" : { "lat" : 50, "lon" : 10, "altitude" : 290, "frequency" : "1_hour", "surface_azimuth" : 0, "surface_tilt" : 0, "parameters" : [ { "name" : "global_horizontal_irradiance", "description" : "Global horizontal irradiance", "unit" : { "description" : "Watt per square meter", "name" : "W/m**2" }, "aggregation_method" : "average" }, { "name" : "temperature", "description" : "Air temperature, 2 m above ground.", "unit" : { "description" : "degrees Celsius", "name" : "°C" }, "aggregation_method" : "average" } ] } }json
Explanations:
- In order to avoid any ambiguity, the start and end of every time interval is defined explicitely.
- The
"values"
attribute of the response contains keys for all the parameters available for the end point, with non-requested parameters set tonull
.