Meteonorm API

observation

Endpoint:https://api.meteonorm.com/v1

/observation/realtime

GET
https://api.meteonorm.com/v1
/observation/realtime

Real-time irradiance data for the past 7 days, based on weather satellites. Updated every 15 minutes.

A request costs 1 Meteonorm API token.

/observation/realtimequery Parameters

  • latnumber · double · min: -90 · max: 90 · required

    Latitude in degrees (North is positive).

    Example: 47.3768
  • lonnumber · double · min: -180 · max: 180 · required

    Longitude in degrees (East is positive).

    Example: 8.5417
  • parametersstring

    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
    temperature
    snow_depth

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

    Start time (UTC) of observation/realtime 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:

    now
    -24hours
    -5days
    2025-05-15T12:00Z
    2025-05-15T12:00:00Z

    Example: 2025-01-15T12:00Z
    Default: -24hours
  • endstring · pattern: ^now|[-\+]\d+(hours|…

    End time (UTC) of observation/realtime 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:

    now
    -3hours
    -1days
    2025-05-15T12:00Z
    2025-05-15T12:00:00Z

    Example: 2025-01-15T12:00Z
    Default: now
  • frequencystring · enum

    Temporal resolution of the resulting time series.

    Time series frequency

    Enum values:
    1_minute
    15_minutes
    1_hour
    Default: 15_minutes
  • response_formatstring · enum

    Response data format.

    Enum values:
    json
    csv
    Default: json
  • surface_azimuthnumber · double · 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_tiltnumber · double · max: 90

    Tilt angle of the panel surface.

    • 0° = horizontal
    • 90° = vertical

    Default: 0
  • tracking_modestring · 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
  • horizonstring · 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

/observation/realtimeResponses

Response

  • start_timesstring[] · required

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

  • end_timesstring[] · required

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

  • valuesobject · required

    Time series of an observation response.

  • metaobject · required

/observation/training

GET
https://api.meteonorm.com/v1
/observation/training

Available time period: the current year excluding the last 7 days, plus the latest two full calendar years.

A request costs 200 Meteonorm API tokens for a period of one year (calculated proportionally).

/observation/trainingquery Parameters

  • latnumber · double · min: -90 · max: 90 · required

    Latitude in degrees (North is positive).

    Example: 47.3768
  • lonnumber · double · min: -180 · max: 180 · required

    Longitude in degrees (East is positive).

    Example: 8.5417
  • parametersstring

    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
    temperature
    snow_depth

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

    Start time (UTC) of observation/training 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:

    2025-05-15T12:00Z
    2025-05-15T12:00:00Z
    -200days

    Example: 2025-01-15T12:00Z
    Default: -365days
  • response_formatstring · enum

    Response data format.

    Enum values:
    json
    csv
    Default: json
  • endstring · pattern: ^now|[-\+]\d+(hours|…

    End time (UTC) of observation/training 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:

    2025-05-15T12:00Z
    2025-05-15T12:00:00Z
    -200days

    Example: 2025-01-15T12:00Z
    Default: -7days
  • frequencystring · enum

    Temporal resolution of the resulting time series.

    Time series frequency

    Enum values:
    1_minute
    15_minutes
    1_hour
    Default: 15_minutes
  • surface_azimuthnumber · double · 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_tiltnumber · double · max: 90

    Tilt angle of the panel surface.

    • 0° = horizontal
    • 90° = vertical

    Default: 0
  • tracking_modestring · 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
  • horizonstring · 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

/observation/trainingResponses

Response

  • start_timesstring[] · required

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

  • end_timesstring[] · required

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

  • valuesobject · required

    Time series of an observation response.

  • metaobject · required

/observation/historical

GET
https://api.meteonorm.com/v1
/observation/historical

Historical irradiance based on weather satellites and re-analysis products. Available time period: from 2020 onwards, excluding the last 7 days.

A request costs 200 Meteonorm API tokens for a period of one year (calculated proportionally).

/observation/historicalquery Parameters

  • latnumber · double · min: -90 · max: 90 · required

    Latitude in degrees (North is positive).

    Example: 47.3768
  • lonnumber · double · min: -180 · max: 180 · required

    Longitude in degrees (East is positive).

    Example: 8.5417
  • startstring · pattern: ^now|[-\+]\d+(hours|… · required

    Start time (UTC) of observation/historical 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:

    2025-05-15T12:00Z
    2025-05-15T12:00:00Z
    -200days

    Example: 2020-01-15T12:00Z
  • endstring · pattern: ^now|[-\+]\d+(hours|… · required

    End time (UTC) of observation/historical 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:

    2025-05-15T12:00Z
    2025-05-15T12:00:00Z
    -200days

    Example: 2025-01-15T12:00Z
  • parametersstring

    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
    temperature
    snow_depth

    Example: global_horizontal_irradiance,global_tilted_irradiance,temperature
    Default: global_horizontal_irradiance,temperature
  • frequencystring · enum

    Temporal resolution of the resulting time series.

    Time series frequency

    Enum values:
    1_minute
    15_minutes
    1_hour
    Default: 15_minutes
  • response_formatstring · enum

    Response data format.

    Enum values:
    json
    csv
    Default: json
  • surface_azimuthnumber · double · 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_tiltnumber · double · max: 90

    Tilt angle of the panel surface.

    • 0° = horizontal
    • 90° = vertical

    Default: 0
  • tracking_modestring · 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
  • horizonstring · 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

/observation/historicalResponses

Response

  • start_timesstring[] · required

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

  • end_timesstring[] · required

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

  • valuesobject · required

    Time series of an observation response.

  • metaobject · required