• 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

climate


/climate/tmy

GET
https://api.meteonorm.com/v1
/climate/tmy

Typical meteorological year (TMY) for a location.

A request costs 500 Meteonorm API tokens. For details, see Climate pricing.

/climate/tmy › 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
altitude
​AltitudeOption · pattern: ^(auto|-?[0-9]+(\.[0…

Altitude in meters above mean sea level or "auto".

Altitude in meters above sea level. • auto: Automatic • number: altitude in meters

Example: 549
Default: auto
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
situation
​Situation · enum

Local terrain situation.

• open: Open site, open terrain, north facing incline, no raised skyline. Applies to most sites.
• depression: Depression or very flat valley floor, in which cold air collects. In Switzerland, for example, particularly in the Jura and the Alps.
• cold_air_lake: Extensively cold hollows (above 1000 m).
• sea_lake: Shore of sea or larger lake (up to 1 km from the shore).
• city: Centre of a larger city (over 100’000 inhabitants).
• slope_south: South facing incline (more than approx. 10° inclination, facing between SE–S–SW). At least 200 m above valley floor.
• slope_west_east: West or east facing incline (more than approx. 10° inclination, facing between SW–W–NW or NE–E–SE). At least 200 m above valley floor.
• valley: Valley floor in mountainous valley at higher altitudes. Valley floor inclined (flat valleys are often treated as depressions).
• valley_foehn: Valley floor of Föhn valley (regions with warm descending air currents).
• valley_central_alps: Floor of large central Alpine valley (e.g. Alpine regions of Valais, Switzerland).
• valley_alpine_foothills: Valley floor in northern Alpine foothills.
• valley_slope_south: South facing incline (more than approx. 10° inclination, facing between SE–S–SW) up to 200 m above valley.
• valley_slope_west_east: West or east facing incline (more than approx. 10° inclination, facing between SW–W–NW or NE–E–SE) up to 200 m above valley floor.
• summit: Open summit above 500 m. Overlooking surroundings in all directions.

Enum values:
open
depression
cold_air_lake
sea_lake
city
slope_south
slope_west_east
valley
Default: open
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
parameters
​ClimateParameters

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

This option applies only to CSV and JSON responses; other formats return a fixed parameter set.

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
• direct_horizontal_clear_sky_irradiance
• diffuse_clear_sky_irradiance
• direct_normal_clear_sky_irradiance
• precipitation
• temperature
• dew_point_temperature
• snow_depth
• global_extraterrestrial_irradiance
• global_extraterrestrial_normal_irradiance
• downwelling_longwave_irradiance
• upwelling_longwave_irradiance
• vertical_longwave_irradiance
• photo_active_irradiance
• radiation_balance
• global_illuminance
• direct_illuminance
• diffuse_illuminance
• linke_turbidity_factor
• aerosol_optical_depth
• cloud_cover
• albedo
• surface_temperature
• sky_temperature
• wet_bulb_temperature
• mixing_ratio
• relative_humidity
• precipitable_water
• driving_rain
• pressure
• wind_speed
• wind_direction
• solar_elevation
• solar_azimuth

Example: global_horizontal_irradiance,global_tilted_irradiance,temperature
Default: global_horizontal_irradiance,diffuse_horizontal_irradiance,direct_normal_irradiance,temperature
fixed_albedo
​Albedo · double · min: 0.05 · max: 0.9

Specifies a fixed albedo value. If not provided, a default albedo of 0.2 is used, with snow cover dynamically influencing the albedo.

Local albedo

turbidity
​Turbidity · pattern: ^(auto|[0-9]*\.?[0-9…

Monthly mean atmospheric Linke turbidity.

• auto: turbidity is taken from the Meteonorm database.
• [comma-separated values]: 12 floating point values representing monthly atmospheric turbidity.

Example: 5.2,4,3,3.1,3.0,2.8,3.14,3.0,3,3,4,5
Default: auto
frequency
​ClimateFrequency · enum

Temporal resolution of the resulting time series.

Enum values:
1_minute
15_minutes
1_hour
1_day
1_month
Default: 1_hour
response_format
​ClimateResponseFormat · enum

Response data format.

Enum values:
csv
json
epw
pvsyst
tmy3
pvsol
polysun
trj
Default: json
radiation_minute_model
​RadiationMinuteModel · enum

Radiation model to be used for minute computation. This option has only an effect when computing minute time series.

Enum values:
remund
Default: remund
diffuse_radiation_model
​DiffuseRadiationModel · enum

Algorithm to be used to compute diffuse irradiance from global irradiance.

Enum values:
perez
Default: perez
tilt_radiation_model
​TiltRadiationModel · enum

Algorithm to be used to compute tilted irradiance.

Enum values:
perez
Default: perez
random_seed
​RandomSeed · min: 0 · max: 1000

Random seed to be used for stochastic processes. Two identical requests with the same random seed will yield identical results.

Default: 0
clear_sky_radiation_model
​ClearSkyModel · enum

Algorithm to be used to compute clear sky irradiance

Enum values:
esra
solis
Default: esra
extreme_setting
​ExtremeSetting · enum

Probability-of-exceedance (PoE) reference used to generate TMY GHI and temperature.

• none: Uses median PoE50 values
• poe_10_year: Uses annual PoE10 (90th percentile) values
• poe_90_year: Uses annual PoE90 (10th percentile) values
• poe_10_months: Uses monthly PoE10 values
• poe_90_months: Uses monthly PoE90 values
• worst_case_year: Uses a combination of PoE10 in summer and PoE90 in winter (worst case heating/cooling load with cold/dark winter and hot/sunny summer)

Enum values:
none
poe_10_year
poe_90_year
poe_10_months
poe_90_months
worst_case_year
Default: none
future_scenario
​FutureScenario · enum

Future climate scenario.

• none: climate reference period is 2001–2020.
• ssp1_26: Shared Socioeconomic Pathway (as defined by the IPCC) SSP1-2.6.
• ssp2_45: Shared Socioeconomic Pathway (as defined by the IPCC) SSP2-4.5.
• ssp3_70: Shared Socioeconomic Pathway (as defined by the IPCC) SSP3-7.0.

Enum values:
none
ssp1_26
ssp2_45
ssp3_70
Default: none
future_year
​FutureYear · enum

Middle year of a 20-year reference period in the future. For example, the year 2040 represents the period 2031–2050.

Enum values:
2030
2040
2050
2060
2070
2080
2090
Default: 2050

/climate/tmy › Responses

OK

API response containing a time series, with the start and end times expressed in local time.
ClimateTMYResponse
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.

​ValuesClimate · required

Time series of a climate response.

​ClimateTMYQualityParameters · required

Quality parameters for the TMY climate data.

​Metadata · required
GET/climate/tmy
curl 'https://api.meteonorm.com/v1/climate/tmy?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 ], "direct_horizontal_clear_sky_irradiance": [ 0 ], "diffuse_clear_sky_irradiance": [ 0 ], "direct_normal_clear_sky_irradiance": [ 0 ], "precipitation": [ 0 ], "temperature": [ 0 ], "dew_point_temperature": [ 0 ], "snow_depth": [ 0 ], "global_extraterrestrial_irradiance": [ 0 ], "global_extraterrestrial_normal_irradiance": [ 0 ], "downwelling_longwave_irradiance": [ 0 ], "upwelling_longwave_irradiance": [ 0 ], "vertical_longwave_irradiance": [ 0 ], "photo_active_irradiance": [ 0 ], "radiation_balance": [ 0 ], "global_illuminance": [ 0 ], "direct_illuminance": [ 0 ], "diffuse_illuminance": [ 0 ], "linke_turbidity_factor": [ 0 ], "aerosol_optical_depth": [ 0 ], "cloud_cover": [ 0 ], "albedo": [ 0 ], "surface_temperature": [ 0 ], "sky_temperature": [ 0 ], "wet_bulb_temperature": [ 0 ], "mixing_ratio": [ 0 ], "relative_humidity": [ 0 ], "precipitable_water": [ 0 ], "driving_rain": [ 0 ], "pressure": [ 0 ], "wind_speed": [ 0 ], "wind_direction": [ 0 ], "solar_elevation": [ 0 ], "solar_azimuth": [ 0 ], "surface_azimuth": [ 0 ], "surface_tilt": [ 0 ] }, "quality_parameters": { "start_year_of_irradiance_period_of_nearest_station": 0, "end_year_of_irradiance_period_of_nearest_station": 0, "irradiance_station_data_weight": 0, "uncertainty_of_irradiance_estimation": 0, "uncertainty_of_temperature_estimation": 0, "irradiance_year_to_year_variability": 0, "irradiance_yearly_poe10": 0, "irradiance_yearly_poe90": 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

/climate/amy

GET
https://api.meteonorm.com/v1
/climate/amy

Actual meteorological year (AMY) for a location. Available time period: from 2020 onwards. AMY that include the past month are only available on the 8th day of the current month.

A request costs 1000 Meteonorm API tokens. For details, see Climate pricing.

/climate/amy › 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
start
​string · pattern: ^[0-9]{4}-[0-9]{2}$ · required

Start month of an actual meteorological year (AMY).

A year-month string in the format YYYY-MM.

Examples:

2020-01
2023-12

Example: 2020-01
altitude
​AltitudeOption · pattern: ^(auto|-?[0-9]+(\.[0…

Altitude in meters above mean sea level or "auto".

Altitude in meters above sea level. • auto: Automatic • number: altitude in meters

Example: 549
Default: auto
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
situation
​Situation · enum

Local terrain situation.

• open: Open site, open terrain, north facing incline, no raised skyline. Applies to most sites.
• depression: Depression or very flat valley floor, in which cold air collects. In Switzerland, for example, particularly in the Jura and the Alps.
• cold_air_lake: Extensively cold hollows (above 1000 m).
• sea_lake: Shore of sea or larger lake (up to 1 km from the shore).
• city: Centre of a larger city (over 100’000 inhabitants).
• slope_south: South facing incline (more than approx. 10° inclination, facing between SE–S–SW). At least 200 m above valley floor.
• slope_west_east: West or east facing incline (more than approx. 10° inclination, facing between SW–W–NW or NE–E–SE). At least 200 m above valley floor.
• valley: Valley floor in mountainous valley at higher altitudes. Valley floor inclined (flat valleys are often treated as depressions).
• valley_foehn: Valley floor of Föhn valley (regions with warm descending air currents).
• valley_central_alps: Floor of large central Alpine valley (e.g. Alpine regions of Valais, Switzerland).
• valley_alpine_foothills: Valley floor in northern Alpine foothills.
• valley_slope_south: South facing incline (more than approx. 10° inclination, facing between SE–S–SW) up to 200 m above valley.
• valley_slope_west_east: West or east facing incline (more than approx. 10° inclination, facing between SW–W–NW or NE–E–SE) up to 200 m above valley floor.
• summit: Open summit above 500 m. Overlooking surroundings in all directions.

Enum values:
open
depression
cold_air_lake
sea_lake
city
slope_south
slope_west_east
valley
Default: open
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
parameters
​ClimateParameters

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

This option applies only to CSV and JSON responses; other formats return a fixed parameter set.

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
• direct_horizontal_clear_sky_irradiance
• diffuse_clear_sky_irradiance
• direct_normal_clear_sky_irradiance
• precipitation
• temperature
• dew_point_temperature
• snow_depth
• global_extraterrestrial_irradiance
• global_extraterrestrial_normal_irradiance
• downwelling_longwave_irradiance
• upwelling_longwave_irradiance
• vertical_longwave_irradiance
• photo_active_irradiance
• radiation_balance
• global_illuminance
• direct_illuminance
• diffuse_illuminance
• linke_turbidity_factor
• aerosol_optical_depth
• cloud_cover
• albedo
• surface_temperature
• sky_temperature
• wet_bulb_temperature
• mixing_ratio
• relative_humidity
• precipitable_water
• driving_rain
• pressure
• wind_speed
• wind_direction
• solar_elevation
• solar_azimuth

Example: global_horizontal_irradiance,global_tilted_irradiance,temperature
Default: global_horizontal_irradiance,diffuse_horizontal_irradiance,direct_normal_irradiance,temperature
fixed_albedo
​Albedo · double · min: 0.05 · max: 0.9

Specifies a fixed albedo value. If not provided, a default albedo of 0.2 is used, with snow cover dynamically influencing the albedo.

Local albedo

turbidity
​Turbidity · pattern: ^(auto|[0-9]*\.?[0-9…

Monthly mean atmospheric Linke turbidity.

• auto: turbidity is taken from the Meteonorm database.
• [comma-separated values]: 12 floating point values representing monthly atmospheric turbidity.

Example: 5.2,4,3,3.1,3.0,2.8,3.14,3.0,3,3,4,5
Default: auto
frequency
​ClimateFrequency · enum

Temporal resolution of the resulting time series.

Enum values:
1_minute
15_minutes
1_hour
1_day
1_month
Default: 1_hour
response_format
​ClimateResponseFormat · enum

Response data format.

Enum values:
csv
json
epw
pvsyst
tmy3
pvsol
polysun
trj
Default: json
radiation_minute_model
​RadiationMinuteModel · enum

Radiation model to be used for minute computation. This option has only an effect when computing minute time series.

Enum values:
remund
Default: remund
diffuse_radiation_model
​DiffuseRadiationModel · enum

Algorithm to be used to compute diffuse irradiance from global irradiance.

Enum values:
perez
Default: perez
tilt_radiation_model
​TiltRadiationModel · enum

Algorithm to be used to compute tilted irradiance.

Enum values:
perez
Default: perez
clear_sky_radiation_model
​ClearSkyModel · enum

Algorithm to be used to compute clear sky irradiance

Enum values:
esra
solis
Default: esra

/climate/amy › Responses

OK

API response containing a time series, with the start and end times expressed in local time.
ClimateAMYResponse
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.

​ValuesClimate · required

Time series of a climate response.

​Metadata · required
GET/climate/amy
curl 'https://api.meteonorm.com/v1/climate/amy?lat=<number>&lon=<number>&start=<string>' \ --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 ], "direct_horizontal_clear_sky_irradiance": [ 0 ], "diffuse_clear_sky_irradiance": [ 0 ], "direct_normal_clear_sky_irradiance": [ 0 ], "precipitation": [ 0 ], "temperature": [ 0 ], "dew_point_temperature": [ 0 ], "snow_depth": [ 0 ], "global_extraterrestrial_irradiance": [ 0 ], "global_extraterrestrial_normal_irradiance": [ 0 ], "downwelling_longwave_irradiance": [ 0 ], "upwelling_longwave_irradiance": [ 0 ], "vertical_longwave_irradiance": [ 0 ], "photo_active_irradiance": [ 0 ], "radiation_balance": [ 0 ], "global_illuminance": [ 0 ], "direct_illuminance": [ 0 ], "diffuse_illuminance": [ 0 ], "linke_turbidity_factor": [ 0 ], "aerosol_optical_depth": [ 0 ], "cloud_cover": [ 0 ], "albedo": [ 0 ], "surface_temperature": [ 0 ], "sky_temperature": [ 0 ], "wet_bulb_temperature": [ 0 ], "mixing_ratio": [ 0 ], "relative_humidity": [ 0 ], "precipitable_water": [ 0 ], "driving_rain": [ 0 ], "pressure": [ 0 ], "wind_speed": [ 0 ], "wind_direction": [ 0 ], "solar_elevation": [ 0 ], "solar_azimuth": [ 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

/climate/import/monthly

POST
https://api.meteonorm.com/v1
/climate/import/monthly

Yearly meteorological weather data generated from user-supplied monthly mean values.

Use this endpoint when you have your own monthly data (e.g. from a local weather station) and want daily/hourly/15-minute/minute weather data adapted to those values. Monthly global horizontal irradiance is required; monthly temperature is optional and falls back to values from the Meteonorm database when not provided.

A request costs 500 Meteonorm API tokens. For details, see Climate pricing.

/climate/import/monthly › Request Body

Request body for the /climate/import/monthly endpoint.
ClimateImportMonthlyRequest
lat
​Latitude · double · min: -90 · max: 90 · required
lon
​Longitude · double · min: -180 · max: 180 · required
mode
​ClimateImportMode · enum · required

Selects how the imported monthly values are interpreted.

• typical: The user-provided monthly values describe a typical meteorological year (TMY). They are interpreted as January to December and the output covers a January-to-December year. The start field is ignored.
• actual: The user-provided monthly values describe an actual meteorological year (AMY). The start field is required (the request fails without it) and the 12 values are interpreted as the 12 months beginning at that month.

Enum values:
typical
actual
​MonthlyImportData · required

User-supplied monthly mean values. Global horizontal irradiance is required; temperature is optional and falls back to the Meteonorm database when omitted.

altitude
​AltitudeOption · pattern: ^(auto|-?[0-9]+(\.[0…

Altitude in meters above sea level. • auto: Automatic • number: altitude in meters

Example: 549
Default: auto
surface_azimuth
​SurfaceAzimuth · double · min: 0 · max: 360

• 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

• 0° = horizontal
• 90° = vertical

Default: 0
tracking_mode
​TrackingMode · enum

• 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
situation
​Situation · enum

• open: Open site, open terrain, north facing incline, no raised skyline. Applies to most sites.
• depression: Depression or very flat valley floor, in which cold air collects. In Switzerland, for example, particularly in the Jura and the Alps.
• cold_air_lake: Extensively cold hollows (above 1000 m).
• sea_lake: Shore of sea or larger lake (up to 1 km from the shore).
• city: Centre of a larger city (over 100’000 inhabitants).
• slope_south: South facing incline (more than approx. 10° inclination, facing between SE–S–SW). At least 200 m above valley floor.
• slope_west_east: West or east facing incline (more than approx. 10° inclination, facing between SW–W–NW or NE–E–SE). At least 200 m above valley floor.
• valley: Valley floor in mountainous valley at higher altitudes. Valley floor inclined (flat valleys are often treated as depressions).
• valley_foehn: Valley floor of Föhn valley (regions with warm descending air currents).
• valley_central_alps: Floor of large central Alpine valley (e.g. Alpine regions of Valais, Switzerland).
• valley_alpine_foothills: Valley floor in northern Alpine foothills.
• valley_slope_south: South facing incline (more than approx. 10° inclination, facing between SE–S–SW) up to 200 m above valley.
• valley_slope_west_east: West or east facing incline (more than approx. 10° inclination, facing between SW–W–NW or NE–E–SE) up to 200 m above valley floor.
• summit: Open summit above 500 m. Overlooking surroundings in all directions.

Enum values:
open
depression
cold_air_lake
sea_lake
city
slope_south
slope_west_east
valley
Default: open
horizon
​Horizon · pattern: ^(auto|flat|[0-9]+(,…

• 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
parameters
​ClimateParameters
Example: global_horizontal_irradiance,global_tilted_irradiance,temperature
Default: global_horizontal_irradiance,diffuse_horizontal_irradiance,direct_normal_irradiance,temperature
fixed_albedo
​Albedo · double · min: 0.05 · max: 0.9

Local albedo

turbidity
​Turbidity · pattern: ^(auto|[0-9]*\.?[0-9…

• auto: turbidity is taken from the Meteonorm database.
• [comma-separated values]: 12 floating point values representing monthly atmospheric turbidity.

Example: 5.2,4,3,3.1,3.0,2.8,3.14,3.0,3,3,4,5
Default: auto
frequency
​ClimateFrequency · enum
Enum values:
1_minute
15_minutes
1_hour
1_day
1_month
Default: 1_hour
response_format
​ClimateResponseFormat · enum
Enum values:
csv
json
epw
pvsyst
tmy3
pvsol
polysun
trj
Default: json
radiation_minute_model
​RadiationMinuteModel · enum
Enum values:
remund
Default: remund
diffuse_radiation_model
​DiffuseRadiationModel · enum
Enum values:
perez
Default: perez
tilt_radiation_model
​TiltRadiationModel · enum
Enum values:
perez
Default: perez
random_seed
​RandomSeed · min: 0 · max: 1000
Default: 0
clear_sky_radiation_model
​ClearSkyModel · enum
Enum values:
esra
solis
Default: esra
start
​ClimateImportStartTime · pattern: ^[0-9]{4}-[0-9]{2}$

Start month of the imported values.

A year-month string in the format YYYY-MM.

Required when the mode is "actual". Ignored when the mode is "typical", where the values always cover a January-to-December year.

Examples:

2020-01
2023-12

Example: 2020-01

/climate/import/monthly › Responses

OK

API response containing a time series, with the start and end times expressed in local time.
ClimateImportResponse
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.

​ValuesClimate · required

Time series of a climate response.

​Metadata · required
POST/climate/import/monthly
curl https://api.meteonorm.com/v1/climate/import/monthly \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "lat": 47.3768, "lon": 8.5417, "mode": "typical", "altitude": "auto", "surface_azimuth": 0, "surface_tilt": 0, "tracking_mode": "none", "situation": "open", "horizon": "flat", "parameters": "global_horizontal_irradiance,diffuse_horizontal_irradiance,direct_normal_irradiance,temperature", "fixed_albedo": 0.05, "turbidity": "auto", "frequency": "1_hour", "response_format": "json", "radiation_minute_model": "remund", "diffuse_radiation_model": "perez", "tilt_radiation_model": "perez", "random_seed": 0, "clear_sky_radiation_model": "esra", "values": { "global_horizontal_irradiance": [ 42, 75, 133, 188, 233, 258, 254, 221, 167, 108, 54, 38 ], "temperature": [ -1, 0, 4, 8, 13, 16, 18, 17, 13, 8, 3, 0 ] }, "start": "2020-01" }'
Example Request Body
{ "lat": 47.3768, "lon": 8.5417, "mode": "typical", "altitude": "auto", "surface_azimuth": 0, "surface_tilt": 0, "tracking_mode": "none", "situation": "open", "horizon": "flat", "parameters": "global_horizontal_irradiance,diffuse_horizontal_irradiance,direct_normal_irradiance,temperature", "fixed_albedo": 0.05, "turbidity": "auto", "frequency": "1_hour", "response_format": "json", "radiation_minute_model": "remund", "diffuse_radiation_model": "perez", "tilt_radiation_model": "perez", "random_seed": 0, "clear_sky_radiation_model": "esra", "values": { "global_horizontal_irradiance": [ 42, 75, 133, 188, 233, 258, 254, 221, 167, 108, 54, 38 ], "temperature": [ -1, 0, 4, 8, 13, 16, 18, 17, 13, 8, 3, 0 ] }, "start": "2020-01" }
json
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 ], "direct_horizontal_clear_sky_irradiance": [ 0 ], "diffuse_clear_sky_irradiance": [ 0 ], "direct_normal_clear_sky_irradiance": [ 0 ], "precipitation": [ 0 ], "temperature": [ 0 ], "dew_point_temperature": [ 0 ], "snow_depth": [ 0 ], "global_extraterrestrial_irradiance": [ 0 ], "global_extraterrestrial_normal_irradiance": [ 0 ], "downwelling_longwave_irradiance": [ 0 ], "upwelling_longwave_irradiance": [ 0 ], "vertical_longwave_irradiance": [ 0 ], "photo_active_irradiance": [ 0 ], "radiation_balance": [ 0 ], "global_illuminance": [ 0 ], "direct_illuminance": [ 0 ], "diffuse_illuminance": [ 0 ], "linke_turbidity_factor": [ 0 ], "aerosol_optical_depth": [ 0 ], "cloud_cover": [ 0 ], "albedo": [ 0 ], "surface_temperature": [ 0 ], "sky_temperature": [ 0 ], "wet_bulb_temperature": [ 0 ], "mixing_ratio": [ 0 ], "relative_humidity": [ 0 ], "precipitable_water": [ 0 ], "driving_rain": [ 0 ], "pressure": [ 0 ], "wind_speed": [ 0 ], "wind_direction": [ 0 ], "solar_elevation": [ 0 ], "solar_azimuth": [ 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

accountforecast