• API Overview
  • API Reference
  • C Library
  • Web Application
  • Knowledge Base
  • Back to meteonorm.com
account
    /accountget
climate
    /climate/tmyget/climate/amyget/climate/import/monthlypost
forecast
    /forecast/basicget/forecast/precisionget
observation
    /observation/realtimeget/observation/trainingget/observation/historicalget
horizon
    /horizonget/altitudeget
Schemas
powered by Zudoku
Meteonorm API
Meteonorm API

forecast


/forecast/basic

GET
https://api.meteonorm.com/v1
/forecast/basic

Solar forecast with medium accuracy. Based on global numerical weather prediction models.

A request costs 1 Meteonorm API token. For details, see Forecast pricing.

/forecast/basic › query Parameters

lat
​Latitude · double · min: -90 · max: 90 · required

Latitude in degrees (North is positive).

Example: 47.3768
lon
​Longitude · double · min: -180 · max: 180 · required

Longitude in degrees (East is positive).

Example: 8.5417
parameters
​ForecastParameters

Comma-separated list of parameter names, or the string "all".

Parameters:
• global_horizontal_irradiance
• global_horizontal_irradiance_with_shading
• direct_horizontal_irradiance
• direct_horizontal_irradiance_with_shading
• diffuse_horizontal_irradiance
• diffuse_horizontal_irradiance_with_shading
• direct_normal_irradiance
• direct_normal_irradiance_with_shading
• global_tilted_irradiance
• global_tilted_irradiance_with_shading
• direct_tilted_irradiance
• direct_tilted_irradiance_with_shading
• diffuse_tilted_irradiance
• diffuse_tilted_irradiance_with_shading
• pv_production
• pv_production_with_shading
• global_clear_sky_irradiance
• precipitation
• temperature
• dew_point_temperature
• snow_depth
• cloud_cover
• relative_humidity
• pressure
• wind_speed
• wind_direction
• wind_gusts
• weather_symbol

