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 to null.
Download the OpenAPI file