Example: global_horizontal_irradiance,global_tilted_irradiance,temperature
Default: global_horizontal_irradiance,temperature
start
​string · pattern: ^now|[-\+]\d+(hours|…

Start time (UTC) of the forecast time series.

Either an ISO 8601 date-time string in the format YYYY-mm-ddTHH:MMZ or YYYY-mm-ddTHH:MM:SSZ, or a relative date/time string (relative with respect to the current time).

Examples (note that the plus sign must be url-encoded):

now
+12hours
2025-05-15T12:00Z
2025-05-15T12:00:00Z

Example: 2025-01-15T12:00Z
Default: now
end
​string · pattern: ^now|[-\+]\d+(hours|…

End time (UTC) of the forecast time series. The end time is exclusive.

Either an ISO 8601 date-time string in the format YYYY-mm-ddTHH:MMZ or YYYY-mm-ddTHH:MM:SSZ, or a relative date/time string (relative with respect to the current time).

Examples (note that the plus sign must be url-encoded):

+3hours
+72hours
+7days
2025-05-15T12:00Z
2025-05-15T12:00:00Z

Example: 2025-01-15T12:00Z
Default: +3days
response_format
​ObscastResponseFormat · enum

Response data format.

Enum values:
json
csv
Default: json
surface_azimuth
​SurfaceAzimuth · double · min: 0 · max: 360

Azimuth angle of the panel surface.

• 0° = oriented towards the north
• 90° = oriented towards the east
• 180° = oriented towards the south
• 270° = oriented towards the west

Example: 186
Default: 0
surface_tilt
​SurfaceTilt · double · min: 0 · max: 90

Tilt angle of the panel surface.

• 0° = horizontal
• 90° = vertical

Default: 0
tracking_mode
​TrackingMode · enum

Panel tracking mode for tilted irradiance calculations.

• none: No axis tracking. Fixed surface orientation (uses surface_azimuth and surface_tilt parameters).
• 1_axis: Single-axis tracking. In this mode, parameters surface_azimuth and surface_tilt are ignored. The solar panels are mounted on a rotational axis parallel to the ground along a North-South line, tilting dynamically East-to-West to follow the sun's trajectory throughout the day. Backtracking is applied: the tracking angle does not follow the sun in a naïve way. Instead, for low sun angles, it moves backwards to its ideal position to prevent row-to-row shading in PV arrays. The maximum tilt angle is 45° and a ground coverage ratio (GCR) of 0.3 is assumed.

Enum values:
none
1_axis
Default: none
horizon
​Horizon · pattern: ^(auto|flat|[0-9]+(,…

360° horizon line of the requested location.

• flat: Flat horizon (all values are 0°).
• auto: Horizon is determined automatically using a global 30m digital elevation model.
• [comma-separated values]: provide 360 integer values representing elevation angles (in degrees) of the horizon in 360 directions. Elevation angles must be ≥0° and <90°. List indices 0–359 correspond to azimuth:
Index 0 = 0° (North)
Index 90 = 90° (East)
Index 180 = 180° (South)
Index 270 = 270° (West)
Each value indicates the elevation angle at the corresponding azimuth.

Example: 0,0,0,2,4,4,6,10,...,9,7,8,6,5,3,0
Default: flat

/forecast/basic › Responses

Response

API response containing time series, with the start and end times expressed in UTC.
ForecastResponse
start_times
​string[] · required

Start or end ISO 8601 date-time strings of each time series interval.

end_times
​string[] · required

Start or end ISO 8601 date-time strings of each time series interval.

​ValuesForecast · required

Time series of a forecast response.

​Metadata · required
GET/forecast/basic
curl 'https://api.meteonorm.com/v1/forecast/basic?lat=<number>&lon=<number>' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "start_times": [ "2024-08-25T15:00:00Z" ], "end_times": [ "2024-08-25T15:00:00Z" ], "values": { "global_horizontal_irradiance": [ 0 ], "global_horizontal_irradiance_with_shading": [ 0 ], "direct_horizontal_irradiance": [ 0 ], "direct_horizontal_irradiance_with_shading": [ 0 ], "diffuse_horizontal_irradiance": [ 0 ], "diffuse_horizontal_irradiance_with_shading": [ 0 ], "direct_normal_irradiance": [ 0 ], "direct_normal_irradiance_with_shading": [ 0 ], "global_tilted_irradiance": [ 0 ], "global_tilted_irradiance_with_shading": [ 0 ], "direct_tilted_irradiance": [ 0 ], "direct_tilted_irradiance_with_shading": [ 0 ], "diffuse_tilted_irradiance": [ 0 ], "diffuse_tilted_irradiance_with_shading": [ 0 ], "pv_production": [ 0 ], "pv_production_with_shading": [ 0 ], "global_clear_sky_irradiance": [ 0 ], "precipitation": [ 0 ], "temperature": [ 0 ], "dew_point_temperature": [ 0 ], "snow_depth": [ 0 ], "cloud_cover": [ 0 ], "relative_humidity": [ 0 ], "pressure": [ 0 ], "wind_speed": [ 0 ], "wind_direction": [ 0 ], "wind_gusts": [ 0 ], "weather_symbol": [ 0 ], "surface_azimuth": [ 0 ], "surface_tilt": [ 0 ] }, "meta": { "version": "9.0.0", "commit": "a1b2c3d4", "frequency": "1_minute", "parameters": [ { "description": "Global horizontal irradiance", "name": "global_horizontal_irradiance", "unit": { "name": "W/m**2", "description": "Watt per square meter" }, "aggregation_method": "average" } ], "lat": 47.3768, "lon": 8.5417, "altitude": 0, "surface_azimuth": 0, "surface_tilt": 0, "time_zone": 0 } }
json

/forecast/precision

GET
https://api.meteonorm.com/v1
/forecast/precision

Solar forecast with high accuracy. For the next few hours, the forecast is based on our nowcasting technology.

A request costs 5 Meteonorm API tokens. For details, see Forecast pricing.

/forecast/precision › query Parameters

lat
​Latitude · double · min: -90 · max: 90 · required

Latitude in degrees (North is positive).

Example: 47.3768
lon
​Longitude · double · min: -180 · max: 180 · required

Longitude in degrees (East is positive).

Example: 8.5417
parameters
​ForecastParameters

Comma-separated list of parameter names, or the string "all".

Parameters:
• global_horizontal_irradiance
• global_horizontal_irradiance_with_shading
• direct_horizontal_irradiance
• direct_horizontal_irradiance_with_shading
• diffuse_horizontal_irradiance
• diffuse_horizontal_irradiance_with_shading
• direct_normal_irradiance
• direct_normal_irradiance_with_shading
• global_tilted_irradiance
• global_tilted_irradiance_with_shading
• direct_tilted_irradiance
• direct_tilted_irradiance_with_shading
• diffuse_tilted_irradiance
• diffuse_tilted_irradiance_with_shading
• pv_production
• pv_production_with_shading
• global_clear_sky_irradiance
• precipitation
• temperature
• dew_point_temperature
• snow_depth
• cloud_cover
• relative_humidity
• pressure
• wind_speed
• wind_direction
• wind_gusts
• weather_symbol

Example: global_horizontal_irradiance,global_tilted_irradiance,temperature
Default: global_horizontal_irradiance,temperature
start
​string · pattern: ^now|[-\+]\d+(hours|…

Start time (UTC) of the forecast time series.

Either an ISO 8601 date-time string in the format YYYY-mm-ddTHH:MMZ or YYYY-mm-ddTHH:MM:SSZ, or a relative date/time string (relative with respect to the current time).

Examples (note that the plus sign must be url-encoded):

now
+12hours
2025-05-15T12:00Z
2025-05-15T12:00:00Z

Example: 2025-01-15T12:00Z
Default: now
end
​string · pattern: ^now|[-\+]\d+(hours|…

End time (UTC) of the forecast time series. The end time is exclusive.

Either an ISO 8601 date-time string in the format YYYY-mm-ddTHH:MMZ or YYYY-mm-ddTHH:MM:SSZ, or a relative date/time string (relative with respect to the current time).

Examples (note that the plus sign must be url-encoded):

+3hours
+72hours
+7days
2025-05-15T12:00Z
2025-05-15T12:00:00Z

Example: 2025-01-15T12:00Z
Default: +3days
frequency
​string · enum

Temporal resolution of the resulting time series.

Time series frequency

Enum values:
1_minute
15_minutes
1_hour
Default: 15_minutes
response_format
​ObscastResponseFormat · enum

Response data format.

Enum values:
json
csv
Default: json
surface_azimuth
​SurfaceAzimuth · double · min: 0 · max: 360

Azimuth angle of the panel surface.

• 0° = oriented towards the north
• 90° = oriented towards the east
• 180° = oriented towards the south
• 270° = oriented towards the west

Example: 186
Default: 0
surface_tilt
​SurfaceTilt · double · min: 0 · max: 90

Tilt angle of the panel surface.

• 0° = horizontal
• 90° = vertical

Default: 0
tracking_mode
​TrackingMode · enum

Panel tracking mode for tilted irradiance calculations.

• none: No axis tracking. Fixed surface orientation (uses surface_azimuth and surface_tilt parameters).
• 1_axis: Single-axis tracking. In this mode, parameters surface_azimuth and surface_tilt are ignored. The solar panels are mounted on a rotational axis parallel to the ground along a North-South line, tilting dynamically East-to-West to follow the sun's trajectory throughout the day. Backtracking is applied: the tracking angle does not follow the sun in a naïve way. Instead, for low sun angles, it moves backwards to its ideal position to prevent row-to-row shading in PV arrays. The maximum tilt angle is 45° and a ground coverage ratio (GCR) of 0.3 is assumed.

Enum values:
none
1_axis
Default: none
horizon
​Horizon · pattern: ^(auto|flat|[0-9]+(,…

360° horizon line of the requested location.

• flat: Flat horizon (all values are 0°).
• auto: Horizon is determined automatically using a global 30m digital elevation model.
• [comma-separated values]: provide 360 integer values representing elevation angles (in degrees) of the horizon in 360 directions. Elevation angles must be ≥0° and <90°. List indices 0–359 correspond to azimuth:
Index 0 = 0° (North)
Index 90 = 90° (East)
Index 180 = 180° (South)
Index 270 = 270° (West)
Each value indicates the elevation angle at the corresponding azimuth.

Example: 0,0,0,2,4,4,6,10,...,9,7,8,6,5,3,0
Default: flat

/forecast/precision › Responses

Response

API response containing time series, with the start and end times expressed in UTC.
ForecastResponse
start_times
​string[] · required

Start or end ISO 8601 date-time strings of each time series interval.

end_times
​string[] · required

Start or end ISO 8601 date-time strings of each time series interval.

​ValuesForecast · required

Time series of a forecast response.

​Metadata · required
GET/forecast/precision
curl 'https://api.meteonorm.com/v1/forecast/precision?lat=<number>&lon=<number>' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "start_times": [ "2024-08-25T15:00:00Z" ], "end_times": [ "2024-08-25T15:00:00Z" ], "values": { "global_horizontal_irradiance": [ 0 ], "global_horizontal_irradiance_with_shading": [ 0 ], "direct_horizontal_irradiance": [ 0 ], "direct_horizontal_irradiance_with_shading": [ 0 ], "diffuse_horizontal_irradiance": [ 0 ], "diffuse_horizontal_irradiance_with_shading": [ 0 ], "direct_normal_irradiance": [ 0 ], "direct_normal_irradiance_with_shading": [ 0 ], "global_tilted_irradiance": [ 0 ], "global_tilted_irradiance_with_shading": [ 0 ], "direct_tilted_irradiance": [ 0 ], "direct_tilted_irradiance_with_shading": [ 0 ], "diffuse_tilted_irradiance": [ 0 ], "diffuse_tilted_irradiance_with_shading": [ 0 ], "pv_production": [ 0 ], "pv_production_with_shading": [ 0 ], "global_clear_sky_irradiance": [ 0 ], "precipitation": [ 0 ], "temperature": [ 0 ], "dew_point_temperature": [ 0 ], "snow_depth": [ 0 ], "cloud_cover": [ 0 ], "relative_humidity": [ 0 ], "pressure": [ 0 ], "wind_speed": [ 0 ], "wind_direction": [ 0 ], "wind_gusts": [ 0 ], "weather_symbol": [ 0 ], "surface_azimuth": [ 0 ], "surface_tilt": [ 0 ] }, "meta": { "version": "9.0.0", "commit": "a1b2c3d4", "frequency": "1_minute", "parameters": [ { "description": "Global horizontal irradiance", "name": "global_horizontal_irradiance", "unit": { "name": "W/m**2", "description": "Watt per square meter" }, "aggregation_method": "average" } ], "lat": 47.3768, "lon": 8.5417, "altitude": 0, "surface_azimuth": 0, "surface_tilt": 0, "time_zone": 0 } }
json

climateobservation